Module: RediJsonModels::RediJsonModelLib
- Defined in:
- lib/redijson_models.rb
Constant Summary collapse
- INFLECTOR =
Dry::Inflector.new
Instance Method Summary collapse
- #all ⇒ Object
- #count ⇒ Object
- #create(attrs) ⇒ Object
- #get(id) ⇒ Object
- #get_attr(id, attr) ⇒ Object
- #resource ⇒ Object
- #update(id, attrs) ⇒ Object
Instance Method Details
#all ⇒ Object
29 30 31 32 33 |
# File 'lib/redijson_models.rb', line 29 def all 1.upto(count).map do |entry_id| get entry_id end end |
#count ⇒ Object
35 36 37 |
# File 'lib/redijson_models.rb', line 35 def count ( RJ["#{resource}:count"] || 0 ).to_i end |
#create(attrs) ⇒ Object
52 53 54 55 56 57 58 |
# 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) ⇒ Object
39 40 41 42 43 |
# File 'lib/redijson_models.rb', line 39 def get(id) data = RJ["#{resource}:#{id}"] return unless data new data end |
#get_attr(id, attr) ⇒ Object
45 46 47 48 49 50 |
# 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 ⇒ Object
65 66 67 |
# File 'lib/redijson_models.rb', line 65 def resource INFLECTOR.pluralize model_name end |
#update(id, attrs) ⇒ Object
60 61 62 63 |
# File 'lib/redijson_models.rb', line 60 def update(id, attrs) resource = get id resource.update attrs end |