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
insert_before(index, name, &block)
Alias for: insert
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