module Gearhead::Settings

Public Class Methods

included(klass) click to toggle source
# File lib/gearhead/gear.rb, line 3
def self.included(klass)
  klass.extend ClassMethods
  klass.class_attribute :settings, default: {}
end

Public Instance Methods

define_gear_setting(name, default = nil) click to toggle source
# File lib/gearhead/gear.rb, line 8
def define_gear_setting(name, default = nil)
  instance_variable_set("@_gear_#{name}", default.dup)
  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.dup)
  end
end