lucid_shopify-resource 0.2.2 → 0.4.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/lucid_shopify/resource.rb +6 -6
- data/lib/lucid_shopify/resource/base.rb +46 -0
- data/lib/lucid_shopify/resource/create.rb +16 -3
- data/lib/lucid_shopify/resource/delete.rb +16 -3
- data/lib/lucid_shopify/resource/read.rb +33 -53
- data/lib/lucid_shopify/resource/update.rb +16 -3
- data/lib/lucid_shopify/resource/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4b65bc3519016b53e1811d4e93a8833d84f6173fbdaadefd8bd60f2e3e48783
|
4
|
+
data.tar.gz: 8790c0ffcc53b524c1fa50efb53b8476be148fb146d149e93945ecbc87f91a5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c6dd3baa65eada85753f56f28904e722a6faf821f8cea44eaf9b50cc435f88191b88477c33288d11eab2d44c493cf00d79bbe64ebe89f247da67eabafb5c58f
|
7
|
+
data.tar.gz: 3d8bb9f9843b44491c77dde4bb1117388c860cc2351cdff34022a46fc7e969d797f6ca236d574015392dedf05aa7fed2fe4ba0b828d0a606b80cf553ab1ed617
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module LucidShopify
|
4
|
-
module Resource
|
4
|
+
module Resource
|
5
|
+
autoload :Create, 'lucid_shopify/resource/create'
|
6
|
+
autoload :Delete, 'lucid_shopify/resource/delete'
|
7
|
+
autoload :Read, 'lucid_shopify/resource/read'
|
8
|
+
autoload :Update, 'lucid_shopify/resource/update'
|
9
|
+
end
|
5
10
|
end
|
6
|
-
|
7
|
-
require 'lucid_shopify/resource/create'
|
8
|
-
require 'lucid_shopify/resource/delete'
|
9
|
-
require 'lucid_shopify/resource/read'
|
10
|
-
require 'lucid_shopify/resource/update'
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'lucid_shopify/container'
|
4
|
+
|
5
|
+
module LucidShopify
|
6
|
+
module Resource
|
7
|
+
module Base
|
8
|
+
module ClassMethods
|
9
|
+
#
|
10
|
+
# Set the remote API resource name for the subclass.
|
11
|
+
#
|
12
|
+
# @param resource_name [String, #to_s]
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# resource :orders
|
16
|
+
#
|
17
|
+
def resource(resource_name)
|
18
|
+
define_method(:resource) { resource_name.to_s }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.included(base)
|
23
|
+
base.extend(ClassMethods)
|
24
|
+
end
|
25
|
+
|
26
|
+
#
|
27
|
+
# @param client [Client]
|
28
|
+
#
|
29
|
+
def initialize(client: Container[:client])
|
30
|
+
@client = client
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Client]
|
34
|
+
attr_reader :client
|
35
|
+
|
36
|
+
#
|
37
|
+
# @abstract Use {ClassMethods#resource} to implement (required)
|
38
|
+
#
|
39
|
+
# @return [String]
|
40
|
+
#
|
41
|
+
def resource
|
42
|
+
raise NotImplementedError
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,12 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'lucid_shopify/resource/base'
|
4
|
+
|
3
5
|
module LucidShopify
|
4
6
|
module Resource
|
5
7
|
#
|
6
|
-
# @
|
8
|
+
# @example
|
9
|
+
# class OrderRepository
|
10
|
+
# include LucidShopify::Resource::Create
|
11
|
+
#
|
12
|
+
# resource :orders
|
7
13
|
#
|
8
|
-
|
9
|
-
|
14
|
+
# # ...
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
module Create
|
18
|
+
def self.included(base)
|
19
|
+
base.include(Base)
|
20
|
+
|
21
|
+
raise NotImplementedError # TODO
|
22
|
+
end
|
10
23
|
end
|
11
24
|
end
|
12
25
|
end
|
@@ -1,12 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'lucid_shopify/resource/base'
|
4
|
+
|
3
5
|
module LucidShopify
|
4
6
|
module Resource
|
5
7
|
#
|
6
|
-
# @
|
8
|
+
# @example
|
9
|
+
# class OrderRepository
|
10
|
+
# include LucidShopify::Resource::Delete
|
11
|
+
#
|
12
|
+
# resource :orders
|
7
13
|
#
|
8
|
-
|
9
|
-
|
14
|
+
# # ...
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
module Delete
|
18
|
+
def self.included(base)
|
19
|
+
base.include(Base)
|
20
|
+
|
21
|
+
raise NotImplementedError # TODO
|
22
|
+
end
|
10
23
|
end
|
11
24
|
end
|
12
25
|
end
|
@@ -1,67 +1,46 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'lucid_shopify/resource/base'
|
4
|
+
|
3
5
|
module LucidShopify
|
4
6
|
module Resource
|
5
|
-
#
|
6
|
-
# @abstract
|
7
7
|
#
|
8
8
|
# @example
|
9
|
-
# class
|
9
|
+
# class OrderRepository
|
10
|
+
# include LucidShopify::Resource::Read
|
11
|
+
#
|
10
12
|
# resource :orders
|
11
13
|
#
|
12
|
-
# default_params fields: %w
|
14
|
+
# default_params fields: %w[id tags]
|
15
|
+
#
|
16
|
+
# # ...
|
13
17
|
# end
|
14
18
|
#
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
@
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
#
|
30
|
-
# Set the remote API resource name for the subclass.
|
31
|
-
#
|
32
|
-
# @param resource_name [String, #to_s]
|
33
|
-
#
|
34
|
-
# @example
|
35
|
-
# resource :orders
|
36
|
-
#
|
37
|
-
def self.resource(resource_name)
|
38
|
-
define_method(:resource) { resource_name.to_s }
|
19
|
+
module Read
|
20
|
+
module ClassMethods
|
21
|
+
#
|
22
|
+
# Set the default query params. Note that 'fields' may be passed as an
|
23
|
+
# array of strings.
|
24
|
+
#
|
25
|
+
# @param params [Hash]
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# default_params fields: %w(id tags)
|
29
|
+
#
|
30
|
+
def default_params(params)
|
31
|
+
define_method(:default_params) { params }
|
32
|
+
end
|
39
33
|
end
|
40
34
|
|
41
|
-
|
42
|
-
# @abstract
|
43
|
-
#
|
44
|
-
# @return [String]
|
45
|
-
#
|
46
|
-
def resource
|
47
|
-
raise NotImplementedError
|
48
|
-
end
|
35
|
+
include Enumerable
|
49
36
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
#
|
54
|
-
# @param params [Hash]
|
55
|
-
#
|
56
|
-
# @example
|
57
|
-
# default_params fields: %w(id tags)
|
58
|
-
#
|
59
|
-
def self.default_params(params)
|
60
|
-
define_method(:default_params) { params }
|
37
|
+
def self.included(base)
|
38
|
+
base.extend(ClassMethods)
|
39
|
+
base.include(Base)
|
61
40
|
end
|
62
41
|
|
63
42
|
#
|
64
|
-
# @abstract
|
43
|
+
# @abstract Use {ClassMethods#default_params} to implement (optional)
|
65
44
|
#
|
66
45
|
# @return [Hash]
|
67
46
|
#
|
@@ -81,7 +60,7 @@ module LucidShopify
|
|
81
60
|
end
|
82
61
|
|
83
62
|
#
|
84
|
-
# @param credentials [
|
63
|
+
# @param credentials [RequestCredentials]
|
85
64
|
# @param id [Integer]
|
86
65
|
# @param params [Hash]
|
87
66
|
#
|
@@ -100,7 +79,7 @@ module LucidShopify
|
|
100
79
|
#
|
101
80
|
# Throttling is always enabled.
|
102
81
|
#
|
103
|
-
# @param credentials [
|
82
|
+
# @param credentials [RequestCredentials]
|
104
83
|
# @param params [Hash]
|
105
84
|
#
|
106
85
|
# @yield [Hash]
|
@@ -114,10 +93,12 @@ module LucidShopify
|
|
114
93
|
|
115
94
|
assert_fields_id!(params = finalized_params(params))
|
116
95
|
|
96
|
+
throttled_client = client.throttled
|
97
|
+
|
117
98
|
since_id = 1
|
118
99
|
|
119
100
|
loop do
|
120
|
-
results =
|
101
|
+
results = throttled_client.get(credentials, resource, params.merge(since_id: since_id))
|
121
102
|
results.each do |result|
|
122
103
|
yield result
|
123
104
|
end
|
@@ -139,12 +120,11 @@ module LucidShopify
|
|
139
120
|
end
|
140
121
|
|
141
122
|
#
|
142
|
-
# @param client [LucidShopify::AuthorizedClient]
|
143
123
|
# @param params [Hash]
|
144
124
|
#
|
145
125
|
# @return [Integer]
|
146
126
|
#
|
147
|
-
def count(
|
127
|
+
def count(params = {})
|
148
128
|
params = finalize_params(params)
|
149
129
|
|
150
130
|
client.get("#{resource}/count", params)['count']
|
@@ -1,12 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'lucid_shopify/resource/base'
|
4
|
+
|
3
5
|
module LucidShopify
|
4
6
|
module Resource
|
5
7
|
#
|
6
|
-
# @
|
8
|
+
# @example
|
9
|
+
# class OrderRepository
|
10
|
+
# include LucidShopify::Resource::Update
|
11
|
+
#
|
12
|
+
# resource :orders
|
7
13
|
#
|
8
|
-
|
9
|
-
|
14
|
+
# # ...
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
module Update
|
18
|
+
def self.included(base)
|
19
|
+
base.include(Base)
|
20
|
+
|
21
|
+
raise NotImplementedError # TODO
|
22
|
+
end
|
10
23
|
end
|
11
24
|
end
|
12
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucid_shopify-resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelsey Judson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
47
|
+
version: '0.9'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0.
|
54
|
+
version: '0.9'
|
55
55
|
description:
|
56
56
|
email: kelsey@lucid.nz
|
57
57
|
executables: []
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- README.md
|
62
62
|
- lib/lucid_shopify-resource.rb
|
63
63
|
- lib/lucid_shopify/resource.rb
|
64
|
+
- lib/lucid_shopify/resource/base.rb
|
64
65
|
- lib/lucid_shopify/resource/create.rb
|
65
66
|
- lib/lucid_shopify/resource/delete.rb
|
66
67
|
- lib/lucid_shopify/resource/read.rb
|