boxr 1.22.0 → 1.23.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.
@@ -1,33 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Boxr
2
4
  class Client
3
-
4
5
  def create_web_link(url, parent, name: nil, description: nil)
5
-
6
6
  parent_id = ensure_id(parent)
7
7
  web_link_url = verify_url(url)
8
- uri = "#{WEB_LINKS_URI}"
8
+ uri = WEB_LINKS_URI.to_s
9
9
 
10
10
  attributes = {}
11
11
  attributes[:url] = web_link_url
12
- attributes[:parent] = {:id => parent_id}
12
+ attributes[:parent] = { id: parent_id }
13
13
  attributes[:name] = name unless name.nil?
14
14
  attributes[:description] = description unless description.nil?
15
15
 
16
- created_link, response = post(uri, attributes)
16
+ created_link, = post(uri, attributes)
17
17
  created_link
18
18
  end
19
19
 
20
20
  def get_web_link(web_link)
21
-
22
21
  web_link_id = ensure_id(web_link)
23
22
  uri = "#{WEB_LINKS_URI}/#{web_link_id}"
24
23
 
25
- web_link, response = get(uri)
24
+ web_link, = get(uri)
26
25
  web_link
27
26
  end
28
27
 
29
28
  def update_web_link(web_link, url: nil, parent: nil, name: nil, description: nil)
30
-
31
29
  web_link_id = ensure_id(web_link)
32
30
  parent_id = ensure_id(parent)
33
31
  uri = "#{WEB_LINKS_URI}/#{web_link_id}"
@@ -36,18 +34,17 @@ module Boxr
36
34
  attributes[:url] = url unless url.nil?
37
35
  attributes[:name] = name unless name.nil?
38
36
  attributes[:description] = description unless description.nil?
39
- attributes[:parent] = {id: parent_id} unless parent_id.nil?
37
+ attributes[:parent] = { id: parent_id } unless parent_id.nil?
40
38
 
41
- updated_web_link, response = put(uri, attributes)
39
+ updated_web_link, = put(uri, attributes)
42
40
  updated_web_link
43
41
  end
44
42
 
45
43
  def delete_web_link(web_link)
46
-
47
44
  web_link_id = ensure_id(web_link)
48
45
  uri = "#{WEB_LINKS_URI}/#{web_link_id}"
49
46
 
50
- result, response = delete(uri)
47
+ result, = delete(uri)
51
48
  result
52
49
  end
53
50
 
@@ -56,15 +53,15 @@ module Boxr
56
53
  uri = "#{WEB_LINKS_URI}/#{web_link_id}/trash"
57
54
  query = build_fields_query(fields, WEB_LINK_FIELDS_QUERY)
58
55
 
59
- web_link, response = get(uri, query: query)
56
+ web_link, = get(uri, query: query)
60
57
  web_link
61
58
  end
62
- alias :get_trashed_web_link :trashed_web_link
59
+ alias get_trashed_web_link trashed_web_link
63
60
 
64
61
  def delete_trashed_web_link(web_link)
65
62
  web_link_id = ensure_id(web_link)
66
63
  uri = "#{WEB_LINKS_URI}/#{web_link_id}/trash"
67
- result, response = delete(uri)
64
+ result, = delete(uri)
68
65
  result
69
66
  end
70
67
 
@@ -79,9 +76,9 @@ module Boxr
79
76
  private
80
77
 
81
78
  def verify_url(item)
82
- return item if item.class == String and (item.include? 'https://' or item.include? 'http://')
79
+ return item if item.is_a?(String) && (item.include?('https://') || item.include?('http://'))
80
+
83
81
  raise BoxrError.new(boxr_message: "Invalid url. Must include 'http://' or 'https://'")
84
82
  end
85
-
86
83
  end
87
84
  end
data/lib/boxr/webhooks.rb CHANGED
@@ -3,36 +3,37 @@
3
3
  module Boxr
