haveapi-client 0.13.3 → 0.15.0

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: e9d415ea5340264305787c329a3f8bff4f8e90da4fc2d3b9a187c340131438c9
4
- data.tar.gz: 678d54f49e930d20c9b033a4a2725bd7bda8a0f6efb5edd5d177b8ffdb0424c0
3
+ metadata.gz: 4ab49346d0209df996a1832992ad1f11bf7bb2f7de6f1f7cd49fb92e4bbc62c0
4
+ data.tar.gz: a49dc688a464d90e4188d93abcda7d27f252f0c4d44ce7769fb773b68b08e11b
5
5
  SHA512:
6
- metadata.gz: c77561672d6b40484361db5a46e7dacd21be5afa6c9c1609194c3d9e38f3ee0a3547aabb2b0e11ba7db1d3384f89e347df52bcc8ab14901fd941737dd00c570a
7
- data.tar.gz: a6314cae9ee7f0a63a0f164f3033b071c303fd57545361525f3860d5d0444963a14ed303aa8421535256ec88c7391ead84ac7fae2b835e5136b046465db2763b
6
+ metadata.gz: b39a2abebdc41d1480c2cba71ff4440ac320532c1d22885d92aba8d383f3e9e4d2a055114821c76322f90d1c0d135c5233b80f95a3ac366483a8ee6fa6577756
7
+ data.tar.gz: 768c5ec61c25e4dcfbc99f79f0a788d2237789e8316065fecc766fe60b832852609954ee1bf2c21256aa80116f901aef55314825e4fb42df23c69cbf84dab7d0
@@ -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.2'
26
+ spec.add_runtime_dependency 'rest-client', '~> 2.1.0'
27
27
  spec.add_runtime_dependency 'json'
28
- spec.add_runtime_dependency 'highline', '~> 1.7.8'
29
- spec.add_runtime_dependency 'ruby-progressbar', '~> 1.7.5'
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
- args = [self]
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
- 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, **{})
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.13.3'
4
+ VERSION = '0.15.0'
5
5
  end
6
6
  end
data/shell.nix CHANGED
@@ -6,7 +6,7 @@ in stdenv.mkDerivation rec {
6
6
  name = "haveapi-client";
7
7
 
8
8
  buildInputs = with pkgs;[
9
- ruby
9
+ ruby_2_7
10
10
  git
11
11
  openssl
12
12
  ];
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.13.3
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: 1970-01-01 00:00:00.000000000 Z
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.2
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.2
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: 1.7.8
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: 1.7.8
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.7.5
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.7.5
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.0.6
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: []