Sha256: abe3962fe25d7f5ee0571c87533d0ff1ef0204c48ff9e0f95c0826494781470f
Contents?: true
Size: 764 Bytes
Versions: 35
Compression:
Stored size: 764 Bytes
Contents
module Seabright module DefaultValues module ClassMethods def default_vals @default_vals ||= {} end 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 def register_default(k,vl) default_vals[k.to_sym] = vl intercept_for_defaults! end def default_for(k,vl) register_default k, vl end end def self.included(base) base.extend(ClassMethods) end end end
Version data entries
35 entries across 35 versions & 1 rubygems