Class: Etsy::Variation::PropertySet
- Inherits:
-
Object
- Object
- Etsy::Variation::PropertySet
show all
- Includes:
- Model
- Defined in:
- lib/etsy/variation/property_set.rb
Class Method Summary
collapse
Methods included from Model
included, #initialize, #result, #secret, #token
Class Method Details
.all ⇒ Object
35
36
37
|
# File 'lib/etsy/variation/property_set.rb', line 35
def self.all
@all ||= get("/property_sets")
end
|
.find_property_by_name(name) ⇒ Object
39
40
41
42
43
44
45
|
# 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) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# 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
|