Module: Predictable::Item::ClassMethods

Defined in:
lib/predictable/item.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#pio_enginesObject



58
59
60
# File 'lib/predictable/item.rb', line 58

def pio_engines
  @pio_engines || Predictable.engines
end

#recommenderObject



62
63
64
# File 'lib/predictable/item.rb', line 62

def recommender
  @recommender ||= Recommender.new(Predictable.client, pio_engines)
end

Instance Method Details

#pio_itypeObject



66
67
68
# File 'lib/predictable/item.rb', line 66

def pio_itype
  to_s.underscore
end


70
71
72
73
74
75
76
# File 'lib/predictable/item.rb', line 70

def recommended_for(user, n, opts={})
  options = { "itypes" => [pio_itype] }.merge(opts)

  item_ids = recommender.recommended_items(user, n, options)
  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={})
  options = opts.stringify_keys
  options["pio_itypes"] ||= [pio_itype]
  limit = options.delete("limit") || 100

  item_ids = recommender.similar_items(item, n, options)
  item_ids = item_ids.map { |id| id.gsub! /[^\d]/, '' }
  where(:id => item_ids)
end