Module: Seabright::DefaultValues::ClassMethods
- Defined in:
- lib/redis_object/defaults.rb
Instance Method Summary collapse
- #default_for(k, vl) ⇒ Object
- #default_vals ⇒ Object
- #intercept_for_defaults! ⇒ Object
- #register_default(k, vl) ⇒ Object
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_vals ⇒ Object
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 |