Module: Predictable::Item::ClassMethods
- Defined in:
- lib/predictable/item.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #pio_itype ⇒ Object
- #recommended_for(user, n, opts = {}) ⇒ Object
- #similar_to(item, n, opts = {}) ⇒ Object
Instance Attribute Details
#pio_engines ⇒ Object
58 59 60 |
# File 'lib/predictable/item.rb', line 58 def pio_engines @pio_engines || Predictable.engines end |
#recommender ⇒ Object
62 63 64 |
# File 'lib/predictable/item.rb', line 62 def recommender @recommender ||= Recommender.new(Predictable.client, pio_engines) end |
Instance Method Details
#pio_itype ⇒ Object
66 67 68 |
# File 'lib/predictable/item.rb', line 66 def pio_itype to_s.underscore end |
#recommended_for(user, n, opts = {}) ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/predictable/item.rb', line 70 def recommended_for(user, n, opts={}) = { "itypes" => [pio_itype] }.merge(opts) item_ids = recommender.recommended_items(user, n, ) item_ids = item_ids.map { |id| id.gsub! /[^\d]/, '' } where(:id => item_ids) end |
#similar_to(item, n, opts = {}) ⇒ Object
78 79 80 81 82 83 84 85 86 |
# File 'lib/predictable/item.rb', line 78 def similar_to(item, n, opts={}) = opts.stringify_keys ["pio_itypes"] ||= [pio_itype] limit = .delete("limit") || 100 item_ids = recommender.similar_items(item, n, ) item_ids = item_ids.map { |id| id.gsub! /[^\d]/, '' } where(:id => item_ids) end |