Module: Gearhead::Settings

Included in:
Gear
Defined in:
lib/gearhead/gear.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



3
4
5
6
# File 'lib/gearhead/gear.rb', line 3

def self.included(klass)
  klass.extend ClassMethods
  klass.class_attribute :settings, default: {}
end

Instance Method Details

#define_gear_setting(name, default = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/gearhead/gear.rb', line 8

def define_gear_setting(name, default = nil)
  instance_variable_set("@_gear_#{name}", default)
  ivar = "@_gear_#{name}"
  self.class.define_method :"_gear_#{name}" do
    return instance_variable_get(ivar) if instance_variable_defined?(ivar)
    instance_variable_get("@_gear_#{name}")
  end
  self.class.define_method :"_gear_#{name}=" do |value|
    instance_variable_set("@_gear_#{name}", value)
  end
end