Module: Seabright::DefaultValues::ClassMethods

Defined in:
lib/redis_object/defaults.rb

Instance Method Summary collapse

Instance Method Details

#default_for(k, vl) ⇒ Object



31
32
33
# File 'lib/redis_object/defaults.rb', line 31

def default_for(k,vl)
  register_default k, vl
end

#default_valsObject



6
7
8
# File 'lib/redis_object/defaults.rb', line 6

def default_vals
  @default_vals ||= {}
end

#intercept_for_defaults!Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/redis_object/defaults.rb', line 10

def intercept_for_defaults!
  return if @intercepted_for_defaults
  self.class_eval do
    
    alias_method :undefaulted_get, :get unless method_defined?(:undefaulted_get)
    def get(k)
      if !is_set?(k) && (d = self.class.default_vals[k.to_sym]) && !d.nil?
        return d
      end
      undefaulted_get(k)
    end
    
  end
  @intercepted_for_defaults = true
end

#register_default(k, vl) ⇒ Object



26
27
28
29
# File 'lib/redis_object/defaults.rb', line 26

def register_default(k,vl)
  default_vals[k.to_sym] = vl
  intercept_for_defaults!
end