haveapi-client 0.13.3 → 0.15.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/haveapi-client.gemspec +3 -3
- data/lib/haveapi/cli/output_formatter.rb +9 -9
- data/lib/haveapi/client/action.rb +4 -4
- data/lib/haveapi/client/client.rb +2 -2
- data/lib/haveapi/client/resource.rb +26 -12
- data/lib/haveapi/client/response.rb +2 -2
- data/lib/haveapi/client/version.rb +1 -1
- data/shell.nix +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ab49346d0209df996a1832992ad1f11bf7bb2f7de6f1f7cd49fb92e4bbc62c0
|
4
|
+
data.tar.gz: a49dc688a464d90e4188d93abcda7d27f252f0c4d44ce7769fb773b68b08e11b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b39a2abebdc41d1480c2cba71ff4440ac320532c1d22885d92aba8d383f3e9e4d2a055114821c76322f90d1c0d135c5233b80f95a3ac366483a8ee6fa6577756
|
7
|
+
data.tar.gz: 768c5ec61c25e4dcfbc99f79f0a788d2237789e8316065fecc766fe60b832852609954ee1bf2c21256aa80116f901aef55314825e4fb42df23c69cbf84dab7d0
|
data/haveapi-client.gemspec
CHANGED
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'activesupport', '>= 4.0'
|
25
25
|
spec.add_runtime_dependency 'require_all', '~> 2.0.0'
|
26
|
-
spec.add_runtime_dependency 'rest-client', '~> 2.0
|
26
|
+
spec.add_runtime_dependency 'rest-client', '~> 2.1.0'
|
27
27
|
spec.add_runtime_dependency 'json'
|
28
|
-
spec.add_runtime_dependency 'highline', '~>
|
29
|
-
spec.add_runtime_dependency 'ruby-progressbar', '~> 1.
|
28
|
+
spec.add_runtime_dependency 'highline', '~> 2.0.3'
|
29
|
+
spec.add_runtime_dependency 'ruby-progressbar', '~> 1.11.0'
|
30
30
|
end
|
@@ -5,8 +5,8 @@ module HaveAPI::CLI
|
|
5
5
|
f.format
|
6
6
|
end
|
7
7
|
|
8
|
-
def self.print(*args)
|
9
|
-
f = new(*args)
|
8
|
+
def self.print(*args, **kwargs)
|
9
|
+
f = new(*args, **kwargs)
|
10
10
|
f.print
|
11
11
|
end
|
12
12
|
|
@@ -84,7 +84,7 @@ module HaveAPI::CLI
|
|
84
84
|
def generate
|
85
85
|
return if @cols.empty?
|
86
86
|
prepare
|
87
|
-
|
87
|
+
|
88
88
|
case @layout
|
89
89
|
when :columns
|
90
90
|
columns
|
@@ -113,7 +113,7 @@ module HaveAPI::CLI
|
|
113
113
|
i += 1
|
114
114
|
ret
|
115
115
|
end.join(' ')
|
116
|
-
|
116
|
+
|
117
117
|
line sprintf(formatters, * @cols.map { |c| c[:label] }) if @header
|
118
118
|
|
119
119
|
@str_objects.each do |o|
|
@@ -128,7 +128,7 @@ module HaveAPI::CLI
|
|
128
128
|
@str_objects.each do |o|
|
129
129
|
@cols.each_index do |i|
|
130
130
|
c = @cols[i]
|
131
|
-
|
131
|
+
|
132
132
|
if o[i].is_a?(::String) && o[i].index("\n")
|
133
133
|
lines = o[i].split("\n")
|
134
134
|
v = ([lines.first] + lines[1..-1].map { |l| (' ' * (w+3)) + l }).join("\n")
|
@@ -139,7 +139,7 @@ module HaveAPI::CLI
|
|
139
139
|
|
140
140
|
line sprintf("%#{w}s: %s", c[:label], v)
|
141
141
|
end
|
142
|
-
|
142
|
+
|
143
143
|
line
|
144
144
|
end
|
145
145
|
end
|
@@ -155,10 +155,10 @@ module HaveAPI::CLI
|
|
155
155
|
|
156
156
|
def prepare
|
157
157
|
@str_objects = []
|
158
|
-
|
158
|
+
|
159
159
|
each_object do |o|
|
160
160
|
arr = []
|
161
|
-
|
161
|
+
|
162
162
|
@cols.each do |c|
|
163
163
|
v = o[ c[:name] ]
|
164
164
|
str = (c[:display] ? c[:display].call(v) : v)
|
@@ -190,7 +190,7 @@ module HaveAPI::CLI
|
|
190
190
|
|
191
191
|
def col_width(i, c)
|
192
192
|
w = c[:label].to_s.length
|
193
|
-
|
193
|
+
|
194
194
|
@str_objects.each do |o|
|
195
195
|
len = o[i].to_s.length
|
196
196
|
w = len if len > w
|
@@ -12,8 +12,8 @@ module HaveAPI::Client
|
|
12
12
|
apply_args(args)
|
13
13
|
end
|
14
14
|
|
15
|
-
def execute(data
|
16
|
-
|
15
|
+
def execute(data)
|
16
|
+
params_arg = {}
|
17
17
|
|
18
18
|
if input
|
19
19
|
params = Params.new(self, data)
|
@@ -22,10 +22,10 @@ module HaveAPI::Client
|
|
22
22
|
raise ValidationError.new(self, params.errors)
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
params_arg = params.to_api
|
26
26
|
end
|
27
27
|
|
28
|
-
ret = @api.call(
|
28
|
+
ret = @api.call(self, params_arg, **{})
|
29
29
|
reset
|
30
30
|
ret
|
31
31
|
end
|
@@ -49,8 +49,8 @@ class HaveAPI::Client::Client
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# See Communicator#authenticate.
|
52
|
-
def authenticate(
|
53
|
-
@api.authenticate(
|
52
|
+
def authenticate(auth_method, **options, &block)
|
53
|
+
@api.authenticate(auth_method, options, &block)
|
54
54
|
end
|
55
55
|
|
56
56
|
# Get uthentication provider
|
@@ -76,7 +76,7 @@ module HaveAPI::Client
|
|
76
76
|
action.aliases(true).each do |name|
|
77
77
|
next unless define_method?(action, name)
|
78
78
|
|
79
|
-
define_singleton_method(name) do |*args, &block|
|
79
|
+
define_singleton_method(name) do |*args, **kwargs, &block|
|
80
80
|
client_opts = @client.opts(:block, :block_interval, :block_timeout)
|
81
81
|
all_args = @prepared_args + args
|
82
82
|
|
@@ -89,28 +89,42 @@ module HaveAPI::Client
|
|
89
89
|
end
|
90
90
|
|
91
91
|
if action.unresolved_args?
|
92
|
-
raise ArgumentError
|
92
|
+
raise ArgumentError, 'one or more object ids missing'
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
if all_args.
|
97
|
-
|
96
|
+
if all_args.length > 1 || (kwargs.any? && all_args.any?)
|
97
|
+
raise ArgumentError, "too many arguments for action #{@name}##{action.name}"
|
98
|
+
end
|
99
|
+
|
100
|
+
arg = all_args.shift
|
98
101
|
|
99
|
-
|
100
|
-
|
102
|
+
user_params =
|
103
|
+
if kwargs.any? && arg
|
104
|
+
raise ArgumentError,
|
105
|
+
'pass the input parameters either as a hash or keyword arguments'
|
106
|
+
elsif kwargs.any?
|
107
|
+
kwargs
|
108
|
+
elsif arg
|
109
|
+
arg
|
110
|
+
end
|
101
111
|
|
102
|
-
|
103
|
-
|
112
|
+
if user_params.nil?
|
113
|
+
input_params = default_action_input_params(action)
|
114
|
+
|
115
|
+
else
|
116
|
+
if user_params.has_key?(:meta)
|
117
|
+
meta = user_params[:meta]
|
104
118
|
|
105
119
|
%i(block block_interval block_timeout).each do |p|
|
106
120
|
client_opts[p] = meta.delete(p) if meta.has_key?(p)
|
107
121
|
end
|
108
122
|
end
|
109
123
|
|
110
|
-
|
124
|
+
input_params = default_action_input_params(action).update(user_params)
|
111
125
|
end
|
112
126
|
|
113
|
-
ret = Response.new(action, action.execute(
|
127
|
+
ret = Response.new(action, action.execute(input_params))
|
114
128
|
|
115
129
|
raise ActionFailed.new(ret) unless ret.ok?
|
116
130
|
|
@@ -137,8 +151,8 @@ module HaveAPI::Client
|
|
137
151
|
}.each do |k, v|
|
138
152
|
wait_opts[v] = client_opts[k] if client_opts.has_key?(k)
|
139
153
|
end
|
140
|
-
|
141
|
-
ret.wait_for_completion(wait_opts) do |state|
|
154
|
+
|
155
|
+
ret.wait_for_completion(**wait_opts) do |state|
|
142
156
|
block.call(return_value, state) if block
|
143
157
|
end
|
144
158
|
end
|
@@ -61,10 +61,10 @@ class HaveAPI::Client::Response
|
|
61
61
|
# it is regularly called with the action's state.
|
62
62
|
#
|
63
63
|
# @see HaveAPI::Client::Action#wait_for_completion
|
64
|
-
def wait_for_completion(
|
64
|
+
def wait_for_completion(**kwargs, &block)
|
65
65
|
id = meta[:action_state_id]
|
66
66
|
return nil unless id
|
67
67
|
|
68
|
-
HaveAPI::Client::Action.wait_for_completion(@action.client, id,
|
68
|
+
HaveAPI::Client::Action.wait_for_completion(@action.client, id, **kwargs, &block)
|
69
69
|
end
|
70
70
|
end
|
data/shell.nix
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haveapi-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Skokan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.0
|
75
|
+
version: 2.1.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.0
|
82
|
+
version: 2.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: json
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,28 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 2.0.3
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 2.0.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: ruby-progressbar
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: 1.11.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
124
|
+
version: 1.11.0
|
125
125
|
description: Ruby API and CLI for HaveAPI
|
126
126
|
email:
|
127
127
|
- jakub.skokan@vpsfree.cz
|
@@ -183,7 +183,7 @@ homepage: ''
|
|
183
183
|
licenses:
|
184
184
|
- MIT
|
185
185
|
metadata: {}
|
186
|
-
post_install_message:
|
186
|
+
post_install_message:
|
187
187
|
rdoc_options: []
|
188
188
|
require_paths:
|
189
189
|
- lib
|
@@ -198,8 +198,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
198
|
- !ruby/object:Gem::Version
|
199
199
|
version: '0'
|
200
200
|
requirements: []
|
201
|
-
rubygems_version: 3.
|
202
|
-
signing_key:
|
201
|
+
rubygems_version: 3.2.26
|
202
|
+
signing_key:
|
203
203
|
specification_version: 4
|
204
204
|
summary: Ruby API and CLI for HaveAPI
|
205
205
|
test_files: []
|