class SolidusRecommendations::Client

Public Class Methods

add_recommendable(name) click to toggle source

Defines a method to access class instance.

@example Create a namespace for products

add_recommendable :products #=> SolidusRecommendations::Client::Products.new
# File lib/solidus_recommendations/client.rb, line 10
def self.add_recommendable(name)
  converted = name.to_s.split('_').map(&:capitalize).join
  klass = SolidusRecommendations::Recommendable.const_get(converted)
  create_instance(klass)
end
create_instance(klass) click to toggle source

Dynamically creates an attr_reader for each client space and sets it to the initalized values

# File lib/solidus_recommendations/client.rb, line 20
def self.create_instance(klass)
  reader = klass.to_s.split('::').last.downcase
  define_method(reader.to_sym) { klass.new }
end

Public Instance Methods

products() click to toggle source

Methods for product recommendations.

@return [SolidusRecommendations::Recommendable::Products]

# File lib/solidus_recommendations/client.rb, line 30
add_recommendable :products