magento 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/magento/model.rb +1 -1
- data/lib/magento/product.rb +20 -2
- data/lib/magento/query.rb +25 -3
- data/lib/magento/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41955a56a9aff31abc7c7c74adcc72eb84a11e00ebef0e169b40e89e218d3d0b
|
4
|
+
data.tar.gz: d4e846e5407872f2c2909585b148c85ede8f9552456dfd18886fa791c8b2f1e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5178cf1b839df2db8fd2c5c5e9c891ebdff52f2d1ce2f896c6a3a8d0f7b607960a19cfcadfece2c53289b1637c2cc613b3632b0c8bf564513e71033d2cfcfe93
|
7
|
+
data.tar.gz: 28522d689e5c6a718275174c531e585c26cef4a07347b9ebd70346761a696cc87260aa809acc98fc0f9b883b9ee0c5140b0ecde3e19101ca426dab36227f003c
|
data/lib/magento/model.rb
CHANGED
@@ -35,7 +35,7 @@ module Magento
|
|
35
35
|
class << self
|
36
36
|
extend Forwardable
|
37
37
|
|
38
|
-
def_delegators :query, :all, :page, :per, :page_size, :order, :select,
|
38
|
+
def_delegators :query, :all, :find_each, :page, :per, :page_size, :order, :select,
|
39
39
|
:where, :first, :find_by, :count
|
40
40
|
|
41
41
|
def find(id)
|
data/lib/magento/product.rb
CHANGED
@@ -2,8 +2,8 @@ module Magento
|
|
2
2
|
class Product < Model
|
3
3
|
self.primary_key = :sku
|
4
4
|
|
5
|
-
def method_missing(m)
|
6
|
-
attr(m) || super
|
5
|
+
def method_missing(m, *params, &block)
|
6
|
+
attr(m) || super(m, *params, &block)
|
7
7
|
end
|
8
8
|
|
9
9
|
# returns custom_attribute value by custom_attribute code
|
@@ -16,8 +16,26 @@ module Magento
|
|
16
16
|
super || @custom_attributes&.any? { |a| a.attribute_code == attribute_code.to_s }
|
17
17
|
end
|
18
18
|
|
19
|
+
def add_media(attributes)
|
20
|
+
self.class.add_media(sku, attributes)
|
21
|
+
end
|
22
|
+
|
23
|
+
# returns true if the media was deleted
|
24
|
+
def remove_media(media_id)
|
25
|
+
self.class.remove_media(sku, media_id)
|
26
|
+
end
|
27
|
+
|
19
28
|
class << self
|
20
29
|
alias_method :find_by_sku, :find
|
30
|
+
|
31
|
+
def add_media(sku, attributes)
|
32
|
+
request.post("products/#{sku}/media", { entry: attributes }).parse
|
33
|
+
end
|
34
|
+
|
35
|
+
# returns true if the media was deleted
|
36
|
+
def remove_media(sku, media_id)
|
37
|
+
request.delete("products/#{sku}/media/#{media_id}").parse
|
38
|
+
end
|
21
39
|
end
|
22
40
|
end
|
23
41
|
end
|
data/lib/magento/query.rb
CHANGED
@@ -58,7 +58,7 @@ module Magento
|
|
58
58
|
alias_method :per, :page_size
|
59
59
|
|
60
60
|
def select(*fields)
|
61
|
-
fields = fields.map { |field| parse_field(field) }
|
61
|
+
fields = fields.map { |field| parse_field(field, root: true) }
|
62
62
|
|
63
63
|
if model == Magento::Category
|
64
64
|
self.fields = "children_data[#{fields.join(',')}]"
|
@@ -92,6 +92,28 @@ module Magento
|
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
95
|
+
#
|
96
|
+
# Loop all products on each page, starting from the first to the last page
|
97
|
+
def find_each
|
98
|
+
if @model == Magento::Category
|
99
|
+
raise NoMethodError, 'undefined method `find_each` for Magento::Category'
|
100
|
+
end
|
101
|
+
|
102
|
+
@current_page = 1
|
103
|
+
|
104
|
+
loop do
|
105
|
+
redords = all
|
106
|
+
|
107
|
+
redords.each do |record|
|
108
|
+
yield record
|
109
|
+
end
|
110
|
+
|
111
|
+
break if redords.last_page?
|
112
|
+
|
113
|
+
@current_page = redords.next_page
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
95
117
|
def first
|
96
118
|
page_size(1).page(1).all.first
|
97
119
|
end
|
@@ -149,8 +171,8 @@ module Magento
|
|
149
171
|
value
|
150
172
|
end
|
151
173
|
|
152
|
-
def parse_field(value)
|
153
|
-
return verify_id(value) unless value.is_a? Hash
|
174
|
+
def parse_field(value, root: false)
|
175
|
+
return (root ? verify_id(value) : value) unless value.is_a? Hash
|
154
176
|
|
155
177
|
value.map do |k, v|
|
156
178
|
fields = v.is_a?(Array) ? v.map { |field| parse_field(field) } : [parse_field(v)]
|
data/lib/magento/version.rb
CHANGED