magento 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a31c9d80a9b75142710a4eaca0c87e47ac32c9fc0589ce967cebd450350a4e2
4
- data.tar.gz: 16e930d0a17ccab6e520e75e4a87da495caee97977c6ed61b59b5ed046c82485
3
+ metadata.gz: f899948f7690202bfadf8b2d0afbb066a864fd85f3e7d0c591df07b4f631d7bb
4
+ data.tar.gz: 63585fc1f5b5ba321a065e2796c253b52f544b3b057b941b933c027a04d63d07
5
5
  SHA512:
6
- metadata.gz: ed64d3a633a8d5e4cfd6eac464ff4d3bfc85c5105c5a2f83a4dc8d739710d584fa9ca35a17f49ea49eeadd01e3aadc6d1c6c48e3f46fbe085544b3ada8e518b4
7
- data.tar.gz: 9ad6ce4e8e29c15eea332371f3c73b9d0c342d97b540a764ae7e8f6f03244e087e44fd72e8f1bd5e50cb5fc5b22327f9b2ee55369261ea9efa1208fc13527209
6
+ metadata.gz: 0142acdd5ef93981d5170c39fecd73852458d8ea4a01d8b3c2ee28fd01c82ae26f2f16c533219908d8110648f50a99188b89a0f8537750b187fe62f003ff04c3
7
+ data.tar.gz: 39092a61524a5f09cc61ead86e66917f5833f2b30ca6a7155479c41af471a88394ccdbd233341a03ef6a8fadbd3e3dbd6b222d554b9eee590f0fec1b3b1f7006
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Add in your Gemfile
6
6
 
7
7
  ```rb
8
- gem 'magento', '~> 0.5.0'
8
+ gem 'magento', '~> 0.6.0'
9
9
  ```
10
10
 
11
11
  or run
@@ -20,6 +20,10 @@ gem install magento
20
20
  Magento.url = 'https://yourstore.com'
21
21
  Magento.token = 'MAGENTO_API_KEY'
22
22
  Magento.store = :default # optional, Default is :all
23
+
24
+ Magento.with_config(store: :other_store) do # accepts store, url and token parameters
25
+ Magento::Product.find('sku')
26
+ end
23
27
  ```
24
28
 
25
29
  ## Models
@@ -151,6 +155,12 @@ products.size
151
155
  products.current_page
152
156
  >> 1
153
157
 
158
+ products.next_page
159
+ >> 2
160
+
161
+ products.last_page?
162
+ >> false
163
+
154
164
  products.page_size
155
165
  >> 5
156
166
 
@@ -166,6 +176,8 @@ All Methods:
166
176
  ```rb
167
177
  # Information about search criteria
168
178
  :current_page
179
+ :next_page
180
+ :last_page?
169
181
  :page_size
170
182
  :total_count
171
183
  :filter_groups
@@ -35,6 +35,22 @@ module Magento
35
35
  self.token = ENV['MAGENTO_TOKEN']
36
36
  self.store = ENV['MAGENTO_STORE'] || :all
37
37
 
38
+ def self.with_config(utl: Magento.url, token: Magento.token, store: Magento.store)
39
+ @old_url = self.url
40
+ @old_token = self.token
41
+ @old_store = self.store
42
+
43
+ self.url = utl
44
+ self.token = token
45
+ self.store = store
46
+
47
+ yield
48
+ ensure
49
+ self.url = @old_url
50
+ self.token = @old_token
51
+ self.store = @old_store
52
+ end
53
+
38
54
  def self.production?
39
55
  ENV['RACK_ENV'] == 'production' ||
40
56
  ENV['RAILS_ENV'] == 'production' ||
@@ -36,7 +36,7 @@ module Magento
36
36
  end
37
37
 
38
38
  def create(attributes)
39
- body = { entity_name => attributes }
39
+ body = { entity_key => attributes }
40
40
  hash = request.post(api_resource, body).parse
41
41
  build(hash)
42
42
  end
@@ -77,7 +77,7 @@ module Magento
77
77
  end
78
78
 
79
79
  def request
80
- @request ||= Request.new
80
+ Request.new
81
81
  end
82
82
  end
83
83
  end
@@ -1,6 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Magento
2
4
  class Order < Model
3
5
  self.primary_key = :entity_id
4
6
  self.entity_key = :entity
7
+
8
+ def save
9
+ raise NotImplementedError
10
+ end
11
+
12
+ def update(attrs)
13
+ raise "'entity_id' not found" if @entity_id.nil?
14
+
15
+ attrs[:entity_id] = @entity_id
16
+ self.class.update(attrs)
17
+ end
18
+
19
+ class << self
20
+ def update(attributes)
21
+ hash = request.put('orders/create', { entity_key => attributes }).parse
22
+ build(hash)
23
+ end
24
+ end
5
25
  end
6
- end
26
+ end
@@ -23,6 +23,17 @@ module Magento
23
23
 
24
24
  alias per page_size
25
25
 
26
+ def last_page?
27
+ current_page * page_size >= total_count
28
+ end
29
+
30
+ #
31
+ # Returns the {number} of the next page or {nil}
32
+ # when the current_page is the last page
33
+ def next_page
34
+ current_page + 1 unless last_page?
35
+ end
36
+
26
37
  class << self
27
38
  def from_magento_response(response, model:, iterable_field: 'items')
28
39
  Magento::RecordCollection.new(
@@ -1,3 +1,3 @@
1
1
  module Magento
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magento
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wallas Faria