class Materialistic::Providers::SwitchScience

Public Class Methods

new() click to toggle source
# File lib/materialistic/providers/switch-science.rb, line 8
def initialize
  @agent = Mechanize.new
end

Public Instance Methods

display_name() click to toggle source
# File lib/materialistic/providers/switch-science.rb, line 12
def display_name
  'Switch Science'
end
item(sku) click to toggle source
# File lib/materialistic/providers/switch-science.rb, line 36
def item(sku)
  page = @agent.get "https://www.switch-science.com/catalog/#{sku}/"

  table = (page/'.table-bordered-rect/tr')
  quantity = (table[7]/'td').text.strip

  {
    name: (table[1]/'td').text.strip,
    description: (page/'#description').text.strip,
    mpn: (table[2]/'td').text,
    sku: (table[3]/'td').text,
    postage_class: (table[4]/'td/span').text.to_i,
    price: (table[5]/'td/.price').text.strip.gsub(/\D/, '').to_i,
    currency: 'JPY',
    quantity: quantity == '多数' ? QUANTITY_HUGE : quantity,
    url: page.uri.to_s,
    image: (table[0]/'a').attr('href').text
  }
end
list(query) click to toggle source
# File lib/materialistic/providers/switch-science.rb, line 16
def list(query)
  page = @agent.get "https://www.switch-science.com/catalog/list?keyword=#{query}"

  products = page/'.products_thumb/li'
  products.inject([]) do |result, product|
    quantity = (product/'.detail/#quantity-message').text.strip.gsub(/^在庫:/, '')

    result << {
      name: (product/'.detail/p').text.strip,
      description: (product/'img').attr('title').text.strip,
      mpn: (product/'img').attr('alt').text.strip,
      sku: (product/'.addcart/input[name=plu]').attr('value').text,
      price: (product/'.detail/.price').text.strip.gsub(/\D/, '').to_i,
      currency: 'JPY',
      quantity: quantity == '多数' ? QUANTITY_HUGE : quantity,
      url: page.uri.merge((product/'a').attr('href').text).to_s,
      image: "https:" + (product/'img').attr('src').text
    }
  end

  def item(sku)
    page = @agent.get "https://www.switch-science.com/catalog/#{sku}/"

    table = (page/'.table-bordered-rect/tr')
    quantity = (table[7]/'td').text.strip

    {
      name: (table[1]/'td').text.strip,
      description: (page/'#description').text.strip,
      mpn: (table[2]/'td').text,
      sku: (table[3]/'td').text,
      postage_class: (table[4]/'td/span').text.to_i,
      price: (table[5]/'td/.price').text.strip.gsub(/\D/, '').to_i,
      currency: 'JPY',
      quantity: quantity == '多数' ? QUANTITY_HUGE : quantity,
      url: page.uri.to_s,
      image: (table[0]/'a').attr('href').text
    }
  end
end