class ItemsForSalePopulator

Attributes

wishlist[R]

Public Class Methods

new(wishlist:) click to toggle source
# File lib/discogs/wishlist/populators/items_for_sale_populator.rb, line 11
def initialize(wishlist:)
  @wishlist = wishlist

  configure_money
end

Public Instance Methods

populate!() click to toggle source
# File lib/discogs/wishlist/populators/items_for_sale_populator.rb, line 17
def populate!
  threads_per_slice(wishlist, 2) do |slice, mutex|
    slice.each do |wishlist_album|
      wishlist_album.variations.each do |variation|
        mutex.synchronize do
          variation.add_items_for_sale(find_items_for_sale(variation.id))
        end
      end
    end
  end
end

Private Instance Methods

configure_money() click to toggle source
# File lib/discogs/wishlist/populators/items_for_sale_populator.rb, line 39
def configure_money
  ISO3166.configuration.enable_currency_extension!
  Money.locale_backend = nil
  Money.default_currency = nil
  Money.rounding_mode = BigDecimal::ROUND_HALF_EVEN
end
discogs_web() click to toggle source
# File lib/discogs/wishlist/populators/items_for_sale_populator.rb, line 46
def discogs_web
  @discogs_web ||= DiscogsWeb.new
end
find_items_for_sale(variation_id) click to toggle source
# File lib/discogs/wishlist/populators/items_for_sale_populator.rb, line 33
def find_items_for_sale(variation_id)
  raw = discogs_web.sell(variation_id, wishlist.country&.currency&.iso_code)

  ItemPriceParser.new(raw, wishlist.country).parse
end