class Takeoff::Configuration

Public Instance Methods

[](name) click to toggle source
# File lib/takeoff/configuration.rb, line 12
def [](name)
  name ||= default_plan
  
  plan = name.is_a?(Class) ? name : plans[name]

  if plan.nil?
    raise "Plan '#{name}' is unknown"
  end

  unless plan <= Plan::Base
    raise "Plan '#{name}' doesn't inherit from Takeoff::Plan::Base" 
  end

  plan
end
default_plan(name = nil, &block) click to toggle source
# File lib/takeoff/configuration.rb, line 32
def default_plan(name = nil, &block)
  self.default_plan = name            if name
  default_plan.instance_eval(&block)  if block
  
  @default_plan ||= Plan::Default
end
default_plan=(plan) click to toggle source
# File lib/takeoff/configuration.rb, line 39
def default_plan=(plan)
  @default_plan = self[plan]
end
plan(name, plan = nil, based_on: default_plan, &block) click to toggle source
# File lib/takeoff/configuration.rb, line 45
def plan(name, plan = nil, based_on: default_plan, &block)
  if plan?(name)
    plan ||= self[name]
  else
    plan ||= Plan.const_set(name.to_s.camelize, Class.new(self[based_on]))
    plans[name] = plan
  end

  plan.instance_eval(&block) if block

  plan
end
plan?(name) click to toggle source
# File lib/takeoff/configuration.rb, line 28
def plan?(name)
  self[name] rescue nil
end
plans() click to toggle source
# File lib/takeoff/configuration.rb, line 8
def plans
  @plans ||= HashWithIndifferentAccess.new
end