xapixctl 1.1.0 → 1.2.2

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.
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+
5
+ module Xapixctl
6
+ module Util
7
+ extend self
8
+
9
+ class InvalidDocumentStructureError < StandardError
10
+ def initialize(file)
11
+ super("#{file} has invalid document structure")
12
+ end
13
+ end
14
+
15
+ DOCUMENT_STRUCTURE = %w[version kind metadata definition].freeze
16
+
17
+ def resources_from_file(filename, ignore_missing: false)
18
+ load_files(filename, ignore_missing) do |actual_file, yaml_string|
19
+ yaml_string.split(/^---\s*\n/).map { |yml| Psych.safe_load(yml) }.compact.each do |doc|
20
+ raise InvalidDocumentStructureError, actual_file unless (DOCUMENT_STRUCTURE - doc.keys.map(&:to_s)).empty?
21
+ yield doc
22
+ end
23
+ end
24
+ end
25
+
26
+ def load_files(filename, ignore_missing)
27
+ if filename == '-'
28
+ yield 'STDIN', $stdin.read
29
+ else
30
+ pn = filename.is_a?(Pathname) ? filename : Pathname.new(filename)
31
+ if pn.directory?
32
+ pn.glob(["**/*.yaml", "**/*.yml"]).sort.each { |dpn| yield dpn.to_s, dpn.read }
33
+ elsif pn.exist?
34
+ yield pn.to_s, pn.read
35
+ elsif !ignore_missing
36
+ warn "file not found: #{filename}"
37
+ exit 1
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Xapixctl
2
- VERSION = "1.1.0"
4
+ VERSION = "1.2.2"
3
5
  end
data/xapixctl.gemspec CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path("lib", __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require "xapixctl/version"
@@ -8,7 +10,7 @@ Gem::Specification.new do |spec|
8
10
  spec.authors = ["Michael Reinsch"]
9
11
  spec.email = ["michael@xapix.io"]
10
12
 
11
- spec.summary = %q{xapix client library and command line tool}
13
+ spec.summary = 'xapix client library and command line tool'
12
14
  spec.homepage = "https://github.com/xapix-io/xapixctl"
13
15
  spec.license = "EPL-2.0"
14
16
 
@@ -17,20 +19,25 @@ Gem::Specification.new do |spec|
17
19
 
18
20
  # Specify which files should be added to the gem when it is released.
19
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
21
23
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
24
  end
23
25
  spec.bindir = "exe"
24
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
27
  spec.require_paths = ["lib"]
26
28
 
29
+ spec.required_ruby_version = '>= 2.6'
30
+
27
31
  spec.add_dependency "activesupport", ">= 5.2.3", "< 6.0.0"
28
32
  spec.add_dependency "rest-client", ">= 2.1.0", "< 3.0.0"
29
- spec.add_dependency "thor", ">= 0.20.3", "< 1.0.0"
33
+ spec.add_dependency "thor", ">= 1.0.0", "< 1.2.0"
30
34
 
31
- spec.add_development_dependency "bundler", "~> 1.17.3"
35
+ spec.add_development_dependency "bundler", "~> 2.1.4"
32
36
  spec.add_development_dependency "rake", "~> 13.0"
33
37
  spec.add_development_dependency "relaxed-rubocop", "~> 2.5"
34
- spec.add_development_dependency "rspec", "~> 3.0"
35
- spec.add_development_dependency "rubocop", "~> 0.85.0"
38
+ spec.add_development_dependency "rspec", "~> 3.10.0"
39
+ spec.add_development_dependency "rubocop", "~> 1.11.0"
40
+ spec.add_development_dependency "rubocop-rake", "~> 0.5.1"
41
+ spec.add_development_dependency "rubocop-rspec", "~> 2.2.0"
42
+ spec.add_development_dependency "webmock", "~> 3.11.0"
36
43
  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.0
4
+ version: 1.2.2
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-06-22 00:00:00.000000000 Z
11
+ date: 2021-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -56,34 +56,34 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.20.3
59
+ version: 1.0.0
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: 1.0.0
62
+ version: 1.2.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.20.3
69
+ version: 1.0.0
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: 1.0.0
72
+ version: 1.2.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: bundler
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: 1.17.3
79
+ version: 2.1.4
80
80
  type: :development
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: 1.17.3
86
+ version: 2.1.4
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: rake
89
89
  requirement: !ruby/object:Gem::Requirement
@@ -118,28 +118,70 @@ dependencies:
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '3.0'
121
+ version: 3.10.0
122
122
  type: :development
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - "~>"
127
127
  - !ruby/object:Gem::Version
128
- version: '3.0'
128
+ version: 3.10.0
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: rubocop
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
133
  - - "~>"
134
134
  - !ruby/object:Gem::Version
135
- version: 0.85.0
135
+ version: 1.11.0
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: 1.11.0
143
+ - !ruby/object:Gem::Dependency
144
+ name: rubocop-rake
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 0.5.1
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: 0.5.1
157
+ - !ruby/object:Gem::Dependency
158
+ name: rubocop-rspec
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: 2.2.0
136
164
  type: :development
137
165
  prerelease: false
138
166
  version_requirements: !ruby/object:Gem::Requirement
139
167
  requirements:
140
168
  - - "~>"
141
169
  - !ruby/object:Gem::Version
142
- version: 0.85.0
170
+ version: 2.2.0
171
+ - !ruby/object:Gem::Dependency
172
+ name: webmock
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: 3.11.0
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: 3.11.0
143
185
  description:
144
186
  email:
145
187
  - michael@xapix.io
@@ -148,6 +190,7 @@ executables:
148
190
  extensions: []
149
191
  extra_rdoc_files: []
150
192
  files:
193
+ - ".github/workflows/cd.yaml"
151
194
  - ".gitignore"
152
195
  - ".rspec"
153
196
  - ".rubocop.yml"
@@ -161,8 +204,18 @@ files:
161
204
  - bin/setup
162
205
  - exe/xapixctl
163
206
  - lib/xapixctl.rb
207
+ - lib/xapixctl/base_cli.rb
164
208
  - lib/xapixctl/cli.rb
209
+ - lib/xapixctl/connector_cli.rb
165
210
  - lib/xapixctl/phoenix_client.rb
211
+ - lib/xapixctl/phoenix_client/connection.rb
212
+ - lib/xapixctl/phoenix_client/organization_connection.rb
213
+ - lib/xapixctl/phoenix_client/project_connection.rb
214
+ - lib/xapixctl/phoenix_client/result_handler.rb
215
+ - lib/xapixctl/preview_cli.rb
216
+ - lib/xapixctl/sync_cli.rb
217
+ - lib/xapixctl/titan_cli.rb
218
+ - lib/xapixctl/util.rb
166
219
  - lib/xapixctl/version.rb
167
220
  - xapixctl.gemspec
168
221
  homepage: https://github.com/xapix-io/xapixctl
@@ -179,14 +232,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
232
  requirements:
180
233
  - - ">="
181
234
  - !ruby/object:Gem::Version
182
- version: '0'
235
+ version: '2.6'
183
236
  required_rubygems_version: !ruby/object:Gem::Requirement
184
237
  requirements:
185
238
  - - ">="
186
239
  - !ruby/object:Gem::Version
187
240
  version: '0'
188
241
  requirements: []
189
- rubygems_version: 3.0.8
242
+ rubygems_version: 3.0.9
190
243
  signing_key:
191
244
  specification_version: 4
192
245
  summary: xapix client library and command line tool