Module: Netphase::Acts::Amazonable::InstanceMethods

Defined in:
lib/acts_as_amazon_product.rb

Overview

This module contains instance methods

Instance Method Summary collapse

Instance Method Details

#after_saveObject



74
75
76
77
78
79
# File 'lib/acts_as_amazon_product.rb', line 74

def after_save
  unless self.amazon_product.nil?
    self.amazon_product.destroy
    self.reload
  end
end

#amazonObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/acts_as_amazon_product.rb', line 48

def amazon
  if self.amazon_product.nil?
    asin = (self.respond_to?('amazon_asin')) ? self.send(self.amazon_asin) : nil
    name = (self.respond_to?('amazon_name')) ? self.send(self.amazon_name) : nil
    
    if !asin.nil? && asin.length > 0
      #puts "Looking up #{asin}"
      res = Amazon::Ecs.item_lookup(self.send(self.amazon_asin), :response_group => 'Medium')
      
      self.amazon_product =
        AmazonProduct.new(:xml => res.doc.to_html, :asin => res.doc.at('itemattributes/isbn').inner_html)
      self.amazon_product.save
    elsif !name.nil? && name.length > 0
      #puts "Searching for #{name}"
      res = Amazon::Ecs.item_search(self.send(self.amazon_name), :response_group => 'Medium') #, :sort => 'salesrank'
      res = res.doc.at('items/item')
      self.amazon_product =
        AmazonProduct.new(:xml => res.to_html, :asin => res.at('itemattributes/isbn').inner_html)
      self.amazon_product.save
    else
      logger.error "No known attributes to search by"
    end            
  end
  self.amazon_product
end