class Taobao::Product

Constants

BASIC_PROPERTIES
OTHER_PROPERTIES

Public Class Methods

new(product_properties) click to toggle source
# File lib/taobao/product.rb, line 19
def initialize(product_properties)
  if Hash === product_properties
    to_object product_properties
    @all_properties_fetched = false
    convert_types
  else
    @num_iid = product_properties.to_s
    fetch_full_data
  end
end

Public Instance Methods

method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/taobao/product.rb, line 34
def method_missing(method_name, *args, &block)
  if instance_variable_defined? "@#{method_name}"
    fetch_full_data unless @all_properties_fetched
    self.instance_variable_get "@#{method_name}"
  else
    super
  end
end
user() click to toggle source
# File lib/taobao/product.rb, line 30
def user
  Taobao::User.new @nick
end

Private Instance Methods

convert_types() click to toggle source
# File lib/taobao/product.rb, line 54
def convert_types
  @price = @price.to_f
  @cid = @cid.to_i
  @num_iid = @num_iid.to_i
  @auction_point = @auction_point.to_i
  @delist_time = DateTime.parse @delist_time
end
fetch_full_data() click to toggle source
# File lib/taobao/product.rb, line 45
def fetch_full_data
  fields = (BASIC_PROPERTIES + OTHER_PROPERTIES).join ','
  params = {method: 'taobao.item.get', fields: fields, num_iid: id}
  result = Taobao.api_request(params)
  to_object result[:item_get_response][:item]
  @all_properties_fetched = true
  convert_types
end