magento 0.3.2 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02761b4b3a2e3b5da2082816534436f4f007f5f657b32400483bfd36d02f610b
4
- data.tar.gz: 98e66dfd540d759b3e024de58bc43575b1c3437864584c4797d27391e5ec279e
3
+ metadata.gz: dd3536ff0990f9885cf6bce98f95fca25fa7cbe9fb0490c94d16e8ea8c38e5d0
4
+ data.tar.gz: 053c8d7f6acca2645f8dcc91d827528083180197e9a4a2646ecdfabd447e25df
5
5
  SHA512:
6
- metadata.gz: 9523a813be0fc77cc4fea9a751b639994a1a8e03869326ae967b9b98bcee93edcdc03f81abae60110514a5833fc5d123d91c634af5bd149d7ff586e732b77db9
7
- data.tar.gz: 40bba87521d8624056cee96a8832a6dfcaf99353c9c69038684e8bf7d29cd7d9883fd97330eb45e646a438415bb533934cbccca6847770e41255b38d4c237ebb
6
+ metadata.gz: bfa4b1c245be351e7cea3553538d8176a6377004b845e4149ae75a1a946c0c9416dd80c58cb711d450ac02553e3ee1472e76e38553627a923aab1e5ee58f4153
7
+ data.tar.gz: c991265d08e040f657758bb4481db516556a108c2611e2525ea113eac04b3f30800ca4072bac7bdd6947198a4f6fc27ddf81eac64cbd6eea14d4e2301206d767
@@ -0,0 +1,42 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ branches: [ release ]
6
+ pull_request:
7
+ branches: [ release ]
8
+
9
+ jobs:
10
+ build:
11
+ name: Build + Publish
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Ruby 2.6
17
+ uses: actions/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.6.x
20
+
21
+ - name: Publish to GPR
22
+ run: |
23
+ mkdir -p $HOME/.gem
24
+ touch $HOME/.gem/credentials
25
+ chmod 0600 $HOME/.gem/credentials
26
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
27
+ gem build magento-ruby.gemspec
28
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
29
+ env:
30
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
31
+ OWNER: ${{ github.repository_owner }}
32
+
33
+ - name: Publish to RubyGems
34
+ run: |
35
+ mkdir -p $HOME/.gem
36
+ touch $HOME/.gem/credentials
37
+ chmod 0600 $HOME/.gem/credentials
38
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
39
+ gem build magento.gemspec
40
+ gem push magento-[0-9]*.gem
41
+ env:
42
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
data/README.md CHANGED
@@ -1,184 +1,267 @@
1
- # Magento Ruby library
2
-
3
- ## Install
4
-
5
- Add in your Gemfile
6
-
7
- ```rb
8
- gem 'magento', '~> 0.3.2'
9
- ```
10
-
11
- or run
12
-
13
- ```sh
14
- gem install magento
15
- ```
16
-
17
- ### Setup
18
-
19
- ```rb
20
- Magento.url = 'https://yourstore.com'
21
- Magento.token = 'MAGENTO_API_KEY'
22
- Magento.store = :default # optional, Default is :all
23
- ```
24
-
25
- ## Models
26
- ```rb
27
- Magento::Product
28
- Magento::Order
29
- Magento::Country
30
- Magento::Category
31
- ```
32
-
33
- ## Get details
34
-
35
- ```rb
36
- Magento::Product.find('sku-test')
37
- Magento::Order.find(25)
38
- Magento::Country.find('BR')
39
- ```
40
- \* _same pattern to all models_
41
-
42
- **Outside pattern**
43
-
44
- Get customer by token
45
-
46
- ```rb
47
- Magento::Customer.find_by_token('user_token')
48
- ```
49
-
50
- ## Get List
51
-
52
- ```rb
53
- Magento::Product.all
54
- ```
55
-
56
- #### Select fields:
57
- ```rb
58
- Magento::Product.select(:id, :sku, :name).all
59
- Magento::Product.select(:id, :sku, :name, extension_attributes: :category_links).all
60
- Magento::Product.select(:id, :sku, :name, extension_attributes: [:category_links, :website_ids]).all
61
- Magento::Product.select(:id, :sku, :name, extension_attributes: [:website_ids, { category_links: :category_id }]).all
62
- ```
63
-
64
- #### Filters:
65
-
66
- ```rb
67
- Magento::Product.where(name_like: 'IPhone%').all
68
- Magento::Product.where(price_gt: 100).all
69
-
70
- # price > 10 AND price < 20
71
- Magento::Product.where(price_gt: 10)
72
- .where(price_lt: 20).all
73
-
74
- # price < 1 OR price > 100
75
- Magento::Product.where(price_lt: 1, price_gt: 100).all
76
-
77
- Magento::Order.where(status_in: [:canceled, :complete]).all
78
- ```
79
-
80
- | Condition | Notes |
81
- | --------- | ----- |
82
- |eq | Equals. |
83
- |finset | A value within a set of values |
84
- |from | The beginning of a range. Must be used with to |
85
- |gt | Greater than |
86
- |gteq | Greater than or equal |
87
- |in | In. The value is an array |
88
- |like | Like. The value can contain the SQL wildcard characters when like is specified. |
89
- |lt | Less than |
90
- |lteq | Less than or equal |
91
- |moreq | More or equal |
92
- |neq | Not equal |
93
- |nfinset | A value that is not within a set of values |
94
- |nin | Not in. The value is an array |
95
- |notnull | Not null |
96
- |null | Null |
97
- |to | The end of a range. Must be used with from |
98
-
99
-
100
- #### SortOrder:
101
-
102
- ```rb
103
- Magento::Product.order(:sku).all
104
- Magento::Product.order(sku: :desc).all
105
- Magento::Product.order(status: :desc, name: :asc).all
106
- ```
107
-
108
- #### Pagination:
109
-
110
- ```rb
111
- # Set page and quantity per page
112
- Magento::Product.page(1).per(25) # Default per is 50
113
- ```
114
-
115
- #### Example of several options together:
116
- ```rb
117
- Magento::Product.select(:sku, :name, :price)
118
- .where(name_like: 'Tshort%')
119
- .order(price: :desc)
120
- .per(10)
121
- .all
122
- ```
123
-
124
- \* _same pattern to all models_
125
- ___
126
- ## \######### TODO \##########
127
-
128
- ## Create
129
-
130
- ```rb
131
- Magento::Order.create(
132
- customer_firstname: '',
133
- customer_lastname: '',
134
- customer_email: '',
135
- # others attrbutes ...,
136
- items: [
137
- {
138
- sku: '',
139
- price: '',
140
- qty_ordered: 1,
141
- # others attrbutes ...,
142
- }
143
- ],
144
- billing_address: {
145
- # attrbutes...
146
- },
147
- payment: {
148
- # attrbutes...
149
- },
150
- extension_attributes: {
151
- # attrbutes...
152
- }
153
- )
154
- ```
155
-
156
- ### Update
157
-
158
- ```rb
159
- product = Magento::Product.find('sku-teste')
160
-
161
- product.name = 'Updated name'
162
- product.save
163
-
164
- # or
165
-
166
- product.update(name: 'Updated name')
167
- ```
168
-
169
- ### Delete
170
-
171
- ```rb
172
- product = Magento::Product.find('sku-teste')
173
-
174
- product.delete
175
-
176
- # or
177
-
178
- Magento::Product.delete('sku-teste')
179
- ```
180
-
181
- ### Search products
182
- ```rb
183
- Magento::Product.search('tshort')
184
- ```
1
+ # Magento Ruby library
2
+
3
+ ## Install
4
+
5
+ Add in your Gemfile
6
+
7
+ ```rb
8
+ gem 'magento', '~> 0.4.2'
9
+ ```
10
+
11
+ or run
12
+
13
+ ```sh
14
+ gem install magento
15
+ ```
16
+
17
+ ### Setup
18
+
19
+ ```rb
20
+ Magento.url = 'https://yourstore.com'
21
+ Magento.token = 'MAGENTO_API_KEY'
22
+ Magento.store = :default # optional, Default is :all
23
+ ```
24
+
25
+ ## Models
26
+ ```rb
27
+ Magento::Product
28
+ Magento::Order
29
+ Magento::Country
30
+ Magento::Category
31
+ ```
32
+
33
+ ## Get details
34
+
35
+ ```rb
36
+ Magento::Product.find('sku-test')
37
+ Magento::Order.find(25)
38
+ Magento::Country.find('BR')
39
+ ```
40
+ \* _same pattern to all models_
41
+
42
+ **Outside pattern**
43
+
44
+ Get customer by token
45
+
46
+ ```rb
47
+ Magento::Customer.find_by_token('user_token')
48
+ ```
49
+
50
+ ## Get List
51
+
52
+ ```rb
53
+ Magento::Product.all
54
+ ```
55
+
56
+ #### Select fields:
57
+ ```rb
58
+ Magento::Product.select(:id, :sku, :name).all
59
+ Magento::Product.select(:id, :sku, :name, extension_attributes: :category_links).all
60
+ Magento::Product.select(:id, :sku, :name, extension_attributes: [:category_links, :website_ids]).all
61
+ Magento::Product.select(:id, :sku, :name, extension_attributes: [:website_ids, { category_links: :category_id }]).all
62
+ ```
63
+
64
+ #### Filters:
65
+
66
+ ```rb
67
+ Magento::Product.where(name_like: 'IPhone%').all
68
+ Magento::Product.where(price_gt: 100).all
69
+
70
+ # price > 10 AND price < 20
71
+ Magento::Product.where(price_gt: 10)
72
+ .where(price_lt: 20).all
73
+
74
+ # price < 1 OR price > 100
75
+ Magento::Product.where(price_lt: 1, price_gt: 100).all
76
+
77
+ Magento::Order.where(status_in: [:canceled, :complete]).all
78
+ ```
79
+
80
+ | Condition | Notes |
81
+ | --------- | ----- |
82
+ |eq | Equals. |
83
+ |finset | A value within a set of values |
84
+ |from | The beginning of a range. Must be used with to |
85
+ |gt | Greater than |
86
+ |gteq | Greater than or equal |
87
+ |in | In. The value is an array |
88
+ |like | Like. The value can contain the SQL wildcard characters when like is specified. |
89
+ |lt | Less than |
90
+ |lteq | Less than or equal |
91
+ |moreq | More or equal |
92
+ |neq | Not equal |
93
+ |nfinset | A value that is not within a set of values |
94
+ |nin | Not in. The value is an array |
95
+ |notnull | Not null |
96
+ |null | Null |
97
+ |to | The end of a range. Must be used with from |
98
+
99
+
100
+ #### SortOrder:
101
+
102
+ ```rb
103
+ Magento::Product.order(:sku).all
104
+ Magento::Product.order(sku: :desc).all
105
+ Magento::Product.order(status: :desc, name: :asc).all
106
+ ```
107
+
108
+ #### Pagination:
109
+
110
+ ```rb
111
+ # Set page and quantity per page
112
+ Magento::Product.page(1) # Current page, Default is 1
113
+ .page_size(25) # Default is 50
114
+ .all
115
+
116
+ # per is an alias to page_size
117
+ Magento::Product.per(25).all
118
+ ```
119
+
120
+ #### Example of several options together:
121
+ ```rb
122
+ products = Magento::Product.select(:sku, :name)
123
+ .where(name_like: 'biscoito%')
124
+ .page(1)
125
+ .page_size(5)
126
+ .all
127
+ ```
128
+
129
+ \* _same pattern to all models_
130
+
131
+ ### Response
132
+
133
+ The `all` method retorns a `Magento::RecordCollection` instance
134
+
135
+ ```rb
136
+ products.first
137
+ >> <Magento::Product @sku="2100", @name="Biscoito Piraque Salgadinho 100G">
138
+
139
+ products[0]
140
+ >> <Magento::Product @sku="2100", @name="Biscoito Piraque Salgadinho 100G">
141
+
142
+ products.last
143
+ >> <Magento::Product @sku="964", @name="Biscoito Negresco 140 G Original">
144
+
145
+ products.map(&:sku)
146
+ >> ["2100", "792", "836", "913", "964"]
147
+
148
+ products.size
149
+ >> 5
150
+
151
+ products.current_page
152
+ >> 1
153
+
154
+ products.page_size
155
+ >> 5
156
+
157
+ products.total_count
158
+ >> 307
159
+
160
+ products.filter_groups
161
+ >> [<Magento::FilterGroup @filters=[<Magento::Filter @field="name", @value="biscoito%", @condition_type="like">]>]
162
+ ```
163
+
164
+ All Methods:
165
+
166
+ ```rb
167
+ # Information about search criteria
168
+ :current_page
169
+ :page_size
170
+ :total_count
171
+ :filter_groups
172
+
173
+ # Iterating with the list of items
174
+ :count
175
+ :length
176
+ :size
177
+
178
+ :first
179
+ :last
180
+ :[]
181
+ :find
182
+
183
+ :each
184
+ :each_with_index
185
+ :sample
186
+
187
+ :map
188
+ :select
189
+ :filter
190
+ :reject
191
+ :collect
192
+ :take
193
+ :take_while
194
+
195
+ :sort
196
+ :sort_by
197
+ :reverse_each
198
+ :reverse
199
+
200
+ :all?
201
+ :any?
202
+ :none?
203
+ :one?
204
+ :empty?
205
+ ```
206
+
207
+ ## Create
208
+
209
+ ```rb
210
+ Magento::Order.create(
211
+ customer_firstname: '',
212
+ customer_lastname: '',
213
+ customer_email: '',
214
+ # others attrbutes ...,
215
+ items: [
216
+ {
217
+ sku: '',
218
+ price: '',
219
+ qty_ordered: 1,
220
+ # others attrbutes ...,
221
+ }
222
+ ],
223
+ billing_address: {
224
+ # attrbutes...
225
+ },
226
+ payment: {
227
+ # attrbutes...
228
+ },
229
+ extension_attributes: {
230
+ # attrbutes...
231
+ }
232
+ )
233
+ ```
234
+
235
+ ### Update
236
+
237
+ ```rb
238
+ product = Magento::Product.find('sku-teste')
239
+
240
+ product.name = 'Updated name'
241
+ product.save
242
+
243
+ # or
244
+
245
+ product.update(name: 'Updated name')
246
+ ```
247
+
248
+ ### Delete
249
+
250
+ ```rb
251
+ product = Magento::Product.find('sku-teste')
252
+
253
+ product.delete
254
+
255
+ # or
256
+
257
+ Magento::Product.delete('sku-teste')
258
+ ```
259
+
260
+ ___
261
+
262
+ ##TODO:
263
+
264
+ ### Search products
265
+ ```rb
266
+ Magento::Product.search('tshort')
267
+ ```