4
4
  class Client
5
5
  def create_webhook(target_id, target_type, triggers, address)
6
- attributes = { target: { id: target_id, type: target_type }, triggers: triggers, address: address }
7
- new_webhook, response = post(WEBHOOKS_URI, attributes)
6
+ attributes = { target: { id: target_id, type: target_type }, triggers: triggers,
7
+ address: address }
8
+ new_webhook, = post(WEBHOOKS_URI, attributes)
8
9
  new_webhook
9
10
  end
10
11
 
11
12
  def get_webhooks(marker: nil, limit: nil)
12
13
  query_params = { marker: marker, limit: limit }.compact
13
- webhooks, response = get(WEBHOOKS_URI, query: query_params)
14
+ webhooks, = get(WEBHOOKS_URI, query: query_params)
14
15
  webhooks
15
16
  end
16
17
 
17
18
  def get_webhook(webhook)
18
19
  webhook_id = ensure_id(webhook)
19
20
  uri = "#{WEBHOOKS_URI}/#{webhook_id}"
20
- webhook, response = get(uri)
21
+ webhook, = get(uri)
21
22
  webhook
22
23
  end
23
24
 
24
25
  def update_webhook(webhook, attributes = {})
25
26
  webhook_id = ensure_id(webhook)
26
27
  uri = "#{WEBHOOKS_URI}/#{webhook_id}"
27
- updated_webhook, response = put(uri, attributes)
28
+ updated_webhook, = put(uri, attributes)
28
29
  updated_webhook
29
30
  end
30
31
 
31
32
  def delete_webhook(webhook)
32
33
  webhook_id = ensure_id(webhook)
33
34
  uri = "#{WEBHOOKS_URI}/#{webhook_id}"
34
- result, response = delete(uri)
35
+ result, = delete(uri)
35
36
  result
36
37
  end
37
38
  end
38
- end
39
+ end
data/lib/boxr.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'httpclient'
3
5
  require 'hashie'
@@ -28,6 +30,7 @@ require 'boxr/webhooks'
28
30
  require 'boxr/webhook_validator'
29
31
  require 'boxr/zip_downloads'
30
32
 
33
+ # Simple wrapper around Array
31
34
  class BoxrCollection < Array
32
35
  def files
33
36
  collection_for_type('file')
@@ -49,33 +52,32 @@ class BoxrCollection < Array
49
52
  end
50
53
  end
51
54
 
55
+ # Simple wrapper around Hashie::Mash
52
56
  class BoxrMash < Hashie::Mash
53
-
54
- self.disable_warnings
57
+ disable_warnings
55
58
 
56
59
  def entries
57
- self["entries"]
60
+ self['entries']
58
61
  end
59
62
 
60
63
  def size
61
- self["size"]
64
+ self['size']
62
65
  end
63
66
  end
64
67
 
65
68
  module Boxr
66
- #The root folder in Box is always identified by 0
67
- ROOT = 0
69
+ ROOT = 0 # The root folder in Box is always identified by 0
68
70
 
69
- #HTTPClient is high-performance, thread-safe, and supports persistent HTTPS connections
70
- #http://bibwild.wordpress.com/2012/04/30/ruby-http-performance-shootout-redux/
71
+ # HTTPClient is high-performance, thread-safe, and supports persistent HTTPS connections
72
+ # http://bibwild.wordpress.com/2012/04/30/ruby-http-performance-shootout-redux/
71
73
  BOX_CLIENT = HTTPClient.new
72
74
  BOX_CLIENT.cookie_manager = nil
73
- BOX_CLIENT.send_timeout = 3600 #one hour; needed for lengthy uploads
75
+ BOX_CLIENT.send_timeout = 3600 # one hour; needed for lengthy uploads
74
76
  BOX_CLIENT.agent_name = "Boxr/#{Boxr::VERSION}"
75
77
  BOX_CLIENT.transparent_gzip_decompression = true
