nimbu-api 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +13 -0
  3. data/README.md +25 -17
  4. data/lib/nimbu-api/client.rb +49 -26
  5. data/lib/nimbu-api/connection.rb +29 -31
  6. data/lib/nimbu-api/endpoint.rb +43 -44
  7. data/lib/nimbu-api/endpoints/activities.rb +3 -4
  8. data/lib/nimbu-api/endpoints/authorizations.rb +16 -23
  9. data/lib/nimbu-api/endpoints/blogs/articles.rb +60 -0
  10. data/lib/nimbu-api/endpoints/blogs.rb +48 -0
  11. data/lib/nimbu-api/endpoints/channels/entries.rb +19 -20
  12. data/lib/nimbu-api/endpoints/channels.rb +11 -13
  13. data/lib/nimbu-api/endpoints/collections.rb +10 -10
  14. data/lib/nimbu-api/endpoints/coupons.rb +10 -10
  15. data/lib/nimbu-api/endpoints/customers.rb +14 -14
  16. data/lib/nimbu-api/endpoints/devices.rb +11 -11
  17. data/lib/nimbu-api/endpoints/functions.rb +3 -4
  18. data/lib/nimbu-api/endpoints/jobs.rb +3 -4
  19. data/lib/nimbu-api/endpoints/login.rb +4 -7
  20. data/lib/nimbu-api/endpoints/menus.rb +48 -0
  21. data/lib/nimbu-api/endpoints/orders.rb +6 -6
  22. data/lib/nimbu-api/endpoints/pages.rb +50 -0
  23. data/lib/nimbu-api/endpoints/products.rb +16 -16
  24. data/lib/nimbu-api/endpoints/redirects.rb +50 -0
  25. data/lib/nimbu-api/endpoints/roles.rb +10 -10
  26. data/lib/nimbu-api/endpoints/simulator.rb +3 -4
  27. data/lib/nimbu-api/endpoints/sites.rb +7 -9
  28. data/lib/nimbu-api/endpoints/themes/assets.rb +9 -10
  29. data/lib/nimbu-api/endpoints/themes/layouts.rb +7 -8
  30. data/lib/nimbu-api/endpoints/themes/snippets.rb +6 -8
  31. data/lib/nimbu-api/endpoints/themes/templates.rb +6 -8
  32. data/lib/nimbu-api/endpoints/themes.rb +14 -16
  33. data/lib/nimbu-api/endpoints/translations.rb +10 -10
  34. data/lib/nimbu-api/endpoints/uploads.rb +50 -0
  35. data/lib/nimbu-api/endpoints/users.rb +21 -0
  36. data/lib/nimbu-api/endpoints/videos.rb +6 -8
  37. data/lib/nimbu-api/endpoints/webhooks.rb +8 -8
  38. data/lib/nimbu-api/file.rb +13 -0
  39. data/lib/nimbu-api/request.rb +1 -1
  40. data/lib/nimbu-api/version.rb +3 -1
  41. data/lib/nimbu-api.rb +46 -37
  42. data/nimbu-api.gemspec +25 -16
  43. metadata +82 -18
@@ -1,31 +1,31 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Nimbu
4
5
  module Endpoints
5
6
  class Webhooks < Endpoint
6
- def list(*args)
7
+ def list(*args, &block)
7
8
  arguments(args)
8
9
 
9
10
  response = get_request("/webhooks", arguments.params)
10
11
  return response unless block_given?
11
- response.each { |el| yield el }
12
+ response.each(&block)
12
13
  end
13
- alias :all :list
14
+ alias_method :all, :list
14
15
 
15
16
  def get(*args)
16
- arguments(args, :required => [:webhook_id])
17
+ arguments(args, required: [:webhook_id])
17
18
 
18
19
  get_request("/webhooks/#{webhook_id}", arguments.params)
19
20
  end
20
- alias :find :get
21
+ alias_method :find, :get
21
22
 
22
23
  def delete(*args)
23
- arguments(args, :required => [:webhook_id])
24
+ arguments(args, required: [:webhook_id])
24
25
 
25
26
  delete_request("/webhooks/#{webhook_id}", arguments.params)
26
27
  end
27
- alias :remove :delete
28
-
28
+ alias_method :remove, :delete
29
29
  end # Webhooks
30
30
  end # Endpoints
