class Etsy::Variation::PropertySet
Public Class Methods
all()
click to toggle source
# File lib/etsy/variation/property_set.rb, line 35 def self.all @all ||= get("/property_sets") end
find_property_by_name(name)
click to toggle source
# File lib/etsy/variation/property_set.rb, line 39 def self.find_property_by_name(name) property = all.properties.detect {|prop_id, prop| prop["name"] == name} if property property_id, property_data = property property_data end end
qualifying_properties_for_property(name)
click to toggle source
# File lib/etsy/variation/property_set.rb, line 47 def self.qualifying_properties_for_property(name) property = find_property_by_name(name) return nil unless property property_id = property["property_id"] qualifiers = all.qualifiers[property_id.to_s] return [] unless qualifiers qualifiers.map do |qualifier| qualifying_properties = all.qualifying_properties[qualifier.fetch("property_id").to_s] options = qualifier.fetch("options").inject({}) do |acc, opt_id| acc.merge({ all.options.fetch(opt_id.to_s) => opt_id }) end { "param" => qualifying_properties.fetch("param"), "description" => qualifying_properties.fetch("description"), "options" => options } end end