Class: Recommendations::Item

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

Defined Under Namespace

Modules: Similarity

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Similarity

#similars, #update_similars

Constructor Details

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

Returns a new instance of Item.



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

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

Instance Attribute Details

#categoriesObject



11
12
13
# File 'lib/recommendations/item.rb', line 11

def categories
  @categories || {}
end

#idObject

Returns the value of attribute id.



4
5
6
# File 'lib/recommendations/item.rb', line 4

def id
  @id
end

Class Method Details

.find(id) ⇒ Object



23
24
25
26
# File 'lib/recommendations/item.rb', line 23

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

Instance Method Details

#save!Object



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

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