haveapi-client 0.14.0 → 0.15.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e057fb019eb27f25b11bfeae4459672d87429111c49d57573a4071dc117bc731
4
- data.tar.gz: def4beeeaaef2272452641faeee82f5fa9383e06c892c9f38ab3dcbbdce7775c
3
+ metadata.gz: b6e5b127dccda20aa750bc4b96439e60ed9b3187d35a75ded882c3ee5f3ae848
4
+ data.tar.gz: 1d666724640a558352d3f19d18e3de5c0fc3d5185d472f4d21993540d34ca214
5
5
  SHA512:
6
- metadata.gz: 996154c2f4e58ac56014240871205b7815326b11bcdb5c5f16708f318c6960698edbae2a08dcca19c6668848bbea871559d602be6cdf17c99fb4b2875bbf92cc
7
- data.tar.gz: 18ad80e51d76b2a17ec31e4739b0d192438d5b43846c335f167ba23b3c0c1592a95f13737555864127624fb0cf81d2ad34d1c5434b9173d72ab96939dbc08182
6
+ metadata.gz: edd9c2b63c6276f27306bc7da23f8b1fd124aa8415cc7a4bc63177a82e56fd7174f9dea13e5956cad4ec8cf8c9f912aeda5b57235f985be7000b0f60db9e57bd
7
+ data.tar.gz: e4c7b696131b8ac85fc66e5937394a247ca71545033358e22bf12ba563a79b0b3b21134db5c1e38552d513aa6af69915c6aa52fce80ddba645deebb31f2b9dab
@@ -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
- args = [self]
15
+ def execute(data, raw: false)
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
- args << params.to_api << {}
25
+ params_arg = params.to_api
26
26
  end
27
27
 
28
- ret = @api.call(*args)
28
+ ret = @api.call(self, params_arg, raw: raw)
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(*args, &block)
53
- @api.authenticate(*args, &block)
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.new('One or more object ids missing')
92
+ raise ArgumentError, 'one or more object ids missing'
93
93
  end
94
94
  end
95
95
 
96
- if all_args.empty?
97
- all_args << default_action_input_params(action)
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
- elsif all_args.last.is_a?(Hash)
100
- last = all_args.pop
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
- if last.has_key?(:meta)
103
- meta = last[:meta]
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
- all_args << default_action_input_params(action).update(last)
124
+ input_params = default_action_input_params(action).update(user_params)
111
125
  end
112
126
 
113
- ret = Response.new(action, action.execute(*all_args))
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(*args, &block)
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, *args, &block)
68
+ HaveAPI::Client::Action.wait_for_completion(@action.client, id, **kwargs, &block)
69
69
  end
70
70
  end
@@ -1,6 +1,6 @@
1
1
  module HaveAPI
2
2
  module Client
3
3
  PROTOCOL_VERSION = '2.0'
4
- VERSION = '0.14.0'
4
+ VERSION = '0.15.1'
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haveapi-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakub Skokan
@@ -198,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
198
  - !ruby/object:Gem::Version
199
199
  version: '0'
200
200
  requirements: []
201
- rubygems_version: 3.2.24
201
+ rubygems_version: 3.2.26
202
202
  signing_key:
203
203
  specification_version: 4
204
204
  summary: Ruby API and CLI for HaveAPI