Sha256: ea448fe05585544c3d79f34ac501a917ffb24fefce35b39f1806e6bb96e9f3cf

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

module Deface

  class Environment
    attr_accessor :overrides, :enabled
    def initialize
      @overrides = Overrides.new
      @enabled   = true
    end
  end

  class Environment::Overrides
    attr_accessor :all

    def initialize
      @all = {}
    end

    def find(*args)
      Deface::Override.find(*args)
    end

    def load_all(app)
      # check application for specified overrides paths
      #
      #
      override_paths = app.paths["app/overrides"]
      enumerate_and_load(override_paths, app.root)

      # check all railties / engines / extensions for overrides
      app.railties.all.each do |railtie|
        next unless railtie.respond_to? :root

        override_paths = railtie.respond_to?(:paths) ? railtie.paths["app/overrides"] : nil
        enumerate_and_load(override_paths, railtie.root)
      end
    end

    def early_check
      Deface::Override._early.each do |args|
        Deface::Override.new(args)
      end

      Deface::Override._early.clear
    end

    private 
      def enumerate_and_load(paths, root)
        paths ||= ["app/overrides"]

        paths.each do |path|
          Dir.glob(root.join path, "*.rb") do |c|
            Rails.application.config.cache_classes ? require(c) : load(c)
          end
        end

      end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
deface-0.7.2 lib/deface/environment.rb
deface-0.7.1 lib/deface/environment.rb