76
- #BOX_CLIENT.ssl_config.add_trust_ca("/Users/cburnette/code/ssh-keys/dev_root_ca.pem")
78
+ # BOX_CLIENT.ssl_config.add_trust_ca("/Users/cburnette/code/ssh-keys/dev_root_ca.pem")
77
79
 
78
- def self.turn_on_debugging(device=STDOUT)
80
+ def self.turn_on_debugging(device = $stdout)
79
81
  BOX_CLIENT.debug_dev = device
80
82
  BOX_CLIENT.transparent_gzip_decompression = false
81
83
  nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.22.0
4
+ version: 1.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Burnette
@@ -9,22 +9,64 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-12-06 00:00:00.000000000 Z
12
+ date: 2025-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: awesome_print
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.8'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.8'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: bundler
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '2.4'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '2.4'
42
+ - !ruby/object:Gem::Dependency
43
+ name: dotenv
16
44
  requirement: !ruby/object:Gem::Requirement
17
45
  requirements:
18
46
  - - "~>"
19
47
  - !ruby/object:Gem::Version
20
- version: '2.3'
48
+ version: '2.8'
21
49
  type: :development
22
50
  prerelease: false
23
51
  version_requirements: !ruby/object:Gem::Requirement
24
52
  requirements:
25
53
  - - "~>"
26
54
  - !ruby/object:Gem::Version
27
- version: '2.3'
55
+ version: '2.8'
56
+ - !ruby/object:Gem::Dependency
57
+ name: parallel
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.0'
28
70
  - !ruby/object:Gem::Dependency
29
71
  name: rake
30
72
  requirement: !ruby/object:Gem::Requirement
@@ -45,100 +87,114 @@ dependencies:
45
87
  requirements:
46
88
  - - "~>"
47
89
  - !ruby/object:Gem::Version
48
- version: '3.1'
90
+ version: 3.13.1
49
91
  type: :development
50
92
  prerelease: false
51
93
  version_requirements: !ruby/object:Gem::Requirement
52
94
  requirements:
53
95
  - - "~>"
54
96
  - !ruby/object:Gem::Version
55
- version: '3.1'
97
+ version: 3.13.1
56
98
  - !ruby/object:Gem::Dependency
57
- name: simplecov
99
+ name: rubocop
58
100
  requirement: !ruby/object:Gem::Requirement
59
101
  requirements:
60
102
  - - "~>"
61
103
  - !ruby/object:Gem::Version
62
- version: '0.9'
104
+ version: '1.0'
63
105
  type: :development
64
106
  prerelease: false
65
107
  version_requirements: !ruby/object:Gem::Requirement
66
108
  requirements:
67
109
  - - "~>"
68
110
  - !ruby/object:Gem::Version
69
- version: '0.9'
111
+ version: '1.0'
70
112
  - !ruby/object:Gem::Dependency
71
- name: dotenv
113
+ name: rubocop-rake
72
114
  requirement: !ruby/object:Gem::Requirement
73
115
  requirements:
74
116
  - - "~>"
75
117
  - !ruby/object:Gem::Version
76
- version: '2.8'
118
+ version: 0.7.1
77
119
  type: :development
78
120
  prerelease: false
79
121
  version_requirements: !ruby/object:Gem::Requirement
80
122
  requirements:
81
123
  - - "~>"
82
124
  - !ruby/object:Gem::Version
83
- version: '2.8'
125
+ version: 0.7.1
84
126
  - !ruby/object:Gem::Dependency
85
- name: awesome_print
127
+ name: rubocop-rspec
86
128
  requirement: !ruby/object:Gem::Requirement
87
129
  requirements:
88
130
  - - "~>"
89
131
  - !ruby/object:Gem::Version
90
- version: '1.8'
132
+ version: 3.7.0
91
133
  type: :development
92
134
  prerelease: false
93
135
  version_requirements: !ruby/object:Gem::Requirement
