Sha256: 330ce297ba8b7c6be55010e098ea0b65f7447351a9a3e8153d49c8b61657bfff
Contents?: true
Size: 774 Bytes
Versions: 51
Compression:
Stored size: 774 Bytes
Contents
module PoolParty module Configurable module ClassMethods def default_options(h={}) @default_options ||= h end end module InstanceMethods def options(h={}) @options ||= self.class.default_options.merge(h) end def configure(h={}) options(h).merge!(h) end def reconfigure(h={}) @options = nil options(h) end def set_vars_from_options(opts={}) opts.each {|k,v| self.send k.to_sym, send_if_method(v) } unless opts.empty? end end def self.included(receiver) receiver.extend ClassMethods receiver.send :include, InstanceMethods receiver.send :include, MethodMissingSugar end end end
Version data entries
51 entries across 51 versions & 2 rubygems