31
31
  end # Nimbu
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module Nimbu
5
+ class File
6
+ def self.new(filename)
7
+ require "marcel"
8
+
9
+ mime_type = Marcel::MimeType.for(::File.open(filename))
10
+ Faraday::UploadIO.new(filename, mime_type)
11
+ end
12
+ end # File
13
+ end # Nimbu
@@ -61,8 +61,8 @@ module Nimbu
61
61
  request.body = extract_data_from_params(params) unless params.empty?
62
62
  end
63
63
  else
64
- request.path = path
65
64
  request.body = params
65
+ request.url(path)
66
66
  end
67
67
  end
68
68
  Response::Wrapper.new(response, self).auto_paginate
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Nimbu
2
4
  module API
3
- VERSION = "0.4.2"
5
+ VERSION = "0.5.0"
4
6
  end
5
7
  end
data/lib/nimbu-api.rb CHANGED
@@ -1,44 +1,54 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "nimbu-api/version"
2
4
 
3
- require 'openssl'
4
- require 'excon'
5
- require 'faraday'
6
- require 'multi_json'
5
+ require "openssl"
6
+ require "excon"
7
+ require "faraday"
8
+ require "multi_json"
7
9
 
8
10
  require "nimbu-api/utils/all"
9
11
  require "nimbu-api/configuration"
10
12
  require "nimbu-api/connection"
11
- require 'nimbu-api/pagination'
12
- require 'nimbu-api/response'
13
- require 'nimbu-api/request'
14
- require 'nimbu-api/authentication'
15
- require 'nimbu-api/endpoint'
16
- require 'nimbu-api/client'
17
-
18
- require 'nimbu-api/endpoints/authorizations'
19
- require 'nimbu-api/endpoints/login'
20
- require 'nimbu-api/endpoints/simulator'
21
- require 'nimbu-api/endpoints/sites'
22
- require 'nimbu-api/endpoints/themes'
23
- require 'nimbu-api/endpoints/themes/layouts'
24
- require 'nimbu-api/endpoints/themes/templates'
25
- require 'nimbu-api/endpoints/themes/snippets'
26
- require 'nimbu-api/endpoints/themes/assets'
27
- require 'nimbu-api/endpoints/activities'
28
- require 'nimbu-api/endpoints/channels'
29
- require 'nimbu-api/endpoints/channels/entries'
30
- require 'nimbu-api/endpoints/products'
31
- require 'nimbu-api/endpoints/customers'
32
- require 'nimbu-api/endpoints/collections'
33
- require 'nimbu-api/endpoints/coupons'
34
- require 'nimbu-api/endpoints/videos'
35
- require 'nimbu-api/endpoints/devices'
36
- require 'nimbu-api/endpoints/webhooks'
37
- require 'nimbu-api/endpoints/translations'
38
- require 'nimbu-api/endpoints/orders'
39
- require 'nimbu-api/endpoints/functions'
40
- require 'nimbu-api/endpoints/jobs'
41
- require 'nimbu-api/endpoints/roles'
13
+ require "nimbu-api/pagination"
14
+ require "nimbu-api/response"
15
+ require "nimbu-api/request"
16
+ require "nimbu-api/authentication"
17
+ require "nimbu-api/endpoint"
18
+ require "nimbu-api/client"
19
+ require "nimbu-api/file"
20
+
21
+ require "nimbu-api/endpoints/activities"
22
+ require "nimbu-api/endpoints/authorizations"
23
+ require "nimbu-api/endpoints/blogs"
24
+ require "nimbu-api/endpoints/blogs/articles"
25
+ require "nimbu-api/endpoints/channels"
26
+ require "nimbu-api/endpoints/channels/entries"
27
+ require "nimbu-api/endpoints/collections"
28
+ require "nimbu-api/endpoints/coupons"
29
+ require "nimbu-api/endpoints/customers"
30
+ require "nimbu-api/endpoints/devices"
31
+ require "nimbu-api/endpoints/functions"
32
+ require "nimbu-api/endpoints/jobs"
33
+ require "nimbu-api/endpoints/login"
34
+ require "nimbu-api/endpoints/menus"
35
+ require "nimbu-api/endpoints/orders"
36
+ require "nimbu-api/endpoints/pages"
37
+ require "nimbu-api/endpoints/products"
38
+ require "nimbu-api/endpoints/redirects"
39
+ require "nimbu-api/endpoints/roles"
40
+ require "nimbu-api/endpoints/simulator"
41
+ require "nimbu-api/endpoints/sites"
42
+ require "nimbu-api/endpoints/themes"
43
+ require "nimbu-api/endpoints/themes/assets"
44
+ require "nimbu-api/endpoints/themes/layouts"
45
+ require "nimbu-api/endpoints/themes/snippets"
46
+ require "nimbu-api/endpoints/themes/templates"
47
+ require "nimbu-api/endpoints/translations"
48
+ require "nimbu-api/endpoints/uploads"
49
+ require "nimbu-api/endpoints/users"
50
+ require "nimbu-api/endpoints/videos"
51
+ require "nimbu-api/endpoints/webhooks"
42
52
 
