Module: Rails::Initializable::ClassMethods
- Defined in:
 - lib/rails/initializable.rb
 
Instance Method Summary collapse
- #initializer(name, opts = {}, &blk) ⇒ Object
 - #initializers ⇒ Object
 - #initializers_chain ⇒ Object
 - #initializers_for(binding) ⇒ Object
 
Instance Method Details
#initializer(name, opts = {}, &blk) ⇒ Object
      88 89 90 91 92  | 
    
      # File 'lib/rails/initializable.rb', line 88 def initializer(name, opts = {}, &blk) raise ArgumentError, "A block must be passed when defining an initializer" unless blk opts[:after] ||= initializers.last.name unless initializers.empty? || initializers.find { |i| i.name == opts[:before] } initializers << Initializer.new(name, nil, opts, &blk) end  | 
  
#initializers ⇒ Object
      71 72 73  | 
    
      # File 'lib/rails/initializable.rb', line 71 def initializers @initializers ||= Collection.new end  | 
  
#initializers_chain ⇒ Object
      75 76 77 78 79 80 81 82  | 
    
      # File 'lib/rails/initializable.rb', line 75 def initializers_chain initializers = Collection.new ancestors.reverse_each do |klass| next unless klass.respond_to?(:initializers) initializers = initializers + klass.initializers end initializers end  | 
  
#initializers_for(binding) ⇒ Object
      84 85 86  | 
    
      # File 'lib/rails/initializable.rb', line 84 def initializers_for(binding) Collection.new(initializers_chain.map { |i| i.bind(binding) }) end  |