Class: Recommendations::Item

Inherits:
Object
  • Object
show all
Includes:
Ratings, Similarity
Defined in:
lib/recommendations/item.rb,
lib/recommendations/item/ratings.rb,
lib/recommendations/item/similarity.rb

Defined Under Namespace

Modules: Ratings, Similarity

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Similarity

#similars, #update_similars

Methods included from Ratings

#ratings

Constructor Details

#initialize(id, categories = {}) ⇒ Item

Returns a new instance of Item.



9
10
11
# File 'lib/recommendations/item.rb', line 9

def initialize(id, categories = {})
  @id, @categories = id, categories
end

Instance Attribute Details

#categoriesObject



13
14
15
# File 'lib/recommendations/item.rb', line 13

def categories
  @categories || {}
end

#idObject

Returns the value of attribute id.



6
7
8
# File 'lib/recommendations/item.rb', line 6

def id
  @id
end

Class Method Details

.find(id) ⇒ Object



25
26
27
28
# File 'lib/recommendations/item.rb', line 25

def self.find(id)
  categories = Recommendations.redis.hgetall("recommendations:item:#{id}")
  new(id, categories)
end

Instance Method Details

#save!Object



17
18
19
20
21
22
23
# File 'lib/recommendations/item.rb', line 17

def save!
  Recommendations.redis.hmset("recommendations:item:#{id}", *categories.flatten)

  categories.each do |category, score|
    Recommendations.redis.hset("recommendations:categories:#{category}", id, score)
  end
end