43
53
  module Nimbu
44
54
  extend Configuration
@@ -58,6 +68,5 @@ module Nimbu
58
68
  def respond_to?(method, include_private = false)
59
69
  new.respond_to?(method, include_private) || super(method, include_private)
60
70
  end
61
-
62
71
  end
63
- end # Nimbu
72
+ end # Nimbu
data/nimbu-api.gemspec CHANGED
@@ -1,31 +1,40 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("lib", __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'nimbu-api/version'
5
+ require "nimbu-api/version"
5
6
 
6
7
  Gem::Specification.new do |gem|
7
8
  gem.name = "nimbu-api"
8
9
  gem.version = Nimbu::API::VERSION
10
+ gem.platform = Gem::Platform::RUBY
9
11
  gem.authors = ["Peter Dedene"]
10
12
  gem.email = ["support@nimbu.io"]
11
- gem.summary = 'Ruby bindings for the Nimbu API'
12
- gem.description = 'Nimbu is the easiest way to build a beautiful multi-lingual online store! See http://nimbu.io for more information.'
13
+ gem.summary = "Ruby bindings for the Nimbu API"
14
+ gem.description = "Nimbu is the easiest way to build a beautiful multi-lingual online store! See http://nimbu.io for more information."
13
15
  gem.homepage = "http://www.nimbu.io"
14
16
  gem.license = "MIT"
15
17
 
16
18
  gem.files = `git ls-files`.split($/)
17
19
  gem.require_paths = ["lib"]
18
20
 
19
- gem.add_dependency 'hashie'
20
- gem.add_dependency 'faraday', "~> 0.15"
21
- gem.add_dependency 'multi_json'
22
- gem.add_dependency 'oauth2'
23
- gem.add_dependency 'excon'
21
+ gem.required_ruby_version = ">= 2.5.0"
22
+ gem.required_rubygems_version = ">= 1.3.7"
23
+
24
+ gem.add_dependency("excon")
25
+ gem.add_dependency("faraday", "~> 0.15")
26
+ gem.add_dependency("hashie")
27
+ gem.add_dependency("marcel")
28
+ gem.add_dependency("multi_json")
29
+ gem.add_dependency("oauth2")
24
30
 
25
- gem.add_development_dependency "bundler", "~> 1.3"
26
- gem.add_development_dependency "rake"
27
- gem.add_development_dependency "awesome_print"
28
- gem.add_development_dependency 'pry'
29
- gem.add_development_dependency 'pry-remote'
30
- gem.add_development_dependency 'pry-stack_explorer'
31
+ gem.add_development_dependency("awesome_print")
32
+ gem.add_development_dependency("bundler", "> 2.2.33")
33
+ gem.add_development_dependency("pry")
34
+ gem.add_development_dependency("pry-remote")
35
+ gem.add_development_dependency("pry-stack_explorer")
36
+ gem.add_development_dependency("rake")
37
+ gem.add_development_dependency("rubocop")
38
+ gem.add_development_dependency("rubocop-performance")
39
+ gem.add_development_dependency("rubocop-shopify")
31
40
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nimbu-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Dedene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-30 00:00:00.000000000 Z
11
+ date: 2022-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: hashie
14
+ name: excon
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.15'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: marcel
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: multi_json
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -67,13 +95,13 @@ dependencies:
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: excon
98
+ name: awesome_print
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - ">="
74
102
  - !ruby/object:Gem::Version
75
103
  version: '0'
76
- type: :runtime
104
+ type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
@@ -84,18 +112,18 @@ dependencies:
84
112
  name: bundler
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
- - - "~>"
115
+ - - ">"
88
116
  - !ruby/object:Gem::Version
89
- version: '1.3'
117
+ version: 2.2.33
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
- - - "~>"
122
+ - - ">"
95
123
  - !ruby/object:Gem::Version
96
- version: '1.3'
124
+ version: 2.2.33
97
125
  - !ruby/object:Gem::Dependency
98
- name: rake
126
+ name: pry
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - ">="
@@ -109,7 +137,7 @@ dependencies:
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
- name: awesome_print
140
+ name: pry-remote
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - ">="
@@ -123,7 +151,7 @@ dependencies:
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: pry
154
+ name: pry-stack_explorer
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - ">="
@@ -137,7 +165,7 @@ dependencies:
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
- name: pry-remote
168
+ name: rake
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
171
  - - ">="
@@ -151,7 +179,35 @@ dependencies:
151
179
  - !ruby/object:Gem::Version
152
180
  version: '0'
153
181
  - !ruby/object:Gem::Dependency
154
- name: pry-stack_explorer
182
+ name: rubocop
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop-performance
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubocop-shopify
155
211
  requirement: !ruby/object:Gem::Requirement
156
212
  requirements:
157
213
  - - ">="
@@ -173,6 +229,7 @@ extensions: []
173
229
  extra_rdoc_files: []
174
230
  files:
175
231
  - ".gitignore"
232
+ - ".rubocop.yml"
176
233
  - Gemfile
177
234
  - LICENSE.txt
178
235
  - README.md
@@ -186,6 +243,8 @@ files:
186
243
  - lib/nimbu-api/endpoint.rb
187
244
  - lib/nimbu-api/endpoints/activities.rb
188
245
  - lib/nimbu-api/endpoints/authorizations.rb
246
+ - lib/nimbu-api/endpoints/blogs.rb
247
+ - lib/nimbu-api/endpoints/blogs/articles.rb
189
248
  - lib/nimbu-api/endpoints/channels.rb
190
249
  - lib/nimbu-api/endpoints/channels/entries.rb
191
250
  - lib/nimbu-api/endpoints/collections.rb
@@ -195,8 +254,11 @@ files:
195
254
  - lib/nimbu-api/endpoints/functions.rb
196
255
  - lib/nimbu-api/endpoints/jobs.rb
197
256
  - lib/nimbu-api/endpoints/login.rb
257
+ - lib/nimbu-api/endpoints/menus.rb
198
258
  - lib/nimbu-api/endpoints/orders.rb
259
+ - lib/nimbu-api/endpoints/pages.rb
199
260
  - lib/nimbu-api/endpoints/products.rb
261
+ - lib/nimbu-api/endpoints/redirects.rb
200
262
  - lib/nimbu-api/endpoints/roles.rb
201
263
  - lib/nimbu-api/endpoints/simulator.rb
202
264
  - lib/nimbu-api/endpoints/sites.rb
@@ -206,6 +268,8 @@ files:
206
268
  - lib/nimbu-api/endpoints/themes/snippets.rb
207
269
  - lib/nimbu-api/endpoints/themes/templates.rb
208
270
  - lib/nimbu-api/endpoints/translations.rb
271
+ - lib/nimbu-api/endpoints/uploads.rb
272
+ - lib/nimbu-api/endpoints/users.rb
209
273
  - lib/nimbu-api/endpoints/videos.rb
210
274
  - lib/nimbu-api/endpoints/webhooks.rb
211
275
  - lib/nimbu-api/errors.rb
@@ -225,6 +289,7 @@ files:
225
289
  - lib/nimbu-api/errors/unknown_value.rb
226
290
  - lib/nimbu-api/errors/unprocessable_entity.rb
227
291
  - lib/nimbu-api/errors/validations.rb
292
+ - lib/nimbu-api/file.rb
228
293
  - lib/nimbu-api/pagination.rb
229
294
  - lib/nimbu-api/pagination/page_iterator.rb
230
295
  - lib/nimbu-api/pagination/page_links.rb
@@ -274,15 +339,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
339
  requirements:
275
340
  - - ">="
276
341
  - !ruby/object:Gem::Version
277
- version: '0'
342
+ version: 2.5.0
278
343
  required_rubygems_version: !ruby/object:Gem::Requirement
279
344
  requirements:
280
345
  - - ">="
281
346
  - !ruby/object:Gem::Version
282
- version: '0'
347
+ version: 1.3.7
283
348
  requirements: []
284
- rubyforge_project:
285
- rubygems_version: 2.7.6
349
+ rubygems_version: 3.0.3.1
286
350
  signing_key:
287
351
  specification_version: 4
288
352
  summary: Ruby bindings for the Nimbu API