xapixctl 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -1
- data/Gemfile.lock +16 -16
- data/Rakefile +1 -1
- data/lib/xapixctl/base_cli.rb +51 -0
- data/lib/xapixctl/cli.rb +6 -86
- data/lib/xapixctl/phoenix_client.rb +16 -3
- data/lib/xapixctl/preview_cli.rb +66 -0
- data/lib/xapixctl/version.rb +3 -1
- data/xapixctl.gemspec +4 -4
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb39c7aace95b6c10168b43e536b404a8d5edcdfc48d12890b296708199dccda
|
4
|
+
data.tar.gz: 5db98915dd0ac3f1c02b64ceee8ba7497a72fe4ccd65c09c2543aa108a4a1b95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d67fe8ecd7b977fd05c7f8f8fb9b2b0fdbd4b1153405f0419f93bf05eea7dcb77d4314f4a635d77cb8472c50fcdef9c92df5fae1e361a8874b33401968dfaa35
|
7
|
+
data.tar.gz: e44e46596d4b155a5e3e5c08772de09fdbac68d1b5de23c6377a448f75af35c3701e59cf25498491d57c1c5418b3340ec7098939d168063f0c18bbe929c532d7
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
AllCops:
|
2
|
-
|
2
|
+
NewCops: enable
|
3
|
+
TargetRubyVersion: 2.6
|
3
4
|
DisplayCopNames: true
|
4
5
|
Exclude:
|
5
6
|
- bin/*
|
@@ -25,3 +26,6 @@ Style/OptionHash:
|
|
25
26
|
Metrics/BlockLength:
|
26
27
|
Exclude:
|
27
28
|
- spec/**/*
|
29
|
+
|
30
|
+
Naming/RescuedExceptionsVariableName:
|
31
|
+
PreferredName: 'err'
|
data/Gemfile.lock
CHANGED
@@ -1,40 +1,40 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
xapixctl (1.
|
4
|
+
xapixctl (1.1.1)
|
5
5
|
activesupport (>= 5.2.3, < 6.0.0)
|
6
6
|
rest-client (>= 2.1.0, < 3.0.0)
|
7
|
-
thor (>= 0.
|
7
|
+
thor (>= 1.0.0, < 1.1.0)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
activesupport (5.2.4.
|
12
|
+
activesupport (5.2.4.4)
|
13
13
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
14
|
i18n (>= 0.7, < 2)
|
15
15
|
minitest (~> 5.1)
|
16
16
|
tzinfo (~> 1.1)
|
17
17
|
ast (2.4.1)
|
18
|
-
concurrent-ruby (1.1.
|
18
|
+
concurrent-ruby (1.1.7)
|
19
19
|
diff-lcs (1.3)
|
20
20
|
domain_name (0.5.20190701)
|
21
21
|
unf (>= 0.0.5, < 1.0.0)
|
22
22
|
http-accept (1.7.0)
|
23
23
|
http-cookie (1.0.3)
|
24
24
|
domain_name (~> 0.5)
|
25
|
-
i18n (1.8.
|
25
|
+
i18n (1.8.5)
|
26
26
|
concurrent-ruby (~> 1.0)
|
27
27
|
mime-types (3.3.1)
|
28
28
|
mime-types-data (~> 3.2015)
|
29
29
|
mime-types-data (3.2020.0512)
|
30
|
-
minitest (5.14.
|
30
|
+
minitest (5.14.2)
|
31
31
|
netrc (0.11.0)
|
32
32
|
parallel (1.19.2)
|
33
|
-
parser (2.7.1.
|
34
|
-
ast (~> 2.4.
|
33
|
+
parser (2.7.1.4)
|
34
|
+
ast (~> 2.4.1)
|
35
35
|
rainbow (3.0.0)
|
36
36
|
rake (13.0.1)
|
37
|
-
regexp_parser (1.
|
37
|
+
regexp_parser (1.8.0)
|
38
38
|
relaxed-rubocop (2.5)
|
39
39
|
rest-client (2.1.0)
|
40
40
|
http-accept (>= 1.7.0, < 2.0)
|
@@ -55,19 +55,19 @@ GEM
|
|
55
55
|
diff-lcs (>= 1.2.0, < 2.0)
|
56
56
|
rspec-support (~> 3.9.0)
|
57
57
|
rspec-support (3.9.3)
|
58
|
-
rubocop (0.
|
58
|
+
rubocop (0.91.0)
|
59
59
|
parallel (~> 1.10)
|
60
|
-
parser (>= 2.7.
|
60
|
+
parser (>= 2.7.1.1)
|
61
61
|
rainbow (>= 2.2.2, < 4.0)
|
62
62
|
regexp_parser (>= 1.7)
|
63
63
|
rexml
|
64
|
-
rubocop-ast (>= 0.0.
|
64
|
+
rubocop-ast (>= 0.4.0, < 1.0)
|
65
65
|
ruby-progressbar (~> 1.7)
|
66
66
|
unicode-display_width (>= 1.4.0, < 2.0)
|
67
|
-
rubocop-ast (0.
|
68
|
-
parser (>= 2.7.
|
67
|
+
rubocop-ast (0.4.2)
|
68
|
+
parser (>= 2.7.1.4)
|
69
69
|
ruby-progressbar (1.10.1)
|
70
|
-
thor (0.
|
70
|
+
thor (1.0.1)
|
71
71
|
thread_safe (0.3.6)
|
72
72
|
tzinfo (1.2.7)
|
73
73
|
thread_safe (~> 0.1)
|
@@ -84,7 +84,7 @@ DEPENDENCIES
|
|
84
84
|
rake (~> 13.0)
|
85
85
|
relaxed-rubocop (~> 2.5)
|
86
86
|
rspec (~> 3.0)
|
87
|
-
rubocop (~> 0.
|
87
|
+
rubocop (~> 0.89)
|
88
88
|
xapixctl!
|
89
89
|
|
90
90
|
BUNDLED WITH
|
data/Rakefile
CHANGED
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
|
5
|
+
module Xapixctl
|
6
|
+
class BaseCli < Thor
|
7
|
+
def self.exit_on_failure?; true; end
|
8
|
+
|
9
|
+
class_option :verbose, type: :boolean, aliases: "-v"
|
10
|
+
class_option :xapix_url, desc: "Fallback: environment variable XAPIX_URL. URL to Xapix. Default: https://cloud.xapix.io/"
|
11
|
+
class_option :xapix_token, desc: "Fallback: environment variable XAPIX_TOKEN. Your access token."
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def warn_api_error(text, err, result)
|
16
|
+
details = "\n " + result['errors'].map { |k| k['detail'] }.join("\n ") rescue err.to_s
|
17
|
+
warn "#{text}: #{details}"
|
18
|
+
exit 1
|
19
|
+
end
|
20
|
+
|
21
|
+
def show_deployment_status(result)
|
22
|
+
return unless result && result['project_publication']
|
23
|
+
puts "deployment: #{result.dig('project_publication', 'deployment')}"
|
24
|
+
puts " data api: #{result.dig('project_publication', 'data_api')} (version: #{result.dig('project_publication', 'data_api_version').presence || 'n/a'})"
|
25
|
+
puts " user management: #{result.dig('project_publication', 'user_management')}"
|
26
|
+
if result.dig('project_publication', 'deployment') == 'success'
|
27
|
+
puts " base URL: #{result.dig('project_publication', 'base_url')}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
DOCUMENT_STRUCTURE = %w[version kind metadata definition].freeze
|
32
|
+
def resources_from_file(filename)
|
33
|
+
yaml_string = filename == '-' ? $stdin.read : IO.read(filename)
|
34
|
+
yaml_string.split(/^---\s*\n/).map { |yml| Psych.safe_load(yml) }.compact.each do |doc|
|
35
|
+
unless (DOCUMENT_STRUCTURE - doc.keys.map(&:to_s)).empty?
|
36
|
+
warn "does not look like a correct resource definition:"
|
37
|
+
warn doc.inspect
|
38
|
+
exit 1
|
39
|
+
end
|
40
|
+
yield doc
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def connection
|
45
|
+
url = options[:xapix_url] || ENV['XAPIX_URL'] || 'https://cloud.xapix.io/'
|
46
|
+
token = options[:xapix_token] || ENV['XAPIX_TOKEN']
|
47
|
+
raise Thor::RequiredArgumentMissingError, "no XAPIX_TOKEN given. Either use --xapix_token [TOKEN] or set environment variable XAPIX_TOKEN (recommended)" if !token
|
48
|
+
PhoenixClient::Connection.new(url, token)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/xapixctl/cli.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'xapixctl/base_cli'
|
4
|
+
require 'xapixctl/preview_cli'
|
4
5
|
|
5
6
|
module Xapixctl
|
6
|
-
class Cli <
|
7
|
-
|
8
|
-
|
9
|
-
class_option :verbose, type: :boolean, aliases: "-v"
|
10
|
-
class_option :xapix_url, desc: "Fallback: environment variable XAPIX_URL. URL to Xapix. Default: https://cloud.xapix.io/"
|
11
|
-
class_option :xapix_token, desc: "Fallback: environment variable XAPIX_TOKEN. Your access token."
|
7
|
+
class Cli < BaseCli
|
8
|
+
desc "preview SUBCOMMAND ...ARGS", "Request preview for resources"
|
9
|
+
subcommand "preview", Preview
|
12
10
|
|
13
11
|
option :org, aliases: "-o", desc: "Organization", required: true
|
14
12
|
option :project, aliases: "-p", desc: "Project"
|
@@ -128,7 +126,7 @@ module Xapixctl
|
|
128
126
|
end
|
129
127
|
elsif options[:file]
|
130
128
|
resources_from_file(options[:file]) do |desc|
|
131
|
-
type = desc
|
129
|
+
type = desc['kind']
|
132
130
|
id = desc.dig('metadata', 'id')
|
133
131
|
puts "deleting #{type} #{id}"
|
134
132
|
connection.delete(type, id, org: options[:org], project: options[:project]) do |res|
|
@@ -141,46 +139,6 @@ module Xapixctl
|
|
141
139
|
end
|
142
140
|
end
|
143
141
|
|
144
|
-
option :org, aliases: "-o", desc: "Organization", required: true
|
145
|
-
option :project, aliases: "-p", desc: "Project", required: true
|
146
|
-
option :format, aliases: "-f", default: 'text', enum: ['text', 'yaml', 'json'], desc: "Output format"
|
147
|
-
desc "preview ID", "Preview a pipeline"
|
148
|
-
long_desc <<-LONGDESC
|
149
|
-
`xapixctl preview` will return a preview of the given pipeline.
|
150
|
-
|
151
|
-
The preview function will not call any external data sources but calculate a preview based on the provided sample data.
|
152
|
-
|
153
|
-
To preview a pipeline attached to an endpoint, please use `xapixctl preview-ep` to see the correct preview.
|
154
|
-
|
155
|
-
Examples:
|
156
|
-
\x5> $ xapixctl preview -o xapix -p some-project pipeline
|
157
|
-
LONGDESC
|
158
|
-
def preview(pipeline)
|
159
|
-
connection.pipeline_preview(pipeline, org: options[:org], project: options[:project], format: options[:format].to_sym) do |res|
|
160
|
-
res.on_success { |preview| puts preview }
|
161
|
-
res.on_error { |err, result| warn_api_error('could not fetch preview', err, result) }
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
option :org, aliases: "-o", desc: "Organization", required: true
|
166
|
-
option :project, aliases: "-p", desc: "Project", required: true
|
167
|
-
option :format, aliases: "-f", default: 'text', enum: ['text', 'yaml', 'json'], desc: "Output format"
|
168
|
-
desc "preview-ep ID", "Preview an endpoint"
|
169
|
-
long_desc <<-LONGDESC
|
170
|
-
`xapixctl preview-ep` will return a preview of the given endpoint.
|
171
|
-
|
172
|
-
The preview function will not call any external data sources but calculate a preview based on the provided sample data.
|
173
|
-
|
174
|
-
Examples:
|
175
|
-
\x5> $ xapixctl preview-ep -o xapix -p some-project endpoint
|
176
|
-
LONGDESC
|
177
|
-
def preview_ep(endpoint)
|
178
|
-
connection.endpoint_preview(endpoint, org: options[:org], project: options[:project], format: options[:format].to_sym) do |res|
|
179
|
-
res.on_success { |preview| puts preview }
|
180
|
-
res.on_error { |err, result| warn_api_error('could not fetch preview', err, result) }
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
142
|
option :org, aliases: "-o", desc: "Organization", required: true
|
185
143
|
option :project, aliases: "-p", desc: "Project", required: true
|
186
144
|
desc "publish", "Publishes the current version of the given project"
|
@@ -230,43 +188,5 @@ module Xapixctl
|
|
230
188
|
res.on_error { |err, result| warn_api_error("could not get", err, result) }
|
231
189
|
end
|
232
190
|
end
|
233
|
-
|
234
|
-
private
|
235
|
-
|
236
|
-
def warn_api_error(text, err, result)
|
237
|
-
details = "\n " + result['errors'].map { |k| k['detail'] }.join("\n ") rescue err.to_s
|
238
|
-
warn "#{text}: #{details}"
|
239
|
-
exit 1
|
240
|
-
end
|
241
|
-
|
242
|
-
def show_deployment_status(result)
|
243
|
-
return unless result && result['project_publication']
|
244
|
-
puts "deployment: #{result.dig('project_publication', 'deployment')}"
|
245
|
-
puts " data api: #{result.dig('project_publication', 'data_api')} (version: #{result.dig('project_publication', 'data_api_version').presence || 'n/a'})"
|
246
|
-
puts " user management: #{result.dig('project_publication', 'user_management')}"
|
247
|
-
if result.dig('project_publication', 'deployment') == 'success'
|
248
|
-
puts " base URL: #{result.dig('project_publication', 'base_url')}"
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|
252
|
-
DOCUMENT_STRUCTURE = %w[version kind metadata definition].freeze
|
253
|
-
def resources_from_file(filename)
|
254
|
-
yaml_string = filename == '-' ? $stdin.read : IO.read(filename)
|
255
|
-
yaml_string.split(/^---\s*\n/).map { |yml| Psych.safe_load(yml) }.compact.each do |doc|
|
256
|
-
unless (DOCUMENT_STRUCTURE - doc.keys.map(&:to_s)).empty?
|
257
|
-
warn "does not look like a correct resource definition:"
|
258
|
-
warn doc.inspect
|
259
|
-
exit 1
|
260
|
-
end
|
261
|
-
yield doc
|
262
|
-
end
|
263
|
-
end
|
264
|
-
|
265
|
-
def connection
|
266
|
-
url = options[:xapix_url] || ENV['XAPIX_URL'] || 'https://cloud.xapix.io/'
|
267
|
-
token = options[:xapix_token] || ENV['XAPIX_TOKEN']
|
268
|
-
raise Thor::RequiredArgumentMissingError, "no XAPIX_TOKEN given. Either use --xapix_token [TOKEN] or set environment variable XAPIX_TOKEN (recommended)" if !token
|
269
|
-
PhoenixClient::Connection.new(url, token)
|
270
|
-
end
|
271
191
|
end
|
272
192
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
module Xapixctl
|
4
4
|
module PhoenixClient
|
5
|
-
|
6
5
|
class ResultHandler
|
7
6
|
def initialize(default_success_handler:, default_error_handler:)
|
8
7
|
@success_handler = default_success_handler
|
@@ -34,12 +33,12 @@ module Xapixctl
|
|
34
33
|
end
|
35
34
|
|
36
35
|
TEXT_FORMATTERS = {
|
37
|
-
all: ->(data) { "id :
|
36
|
+
all: ->(data) { "id : %<id>s\nkind: %<kind>s\nname: %<name>s\n\n" % { id: data.dig('metadata', 'id'), kind: data['kind'], name: data.dig('definition', 'name') } }
|
38
37
|
}.freeze
|
39
38
|
|
40
39
|
FORMATTERS = {
|
41
40
|
json: ->(data) { JSON.pretty_generate(data) },
|
42
|
-
yaml: ->(data) { Psych.dump(data
|
41
|
+
yaml: ->(data) { Psych.dump(data) },
|
43
42
|
text: ->(data) { (TEXT_FORMATTERS[data.dig('metadata', 'type')] || TEXT_FORMATTERS[:all]).call(data) }
|
44
43
|
}.freeze
|
45
44
|
|
@@ -80,10 +79,13 @@ module Xapixctl
|
|
80
79
|
Schema
|
81
80
|
DataSource
|
82
81
|
Pipeline
|
82
|
+
Service
|
83
83
|
EndpointGroup
|
84
84
|
Endpoint
|
85
85
|
StreamGroup
|
86
86
|
Stream
|
87
|
+
Scheduler
|
88
|
+
StreamProcessor
|
87
89
|
ApiPublishing
|
88
90
|
ApiPublishingRole
|
89
91
|
].freeze
|
@@ -134,6 +136,13 @@ module Xapixctl
|
|
134
136
|
run { @client[endpoint_preview_path(org, project, endpoint_id)].get }
|
135
137
|
end
|
136
138
|
|
139
|
+
def stream_processor_preview(stream_processor_id, org:, project:, format: :hash, &block)
|
140
|
+
result_handler(block).
|
141
|
+
prepare_data(->(data) { data['stream_processor_preview'] }).
|
142
|
+
formatter(PREVIEW_FORMATTERS[format]).
|
143
|
+
run { @client[stream_processor_preview_path(org, project, stream_processor_id)].get }
|
144
|
+
end
|
145
|
+
|
137
146
|
def publish(org:, project:, &block)
|
138
147
|
result_handler(block).
|
139
148
|
run { @client[project_publications_path(org, project)].post('') }
|
@@ -190,6 +199,10 @@ module Xapixctl
|
|
190
199
|
"/projects/#{org}/#{project}/endpoints/#{endpoint}/preview"
|
191
200
|
end
|
192
201
|
|
202
|
+
def stream_processor_preview_path(org, project, stream_processor)
|
203
|
+
"/projects/#{org}/#{project}/stream_processors/#{stream_processor}/preview"
|
204
|
+
end
|
205
|
+
|
193
206
|
def project_publications_path(org, project)
|
194
207
|
"/projects/#{org}/#{project}/publications"
|
195
208
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'xapixctl/base_cli'
|
4
|
+
|
5
|
+
module Xapixctl
|
6
|
+
class Preview < BaseCli
|
7
|
+
option :org, aliases: "-o", desc: "Organization", required: true
|
8
|
+
option :project, aliases: "-p", desc: "Project", required: true
|
9
|
+
option :format, aliases: "-f", default: 'text', enum: ['text', 'yaml', 'json'], desc: "Output format"
|
10
|
+
desc "pipeline ID", "Preview a pipeline"
|
11
|
+
long_desc <<-LONGDESC
|
12
|
+
`xapixctl preview pipeline` will return a preview of the given pipeline.
|
13
|
+
|
14
|
+
The preview function will not call any external data sources but calculate a preview based on the provided sample data.
|
15
|
+
|
16
|
+
To preview a pipeline attached to an endpoint, please use `xapixctl preview endpoint` to see the correct preview.
|
17
|
+
|
18
|
+
Examples:
|
19
|
+
\x5> $ xapixctl preview pipeline -o xapix -p some-project pipeline
|
20
|
+
LONGDESC
|
21
|
+
def pipeline(pipeline)
|
22
|
+
connection.pipeline_preview(pipeline, org: options[:org], project: options[:project], format: options[:format].to_sym) do |res|
|
23
|
+
res.on_success { |preview| puts preview }
|
24
|
+
res.on_error { |err, result| warn_api_error('could not fetch preview', err, result) }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
option :org, aliases: "-o", desc: "Organization", required: true
|
29
|
+
option :project, aliases: "-p", desc: "Project", required: true
|
30
|
+
option :format, aliases: "-f", default: 'text', enum: ['text', 'yaml', 'json'], desc: "Output format"
|
31
|
+
desc "endpoint ID", "Preview an endpoint"
|
32
|
+
long_desc <<-LONGDESC
|
33
|
+
`xapixctl preview endpoint` will return a preview of the given endpoint.
|
34
|
+
|
35
|
+
The preview function will not call any external data sources but calculate a preview based on the provided sample data.
|
36
|
+
|
37
|
+
Examples:
|
38
|
+
\x5> $ xapixctl preview endpoint -o xapix -p some-project endpoint
|
39
|
+
LONGDESC
|
40
|
+
def endpoint(endpoint)
|
41
|
+
connection.endpoint_preview(endpoint, org: options[:org], project: options[:project], format: options[:format].to_sym) do |res|
|
42
|
+
res.on_success { |preview| puts preview }
|
43
|
+
res.on_error { |err, result| warn_api_error('could not fetch preview', err, result) }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
option :org, aliases: "-o", desc: "Organization", required: true
|
48
|
+
option :project, aliases: "-p", desc: "Project", required: true
|
49
|
+
option :format, aliases: "-f", default: 'text', enum: ['text', 'yaml', 'json'], desc: "Output format"
|
50
|
+
desc "stream-processor ID", "Preview a stream processor"
|
51
|
+
long_desc <<-LONGDESC
|
52
|
+
`xapixctl preview stream-processor` will return a preview of the given stream processor.
|
53
|
+
|
54
|
+
The preview function will not call any external data sources but calculate a preview based on the provided sample data.
|
55
|
+
|
56
|
+
Examples:
|
57
|
+
\x5> $ xapixctl preview stream-processor -o xapix -p some-project processor
|
58
|
+
LONGDESC
|
59
|
+
def stream_processor(stream_processor)
|
60
|
+
connection.stream_processor_preview(stream_processor, org: options[:org], project: options[:project], format: options[:format].to_sym) do |res|
|
61
|
+
res.on_success { |preview| puts preview }
|
62
|
+
res.on_error { |err, result| warn_api_error('could not fetch preview', err, result) }
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/lib/xapixctl/version.rb
CHANGED
data/xapixctl.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.authors = ["Michael Reinsch"]
|
9
9
|
spec.email = ["michael@xapix.io"]
|
10
10
|
|
11
|
-
spec.summary =
|
11
|
+
spec.summary = 'xapix client library and command line tool'
|
12
12
|
spec.homepage = "https://github.com/xapix-io/xapixctl"
|
13
13
|
spec.license = "EPL-2.0"
|
14
14
|
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
|
18
18
|
# Specify which files should be added to the gem when it is released.
|
19
19
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
20
|
-
spec.files
|
20
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
21
21
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
22
|
end
|
23
23
|
spec.bindir = "exe"
|
@@ -26,11 +26,11 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency "activesupport", ">= 5.2.3", "< 6.0.0"
|
28
28
|
spec.add_dependency "rest-client", ">= 2.1.0", "< 3.0.0"
|
29
|
-
spec.add_dependency "thor", ">= 0.
|
29
|
+
spec.add_dependency "thor", ">= 1.0.0", "< 1.1.0"
|
30
30
|
|
31
31
|
spec.add_development_dependency "bundler", "~> 1.17.3"
|
32
32
|
spec.add_development_dependency "rake", "~> 13.0"
|
33
33
|
spec.add_development_dependency "relaxed-rubocop", "~> 2.5"
|
34
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
35
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
35
|
+
spec.add_development_dependency "rubocop", "~> 0.89"
|
36
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xapixctl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Reinsch
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -56,20 +56,20 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
59
|
+
version: 1.0.0
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.
|
62
|
+
version: 1.1.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 1.0.0
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.
|
72
|
+
version: 1.1.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: bundler
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,14 +132,14 @@ dependencies:
|
|
132
132
|
requirements:
|
133
133
|
- - "~>"
|
134
134
|
- !ruby/object:Gem::Version
|
135
|
-
version: 0.
|
135
|
+
version: '0.89'
|
136
136
|
type: :development
|
137
137
|
prerelease: false
|
138
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
140
|
- - "~>"
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: 0.
|
142
|
+
version: '0.89'
|
143
143
|
description:
|
144
144
|
email:
|
145
145
|
- michael@xapix.io
|
@@ -161,8 +161,10 @@ files:
|
|
161
161
|
- bin/setup
|
162
162
|
- exe/xapixctl
|
163
163
|
- lib/xapixctl.rb
|
164
|
+
- lib/xapixctl/base_cli.rb
|
164
165
|
- lib/xapixctl/cli.rb
|
165
166
|
- lib/xapixctl/phoenix_client.rb
|
167
|
+
- lib/xapixctl/preview_cli.rb
|
166
168
|
- lib/xapixctl/version.rb
|
167
169
|
- xapixctl.gemspec
|
168
170
|
homepage: https://github.com/xapix-io/xapixctl
|