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