Module: Outback::Configurable::ClassMethods

Defined in:
lib/outback/support/configurable.rb

Instance Method Summary collapse

Instance Method Details

#attr_setter(*names) ⇒ Object



21
22
23
24
# File 'lib/outback/support/configurable.rb', line 21

def attr_setter(*names)
  attributes.concat(names).uniq!
  names.each { |name| attr_reader name }
end

#attributesObject



9
10
11
# File 'lib/outback/support/configurable.rb', line 9

def attributes
  @attributes ||= []
end

#configure(*args, &block) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/outback/support/configurable.rb', line 13

def configure(*args, &block)
  returning new(*args) do |instance|
    if block_given?
      if block.arity == 1 then yield(instance.attr_setter) else instance.attr_setter.instance_eval(&block) end
    end
  end
end