class Wishlist
Constants
- WISHLIST_URI
Attributes
items[RW]
Public Class Methods
new(wishlist_items = [])
click to toggle source
# File lib/dim_wishlist.rb, line 43 def initialize(wishlist_items = []) @items = {} wishlist_items.each(&:add_item) end
parse(wishlist_uri = WISHLIST_URI)
click to toggle source
# File lib/dim_wishlist.rb, line 14 def parse(wishlist_uri = WISHLIST_URI) instance = self.new body = get_wishlist_text(wishlist_uri) return if body.nil? lines = [] body.split("\n").each do |line| if line =~ %r{// [a-zA-Z(]|//notes:|dimwishlist:} lines << line elsif lines.length.positive? instance.add_item(WishlistItem.new(lines)) rescue nil lines.clear end end instance end
Private Class Methods
get_wishlist_text(wishlist_uri)
click to toggle source
# File lib/dim_wishlist.rb, line 35 def get_wishlist_text(wishlist_uri) uri = URI(wishlist_uri) res = Net::HTTP.get_response(uri) res.body if res.is_a?(Net::HTTPSuccess) end
Public Instance Methods
add_item(wishlist_item)
click to toggle source
# File lib/dim_wishlist.rb, line 48 def add_item(wishlist_item) wishlist_item.item_ids.each do |id| @items[id] ||= [] @items[id] << wishlist_item @items[id].uniq! end wishlist_item end
items_with_id(id)
click to toggle source
# File lib/dim_wishlist.rb, line 58 def items_with_id(id) @items[id] || [] end
to_s()
click to toggle source
# File lib/dim_wishlist.rb, line 66 def to_s @items.values.flatten.map(&:to_s).join end
wishlist_item?(id, perks)
click to toggle source
# File lib/dim_wishlist.rb, line 62 def wishlist_item?(id, perks) items_with_id(id).any? { |item| item.has_roll?(id, perks) } end