94
136
  requirements:
95
137
  - - "~>"
96
138
  - !ruby/object:Gem::Version
97
- version: '1.8'
139
+ version: 3.7.0
98
140
  - !ruby/object:Gem::Dependency
99
- name: lru_redux
141
+ name: rubyzip
100
142
  requirement: !ruby/object:Gem::Requirement
101
143
  requirements:
102
144
  - - "~>"
103
145
  - !ruby/object:Gem::Version
104
- version: '1.1'
146
+ version: '2.3'
105
147
  type: :development
106
148
  prerelease: false
107
149
  version_requirements: !ruby/object:Gem::Requirement
108
150
  requirements:
109
151
  - - "~>"
110
152
  - !ruby/object:Gem::Version
111
- version: '1.1'
153
+ version: '2.3'
112
154
  - !ruby/object:Gem::Dependency
113
- name: parallel
155
+ name: simplecov
114
156
  requirement: !ruby/object:Gem::Requirement
115
157
  requirements:
116
158
  - - "~>"
117
159
  - !ruby/object:Gem::Version
118
- version: '1.0'
160
+ version: '0.22'
119
161
  type: :development
120
162
  prerelease: false
121
163
  version_requirements: !ruby/object:Gem::Requirement
122
164
  requirements:
123
165
  - - "~>"
124
166
  - !ruby/object:Gem::Version
125
- version: '1.0'
167
+ version: '0.22'
126
168
  - !ruby/object:Gem::Dependency
127
- name: rubyzip
169
+ name: sin_lru_redux
128
170
  requirement: !ruby/object:Gem::Requirement
129
171
  requirements:
130
172
  - - "~>"
131
173
  - !ruby/object:Gem::Version
132
- version: '2.3'
174
+ version: '2.5'
133
175
  type: :development
134
176
  prerelease: false
135
177
  version_requirements: !ruby/object:Gem::Requirement
136
178
  requirements:
137
179
  - - "~>"
138
180
  - !ruby/object:Gem::Version
139
- version: '2.3'
181
+ version: '2.5'
140
182
  - !ruby/object:Gem::Dependency
141
- name: httpclient
183
+ name: webmock
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '3.19'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '3.19'
196
+ - !ruby/object:Gem::Dependency
197
+ name: addressable
142
198
  requirement: !ruby/object:Gem::Requirement
143
199
  requirements:
144
200
  - - "~>"
@@ -172,7 +228,7 @@ dependencies:
172
228
  - !ruby/object:Gem::Version
173
229
  version: '6'
174
230
  - !ruby/object:Gem::Dependency
175
- name: addressable
231
+ name: httpclient
176
232
  requirement: !ruby/object:Gem::Requirement
177
233
  requirements:
178
234
  - - "~>"
@@ -217,8 +273,10 @@ files:
217
273
  - ".env.example"
218
274
  - ".github/ISSUE_TEMPLATE/bug_report.md"
219
275
  - ".github/ISSUE_TEMPLATE/feature_request.md"
276
+ - ".github/workflows/ruby-tests.yml"
220
277
  - ".gitignore"
221
278
  - ".rspec"
279
+ - ".rubocop.yml"
222
280
  - Gemfile
223
281
  - LICENSE.txt
224
282
  - README.md
@@ -268,14 +326,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
326
  requirements:
269
327
  - - ">="
270
328
  - !ruby/object:Gem::Version
271
- version: '2.0'
329
+ version: '2.7'
272
330
  required_rubygems_version: !ruby/object:Gem::Requirement
273
331
  requirements:
274
332
  - - ">="
275
333
  - !ruby/object:Gem::Version
276
334
  version: '0'
277
335
  requirements: []
278
- rubygems_version: 3.5.11
336
+ rubygems_version: 3.1.6
279
337
  signing_key:
280
338
  specification_version: 4
281
339
  summary: A Ruby client library for the Box V2 Content API.