class Skimlinks::Product
Attributes
category[RW]
country[RW]
currency[RW]
description[RW]
id[RW]
image_urls[RW]
merchant_id[RW]
merchant_name[RW]
name[RW]
price[RW]
product_id[RW]
url[RW]
Public Class Methods
affiliate_url(url, publisher_id = nil)
click to toggle source
# File lib/skimlinks/product.rb, line 30 def affiliate_url(url, publisher_id = nil) publisher_id ||= Settings.skimlinks.publisher_id Skimlinks::Client.new.affiliate url, publisher_id end
build_from_api_response(product_data)
click to toggle source
# File lib/skimlinks/product.rb, line 6 def build_from_api_response(product_data) product_data.map do |product| description = product['description'] .strip # Remove leading and trailing whitespace .gsub(/\n+/, "\n") # Replace multiple "\n"s by a single one category = ProductSearch.new.categories.invert[product['categorisation']['categoryId'].to_i] || 'empty' self.new \ id: product['id'], name: product['title'], url: product['url'], description: description, merchant_name: product['merchant'], merchant_id: product['merchantId'], product_id: product['productId'], country: product['country'], price: product['price'], currency: product['currency'].downcase, category: category, image_urls: product['imageUrl'].present? ? [URI(product['imageUrl'])] : [] end end
new(args = {})
click to toggle source
# File lib/skimlinks/product.rb, line 36 def initialize(args = {}) args.each do |k, v| self.send "#{k}=", v end end