Module: Predictable::Item::ClassMethods
- Defined in:
- lib/predictable/item.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #pio_itype ⇒ Object
- #recommended_for(user, opts = {}) ⇒ Object
- #similar_to(item, opts = {}) ⇒ Object
Instance Attribute Details
#pio_engines ⇒ Object
64 65 66 |
# File 'lib/predictable/item.rb', line 64 def pio_engines @pio_engines || Predictable.engines end |
#recommender ⇒ Object
68 69 70 |
# File 'lib/predictable/item.rb', line 68 def recommender @recommender ||= Recommender.new(Predictable.client, pio_engines) end |
Instance Method Details
#pio_itype ⇒ Object
72 73 74 |
# File 'lib/predictable/item.rb', line 72 def pio_itype to_s.underscore end |
#recommended_for(user, opts = {}) ⇒ Object
76 77 78 79 80 81 82 83 |
# File 'lib/predictable/item.rb', line 76 def recommended_for(user, opts = {}) = { "itypes" => [pio_itype] }.merge(opts) limit = .delete("limit") || 10 item_ids = recommender.recommended_items(user, limit, ) item_ids = item_ids.map { |id| id.gsub! /[^\d]/, '' } where(:id => item_ids) end |
#similar_to(item, opts = {}) ⇒ Object
85 86 87 88 89 90 91 92 93 |
# File 'lib/predictable/item.rb', line 85 def similar_to(item, opts={}) = opts.stringify_keys ["pio_itypes"] ||= [pio_itype] limit = .delete("limit") || 10 item_ids = recommender.similar_items(item, limit, ) item_ids = item_ids.map { |id| id.gsub! /[^\d]/, '' } where(:id => item_ids) end |