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
    
    filter_gets do |obj, k, v|
      if !obj.is_set?(k) && (d = obj.class.default_vals[k.to_sym]) && !d.nil?
        d
      else
        v
      end
    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