Module: Redis::Objects::Values::ClassMethods
- Defined in:
- lib/redis/objects/values.rb
Overview
Class methods that appear in your class when you include Redis::Objects.
Instance Method Summary collapse
- #mget(name, objects = []) ⇒ Object
-
#value(name, options = {}) ⇒ Object
Define a new simple value.
Instance Method Details
#mget(name, objects = []) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/redis/objects/values.rb', line 49 def mget(name, objects = []) return [] if objects.nil? || objects.empty? raise "Field name Error" if !redis_objects.keys.include?(name.to_sym) keys = objects.map{ |obj| obj.redis_field_key name.to_sym } self.redis.mget keys end |
#value(name, options = {}) ⇒ Object
Define a new simple value. It will function like a regular instance method, so it can be used alongside ActiveRecord, DataMapper, etc.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/redis/objects/values.rb', line 16 def value(name, ={}) redis_objects[name.to_sym] = .merge(:type => :value) ivar_name = :"@#{name}" mod = Module.new do define_method(name) do instance_variable_get(ivar_name) or instance_variable_set(ivar_name, Redis::Value.new( redis_field_key(name), redis_field_redis(name), (name) ) ) end define_method("#{name}=") do |value| public_send(name).value = value end end if [:global] extend mod # dispatch to class methods define_method(name) do self.class.public_send(name) end define_method("#{name}=") do |value| self.class.public_send("#{name}=", value) end else include mod end end |