module RediJsonModels::RediJsonModelLib
Constants
- INFLECTOR
Public Instance Methods
all()
click to toggle source
# File lib/redijson_models.rb, line 29 def all 1.upto(count).map do |entry_id| get entry_id end end
count()
click to toggle source
# File lib/redijson_models.rb, line 35 def count ( RJ["#{resource}:count"] || 0 ).to_i end
create(attrs)
click to toggle source
# File lib/redijson_models.rb, line 52 def create(attrs) id = incr attrs.merge! id: id obj = new attrs RJ["#{resource}:#{id}"] = obj.attributes obj end
get(id)
click to toggle source
# File lib/redijson_models.rb, line 39 def get(id) data = RJ["#{resource}:#{id}"] return unless data new data end
get_attr(id, attr)
click to toggle source
# File lib/redijson_models.rb, line 45 def get_attr(id, attr) key = "#{resource}:#{id}" data = RJ.redis.json_get key, ".name" return NilValue.new unless data data end
resource()
click to toggle source
# File lib/redijson_models.rb, line 65 def resource INFLECTOR.pluralize model_name end
update(id, attrs)
click to toggle source
# File lib/redijson_models.rb, line 60 def update(id, attrs) resource = get id resource.update attrs end
Private Instance Methods
incr()
click to toggle source
TODO: use incr
# File lib/redijson_models.rb, line 72 def incr RJ["#{resource}:count"] = count + 1 end
model_name()
click to toggle source
# File lib/redijson_models.rb, line 76 def model_name self.name.downcase end