breacan 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/breacan.gemspec +2 -1
- data/lib/breacan/client.rb +35 -0
- data/lib/breacan/client/channels.rb +2 -2
- data/lib/breacan/client/groups.rb +3 -2
- data/lib/breacan/configurable.rb +2 -0
- data/lib/breacan/version.rb +1 -1
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 114f3618a6e60278a633ce4d583fff573e4064abf8fabdf1179a8662bc8e986f
|
4
|
+
data.tar.gz: b56af77f0a6089ba2803667d36c895f61174acca76fa6bafd3d2932c1f8c1841
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7b14d22955ba9e12ed37eae9c21555df800201c79229d4a2a7b6630ff89a5f8855ba63bf0c8fc8f8fd774c22bf159dad5f282fd5f8ec2e9ef7f3c15135a72bc
|
7
|
+
data.tar.gz: f0ed5cad10a8c7e128d9c5424cff5665ec12aea67ce7067c66e21ee4fcd0d477ddccb91ca34fb564522cf56748db978cac9dc637c2d4cc86f4d05b3f0ce60ecc
|
data/breacan.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "sawyer", "~> 0.6"
|
22
|
-
|
22
|
+
spec.add_dependency "activesupport", "~>4.2"
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.7"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
|
25
26
|
end
|
data/lib/breacan/client.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'sawyer'
|
2
|
+
require 'active_support'
|
3
|
+
require 'active_support/core_ext/hash'
|
2
4
|
require 'breacan/configurable'
|
3
5
|
require 'breacan/authentication'
|
4
6
|
require 'breacan/client/api'
|
@@ -48,9 +50,42 @@ module Breacan
|
|
48
50
|
end
|
49
51
|
|
50
52
|
def get(url, options = {})
|
53
|
+
return get_with_auto_paginate(url, options) if auto_paginate
|
51
54
|
request :get, url, parse_query_and_convenience_headers(options)
|
52
55
|
end
|
53
56
|
|
57
|
+
def get_with_auto_paginate(url, options = {})
|
58
|
+
res = nil
|
59
|
+
if url.end_with?('.list')
|
60
|
+
nextc = nil
|
61
|
+
loop do
|
62
|
+
r = request :get, url, parse_query_and_convenience_headers(options.merge({cursor: nextc}))
|
63
|
+
if r.is_a?(Sawyer::Resource)
|
64
|
+
res ||= {}
|
65
|
+
res.to_hash.deep_merge!(r.to_hash)
|
66
|
+
elsif r.is_a?(Array)
|
67
|
+
res ||= []
|
68
|
+
res.concat(r)
|
69
|
+
else
|
70
|
+
raise "unknown response type"
|
71
|
+
end
|
72
|
+
|
73
|
+
if r.respond_to?(:response_metadata)
|
74
|
+
if r.response_metadata.next_cursor == ""
|
75
|
+
res = Sawyer::Resource.new(Sawyer::Agent.new(api_endpoint), res)
|
76
|
+
break
|
77
|
+
end
|
78
|
+
nextc = r.response_metadata.next_cursor
|
79
|
+
else
|
80
|
+
break
|
81
|
+
end
|
82
|
+
end
|
83
|
+
else
|
84
|
+
res = request :get, url, parse_query_and_convenience_headers(options)
|
85
|
+
end
|
86
|
+
res
|
87
|
+
end
|
88
|
+
|
54
89
|
def post(url, options = {})
|
55
90
|
request :post, url, options
|
56
91
|
end
|
data/lib/breacan/configurable.rb
CHANGED
@@ -13,6 +13,7 @@ module Breacan
|
|
13
13
|
proxy
|
14
14
|
middleware
|
15
15
|
serializer
|
16
|
+
auto_paginate
|
16
17
|
)
|
17
18
|
|
18
19
|
attr_accessor(*OPTIONS_KEYS)
|
@@ -47,6 +48,7 @@ module Breacan
|
|
47
48
|
@proxy = ENV['BREACAN_PROXY']
|
48
49
|
@middleware = default_builder
|
49
50
|
@serializer = default_serializer
|
51
|
+
@auto_paginate = !!ENV['BREACAN_AUTO_PAGINATE']
|
50
52
|
|
51
53
|
self
|
52
54
|
end
|
data/lib/breacan/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: breacan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- linyows
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sawyer
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.2'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,8 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
121
|
- !ruby/object:Gem::Version
|
108
122
|
version: '0'
|
109
123
|
requirements: []
|
110
|
-
|
111
|
-
rubygems_version: 2.6.14
|
124
|
+
rubygems_version: 3.0.3
|
112
125
|
signing_key:
|
113
126
|
specification_version: 4
|
114
127
|
summary: Simple Ruby wrapper for Slack API.
|