Sha256: b0d2847f5c37ebda2787a69e5a5104ee7ced1552c8f16346264208d17128bb1b
Contents?: true
Size: 1.16 KB
Versions: 2
Compression:
Stored size: 1.16 KB
Contents
module Rlottery module Entity attr_accessor :identifier, :assignments def initialize(args) raise ArgumentError, "Must supply a hash!" unless args.respond_to?(:[]) entity_init(args) end def is?(identifier) @identifier == identifier ? true : false end private def entity_init(args) @assignments ||= [] @identifier = args.delete(:identifier) || raise(ArgumentError, "Must supply identifier!") make_args_into_accessors(args) end def make_args_into_accessors(args) args.each_pair do |key, value| ivar_name = "@#{key}" instance_variable_set ivar_name, value define_accessor_for_ivar(key, ivar_name) end end def define_accessor_for_ivar(meth, ivar_name) unless self.respond_to?(meth) # # just do this once per class.. self.class.instance_eval do # class SomeEntity define_method meth do # def foo instance_variable_get ivar_name # instance_variable_get @foo end # end end # end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jlindley-rlottery-0.1.2 | lib/rlottery/entity.rb |
jlindley-rlottery-0.1.3 | lib/rlottery/entity.rb |