Module: Rails::Initializable::ClassMethods
- Defined in:
- railties/lib/rails/initializable.rb
Instance Method Summary (collapse)
- - (Object) initializer(name, opts = {}, &blk)
- - (Object) initializers
- - (Object) initializers_chain
- - (Object) initializers_for(binding)
Instance Method Details
- (Object) initializer(name, opts = {}, &blk)
82 83 84 85 86 |
# File 'railties/lib/rails/initializable.rb', line 82 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 |
- (Object) initializers
65 66 67 |
# File 'railties/lib/rails/initializable.rb', line 65 def initializers @initializers ||= Collection.new end |
- (Object) initializers_chain
69 70 71 72 73 74 75 76 |
# File 'railties/lib/rails/initializable.rb', line 69 def initializers_chain initializers = Collection.new ancestors.reverse_each do |klass| next unless klass.respond_to?(:initializers) initializers = initializers + klass.initializers end initializers end |
- (Object) initializers_for(binding)
78 79 80 |
# File 'railties/lib/rails/initializable.rb', line 78 def initializers_for(binding) Collection.new(initializers_chain.map { |i| i.bind(binding) }) end |