class BlockParty::Configuration
Public Instance Methods
configure() { |self| ... }
click to toggle source
INTERFACE
# File lib/block_party/configuration.rb, line 12 def configure yield(self) if block_given? self end
instance_variables()
click to toggle source
Calls superclass method
# File lib/block_party/configuration.rb, line 28 def instance_variables super.reject do |var| [:"@__hash_representation__", :"@__hash_representation__="].include? var end end
method_missing(setting, *args, &block)
click to toggle source
# File lib/block_party/configuration.rb, line 17 def method_missing(setting, *args, &block) setter, getter = derive_setting_names(setting) create_accessors setter, getter if setter? setting set setter, *args, &block else set_nested_configuration setter, *args, &block end end
settings()
click to toggle source
# File lib/block_party/configuration.rb, line 34 def settings instance_variables.map do |var| var.to_s.gsub('@', '').to_sym end end
unset(setting)
click to toggle source
# File lib/block_party/configuration.rb, line 40 def unset(setting) setting = setting.to_sym setting = :"@#{setting}" unless setting.to_s =~ /^@/ remove_instance_variable setting end
Protected Instance Methods
create_accessors(setter, getter)
click to toggle source
# File lib/block_party/configuration.rb, line 63 def create_accessors(setter, getter) create_setter(setter) create_getter(getter) end
create_getter(getter)
click to toggle source
# File lib/block_party/configuration.rb, line 74 def create_getter(getter) define_singleton_method getter do instance_variable_get :"@#{getter}" end end
create_setter(setter)
click to toggle source
# File lib/block_party/configuration.rb, line 68 def create_setter(setter) define_singleton_method setter do |value| instance_variable_set :"@#{setter_to_getter(setter)}", value end end
derive_setting_names(setting_name)
click to toggle source
IMPLEMENTATION
# File lib/block_party/configuration.rb, line 51 def derive_setting_names(setting_name) if setter? setting_name [ setting_name, setter_to_getter(setting_name) ] else [ getter_to_setter(setting_name), setting_name ] end end
getter_to_setter(getter)
click to toggle source
# File lib/block_party/configuration.rb, line 84 def getter_to_setter(getter) :"#{getter}=" end
set(setter, *args, &block)
click to toggle source
# File lib/block_party/configuration.rb, line 88 def set(setter, *args, &block) if block_given? send setter, *args, &block else send setter, *args end end
set_nested_configuration(setter, *args) { |configuration| ... }
click to toggle source
# File lib/block_party/configuration.rb, line 96 def set_nested_configuration(setter, *args, &block) configuration = send setter, Configuration.new yield(configuration) if block_given? configuration end
setter?(setting)
click to toggle source
# File lib/block_party/configuration.rb, line 59 def setter?(setting) setting =~ /=$/ end
setter_to_getter(setter)
click to toggle source
# File lib/block_party/configuration.rb, line 80 def setter_to_getter(setter) :"#{setter.to_s.gsub('=','')}" end