Module: BlockParty::Configurable::ConfigurationMethods

Included in:
BlockParty::Configurable
Defined in:
lib/block_party/configurable.rb

Instance Method Summary collapse

Instance Method Details

#after_configuration(&block) ⇒ Object



64
65
66
# File 'lib/block_party/configurable.rb', line 64

def after_configuration(&block)
  self.__configuration_callbacks__ += [block] if block_given?
end

#configure {|configuration| ... } ⇒ Object

Yields:



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/block_party/configurable.rb', line 36

def configure
  accessor = Configurable.configuration.default_configuration_accessor
  configuration = send(accessor)
  initial_configuration = !configuration

  if initial_configuration
    configuration = send(:"#{accessor}=", self.__configuration_class__.new)
  end

  yield(configuration) if block_given?

  if initial_configuration
    self.__initial_configuration_callbacks__.each do |callback|
      self.class_eval &callback
    end
  end

  self.__configuration_callbacks__.each do |callback|
    self.class_eval &callback
  end

  configuration
end

#configure_with(klass) ⇒ Object



60
61
62
# File 'lib/block_party/configurable.rb', line 60

def configure_with(klass)
  self.__configuration_class__ = klass
end

#inherited(base) ⇒ Object



72
73
74
75
76
77
# File 'lib/block_party/configurable.rb', line 72

def inherited(base)
  Configurable.inheritable_settings.each do |setting|
    base.instance_variable_set :"@#{setting}", send(setting)
  end
  super
end

#once_configured(&block) ⇒ Object



68
69
70
# File 'lib/block_party/configurable.rb', line 68

def once_configured(&block)
  self.__initial_configuration_callbacks__ += [block] if block_given?
end