class WeddingRegistryScraper::Registries::Zola

Private Instance Methods

fulfilled?(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 55
def fulfilled?(product)
  if price_type(product) == WeddingRegistryScraper::Registry::VARIABLE_PRICE
    get_price(product) <= 0
  else
    get_remaining(product) <= 0
  end
end
get_desired(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 36
def get_desired(product)
  needed_text = get_needed_section(product)
  /Requested: (\d+)/.match(needed_text) { $1 }.to_i
end
get_image_url(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 23
def get_image_url(product)
  product.css('[data-image-url]')[0]['data-image-url']
end
get_name(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 9
def get_name(product)
  product.css('.single-product-name').text.strip
end
get_needed_section(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 27
def get_needed_section(product)
  product.css('.needed').text.strip
end
get_price(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 41
def get_price(product)
  product.css('[data-price]')[0]['data-price'].gsub(/[$,]/, '').to_f
end
get_products(doc) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 5
def get_products(doc)
  doc.css('#all-panel .product-tile')
end
get_remaining(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 31
def get_remaining(product)
  needed_text = get_needed_section(product)
  /Still Needs: (\d+)/.match(needed_text) { $1 }.to_i
end
get_sku(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 13
def get_sku(product)
  sku = product.css('.single-product')[0]['id']
  "zola:#{sku}"
end
get_url(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 18
def get_url(product)
  href = product.css('.content a')[0]['href'].sub(/^\/?/, '')
  "https://www.zola.com/#{href}"
end
price_type(product) click to toggle source
# File lib/wedding_registry_scraper/registries/zola.rb, line 45
def price_type(product)
  product_price = product.css('.product-price')

  if product_price.length > 0 && product_price[0].text.strip == 'Contribute what you wish'
    WeddingRegistryScraper::Registry::VARIABLE_PRICE
  else
    WeddingRegistryScraper::Registry::FIXED_PRICE
  end
end