class Rory::Initializers
Attributes
initializers[RW]
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/rory/initializers.rb, line 31 def initialize @initializers = [] yield(self) if block_given? end
Public Instance Methods
add(name, &block)
click to toggle source
# File lib/rory/initializers.rb, line 56 def add(name, &block) initializers.push(build_initializer(name, block)) end
delete(target)
click to toggle source
# File lib/rory/initializers.rb, line 52 def delete(target) initializers.delete_if { |m| m.name == target } end
insert(index, name, &block)
click to toggle source
# File lib/rory/initializers.rb, line 40 def insert(index, name, &block) index = assert_index(index, :before) initializers.insert(index, build_initializer(name, block)) end
Also aliased as: insert_before
insert_after(index, name, &block)
click to toggle source
# File lib/rory/initializers.rb, line 47 def insert_after(index, name, &block) index = assert_index(index, :after) insert(index + 1, name, &block) end
run(app)
click to toggle source
# File lib/rory/initializers.rb, line 60 def run(app) initializers.map{|i| i.call(app)} end
unshift(name, &block)
click to toggle source
# File lib/rory/initializers.rb, line 36 def unshift(name, &block) initializers.unshift(build_initializer(name, block)) end
Private Instance Methods
assert_index(index, where)
click to toggle source
# File lib/rory/initializers.rb, line 66 def assert_index(index, where) i = index.is_a?(Integer) ? index : initializers.index { |m| m.name == index } raise "No such initializer to insert #{where}: #{index.inspect}" unless i i end
assert_unique_name(i)
click to toggle source
# File lib/rory/initializers.rb, line 76 def assert_unique_name(i) unless (conflict = @initializers.select{|ii| ii == i}).empty? raise "Initializer name: '#{i.name}' is already used. #{conflict.first.block}" end end
build_initializer(name, block)
click to toggle source
# File lib/rory/initializers.rb, line 72 def build_initializer(name, block) Initializer.new(name, block).tap{ |i| assert_unique_name(i) } end