gazer 0.2.43 → 0.2.48

Sign up to get free protection for your applications and to get access to all the features.
data/lib/gzr/command.rb CHANGED
@@ -119,7 +119,7 @@ module Gzr
119
119
  def all_color_collections()
120
120
  data = nil
121
121
  begin
122
- data = @sdk.all_color_collections()
122
+ data = @sdk.all_color_collections().collect { |o| o.to_attrs if o.respond_to?(:to_attrs) }
123
123
  rescue NoMethodError => nme
124
124
  say_warning "The api endpoint all_color_collections() is not implemented on this Looker instance"
125
125
  rescue LookerSDK::NotFound => nf
@@ -136,7 +136,7 @@ module Gzr
136
136
  return @dcc if @dcc
137
137
  data = nil
138
138
  begin
139
- data = @sdk.default_color_collection()
139
+ data = @sdk.default_color_collection().to_attrs
140
140
  @dcc = data
141
141
  rescue NoMethodError => nme
142
142
  say_warning "The api endpoint default_color_collection() is not implemented on this Looker instance"
@@ -181,7 +181,7 @@ module Gzr
181
181
  say_warning "You do not have access to query color palettes so these won't be processed."
182
182
  return
183
183
  end
184
- @default_colors=color_palette_lookup!(dcc.to_attrs)
184
+ @default_colors=color_palette_lookup!(dcc)
185
185
  say_warning("Default colors #{JSON.pretty_generate @default_colors}") if @options[:debug]
186
186
  end unless @default_colors
187
187
 
@@ -281,7 +281,7 @@ module Gzr
281
281
  # end
282
282
 
283
283
  def keys_to_keep(operation)
284
- o = @sdk.operations[operation]
284
+ o = @sdk.operations[operation] || @sdk.operations[operation.to_sym]
285
285
  begin
286
286
  say_error "Operation #{operation} not found"
287
287
  return []
@@ -62,7 +62,7 @@ module Gzr
62
62
  if @options[:csv] then
63
63
  output.puts render_csv(table)
64
64
  else
65
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
65
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
66
66
  end
67
67
  end if table
68
68
  end
@@ -61,7 +61,7 @@ module Gzr
61
61
  if @options[:csv] then
62
62
  output.puts render_csv(table)
63
63
  else
64
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
64
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
65
65
  end
66
66
  end if table
67
67
  end
@@ -61,7 +61,7 @@ module Gzr
61
61
  if @options[:csv] then
62
62
  output.puts render_csv(table)
63
63
  else
64
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024)
64
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024, width: @options[:width] || TTY::Screen.width)
65
65
  end
66
66
  end if table
67
67
  end
@@ -117,7 +117,12 @@ module Gzr
117
117
  outputJSON.gsub! k,v
118
118
  end
119
119
 
120
- write_file(@options[:dir] ? "Dashboard_#{data[:id]}_#{data[:title]}.json" : nil, @options[:dir], nil, output) do |f|
120
+ file_name = if @options[:dir]
121
+ @options[:simple_filename] ? "Dashboard_#{data[:id]}.json" : "Dashboard_#{data[:id]}_#{data[:title]}.json"
122
+ else
123
+ nil
124
+ end
125
+ write_file(file_name, @options[:dir], nil, output) do |f|
121
126
  f.puts outputJSON
122
127
  end
123
128
  end
@@ -52,6 +52,8 @@ module Gzr
52
52
  desc: 'Include scheduled plans'
53
53
  method_option :transform, type: :string,
54
54
  desc: 'Fully-qualified path to a JSON file describing the transformations to apply'
55
+ method_option :simple_filename, type: :boolean,
56
+ desc: 'Use simple filename for output (Dashboard_<id>.json)'
55
57
  def cat(dashboard_id)
56
58
  if options[:help]
57
59
  invoke :help, ['cat']
@@ -62,7 +62,7 @@ module Gzr
62
62
  if @options[:csv] then
63
63
  output.puts render_csv(table)
64
64
  else
65
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
65
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
66
66
  end
67
67
  end if table
68
68
  end
@@ -63,7 +63,7 @@ module Gzr
63
63
  if @options[:csv] then
64
64
  output.puts render_csv(table)
65
65
  else
66
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
66
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
67
67
  end
68
68
  end if table
69
69
  end
@@ -63,7 +63,7 @@ module Gzr
63
63
  if @options[:csv] then
64
64
  output.puts render_csv(table)
65
65
  else
66
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
66
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
67
67
  end
68
68
  end if table
69
69
  end
@@ -50,7 +50,12 @@ module Gzr
50
50
  end
51
51
 
52
52
  data[:scheduled_plans] = query_scheduled_plans_for_look(@look_id,"all").to_attrs if @options[:plans]
53
- write_file(@options[:dir] ? "Look_#{data[:id]}_#{data[:title]}.json" : nil, @options[:dir],nil, output) do |f|
53
+ file_name = if @options[:dir]
54
+ @options[:simple_filename] ? "Look_#{data[:id]}.json" : "Look_#{data[:id]}_#{data[:title]}.json"
55
+ else
56
+ nil
57
+ end
58
+ write_file(file_name, @options[:dir],nil, output) do |f|
54
59
  f.puts JSON.pretty_generate(data)
55
60
  end
56
61
  end
@@ -82,6 +82,8 @@ module Gzr
82
82
  desc: 'Directory to store output file'
83
83
  method_option :plans, type: :boolean,
84
84
  desc: 'Include scheduled plans'
85
+ method_option :simple_filename, type: :boolean,
86
+ desc: 'Use simple filename for output (Look_<id>.json)'
85
87
  def cat(look_id)
86
88
  if options[:help]
87
89
  invoke :help, ['cat']
@@ -61,7 +61,7 @@ module Gzr
61
61
  if @options[:csv] then
62
62
  output.puts render_csv(table)
63
63
  else
64
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
64
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
65
65
  end
66
66
  end if table
67
67
  end
@@ -63,7 +63,7 @@ module Gzr
63
63
  if @options[:csv] then
64
64
  output.puts render_csv(table)
65
65
  else
66
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024)
66
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: 1024, width: @options[:width] || TTY::Screen.width)
67
67
  end
68
68
  end if table
69
69
  end
@@ -87,7 +87,7 @@ module Gzr
87
87
  if @options[:csv] then
88
88
  output.puts render_csv(table)
89
89
  else
90
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
90
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width, width: @options[:width] || TTY::Screen.width)
91
91
  end
92
92
  end if table
93
93
  end
@@ -91,7 +91,7 @@ module Gzr
91
91
  if @options[:csv] then
92
92
  output.puts render_csv(table)
93
93
  else
94
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
94
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
95
95
  end
96
96
  end if table
97
97
  end
@@ -65,7 +65,7 @@ module Gzr
65
65
  if @options[:csv] then
66
66
  output.puts render_csv(table)
67
67
  else
68
- output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments)
68
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments, width: @options[:width] || TTY::Screen.width)
69
69
  end
70
70
  end if table
71
71
  end
@@ -64,7 +64,7 @@ module Gzr
64
64
  if @options[:csv] then
65
65
  output.puts render_csv(table)
66
66
  else
67
- output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments)
67
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments, width: @options[:width] || TTY::Screen.width)
68
68
  end
69
69
  end if table
70
70
  end
@@ -38,7 +38,7 @@ module Gzr
38
38
  def execute(input: $stdin, output: $stdout)
39
39
  say_warning("options: #{@options.inspect}") if @options[:debug]
40
40
  with_session do
41
- delete_role(@plan_id)
41
+ delete_role(@role_id)
42
42
  end
43
43
  end
44
44
  end
@@ -65,7 +65,7 @@ module Gzr
65
65
  if @options[:csv] then
66
66
  output.puts render_csv(table)
67
67
  else
68
- output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments)
68
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, multiline: true, alignments: alignments, width: @options[:width] || TTY::Screen.width)
69
69
  end
70
70
  end if table
71
71
  end
@@ -101,7 +101,7 @@ module Gzr
101
101
  if @options[:csv] then
102
102
  output.puts render_csv(table)
103
103
  else
104
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
104
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
105
105
  end
106
106
  end if table
107
107
  end
@@ -65,7 +65,7 @@ module Gzr
65
65
  if @options[:csv] then
66
66
  output.puts render_csv(table)
67
67
  else
68
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: [:right])
68
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: [:right], width: @options[:width] || TTY::Screen.width)
69
69
  end
70
70
  end if table
71
71
  end
@@ -71,7 +71,7 @@ module Gzr
71
71
  if @options[:csv] then
72
72
  output.puts render_csv(table)
73
73
  else
74
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
74
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
75
75
  end
76
76
  end if table
77
77
  end
@@ -55,7 +55,7 @@ module Gzr
55
55
  if @options[:csv] then
56
56
  output.puts render_csv(table)
57
57
  else
58
- output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments)
58
+ output.puts table.render(if @options[:plain] then :basic else :ascii end, alignments: alignments, width: @options[:width] || TTY::Screen.width)
59
59
  end
60
60
  end if table
61
61
  end
@@ -46,13 +46,19 @@ module Gzr
46
46
  output.puts pastel.red data
47
47
  end
48
48
 
49
- def v3_1_available?
50
- @v3_1_available ||= false
49
+ @versions = []
50
+ @current_version = nil
51
+
52
+ def sufficient_version?(given_version, minimum_version)
53
+ return true unless (given_version && minimum_version)
54
+ versions = @versions.map {|v| v.version}.sort
55
+ !versions.drop_while {|v| v < minimum_version}.reverse.drop_while {|v| v > given_version}.empty?
51
56
  end
52
57
 
53
- def build_connection_hash(api_version='3.0')
58
+
59
+ def build_connection_hash(api_version=nil)
54
60
  conn_hash = Hash.new
55
- conn_hash[:api_endpoint] = "http#{@options[:ssl] ? "s" : ""}://#{@options[:host]}:#{@options[:port]}/api/#{api_version}"
61
+ conn_hash[:api_endpoint] = "http#{@options[:ssl] ? "s" : ""}://#{@options[:host]}:#{@options[:port]}/api/#{api_version||@current_version||""}"
56
62
  if @options[:http_proxy]
57
63
  conn_hash[:connection_options] ||= {}
58
64
  conn_hash[:connection_options][:proxy] = {
@@ -68,7 +74,8 @@ module Gzr
68
74
  }
69
75
  else
70
76
  conn_hash[:connection_options][:ssl] = {
71
- :verify => false
77
+ :verify => false,
78
+ :verify_mode => (OpenSSL::SSL::VERIFY_NONE)
72
79
  }
73
80
  end
74
81
  end
@@ -95,17 +102,45 @@ module Gzr
95
102
  conn_hash
96
103
  end
97
104
 
98
- def login(api_version)
105
+ def login(min_api_version=nil)
106
+ if (@options[:client_id].nil? && ENV["LOOKERSDK_CLIENT_ID"])
107
+ @options[:client_id] = ENV["LOOKERSDK_CLIENT_ID"]
108
+ end
109
+
110
+ if (@options[:client_secret].nil? && ENV["LOOKERSDK_CLIENT_SECRET"])
111
+ @options[:client_secret] = ENV["LOOKERSDK_CLIENT_SECRET"]
112
+ end
113
+
114
+ if (@options[:api_version].nil? && ENV["LOOKERSDK_API_VERSION"])
115
+ @options[:api_version] = ENV["LOOKERSDK_API_VERSION"]
116
+ end
117
+
118
+ if (@options[:verify_ssl] && ENV["LOOKERSDK_VERIFY_SSL"])
119
+ @options[:verify_ssl] = !(/^f(alse)?$/i =~ ENV["LOOKERSDK_VERIFY_SSL"])
120
+ end
121
+
122
+ if ((@options[:host] == 'localhost') && ENV["LOOKERSDK_BASE_URL"])
123
+ base_url = ENV["LOOKERSDK_BASE_URL"]
124
+ @options[:ssl] = !!(/^https/ =~ base_url)
125
+ @options[:host] = /^https?:\/\/([^:\/]+)/.match(base_url)[1]
126
+ md = /:([0-9]+)\/?$/.match(base_url)
127
+ @options[:port] = md[1] if md
128
+ end
129
+
130
+ say_ok("using options #{@options.select { |k,v| k != 'client_secret' }.map { |k,v| "#{k}=>#{v}" }}") if @options[:debug]
131
+
99
132
  @secret = nil
100
- versions = nil
101
- current_version = nil
102
133
  begin
103
134
  conn_hash = build_connection_hash
104
135
 
105
136
  sawyer_options = {
106
137
  :links_parser => Sawyer::LinkParsers::Simple.new,
107
138
  :serializer => LookerSDK::Client::Serializer.new(JSON),
108
- :faraday => Faraday.new(conn_hash[:connection_options])
139
+ :faraday => Faraday.new(conn_hash[:connection_options]) do |conn|
140
+ if @options[:persistent]
141
+ conn.adapter :net_http_persistent
142
+ end
143
+ end
109
144
  }
110
145
 
111
146
  endpoint = conn_hash[:api_endpoint]
@@ -119,8 +154,8 @@ module Gzr
119
154
 
120
155
  begin
121
156
  versions_response = agent.call(:get,"/versions")
122
- versions = versions_response.data.supported_versions
123
- current_version = versions_response.data.current_version
157
+ @versions = versions_response.data.supported_versions
158
+ @current_version = versions_response.data.current_version.version
124
159
  rescue Faraday::SSLError => e
125
160
  raise Gzr::CLI::Error, "SSL Certificate could not be verified\nDo you need the --no-verify-ssl option or the --no-ssl option?"
126
161
  rescue Faraday::ConnectionFailed => cf
@@ -128,23 +163,30 @@ module Gzr
128
163
  rescue LookerSDK::NotFound => nf
129
164
  say_warning "endpoint #{root}/versions was not found"
130
165
  end
131
- versions.each do |v|
132
- @v3_1_available = true if v.version == "3.1"
133
- end
134
166
  end
135
167
 
136
- say_warning "API 3.1 available? #{v3_1_available?}" if @options[:debug]
168
+ say_warning "API current_version #{@current_version}" if @options[:debug]
169
+ say_warning "API versions #{@versions.map{|v| v.version}}" if @options[:debug]
170
+
171
+ raise Gzr::CLI::Error, "Operation requires API v#{min_api_version}, but user specified version #{@options[:api_version]}" unless sufficient_version?(@options[:api_version],min_api_version)
137
172
 
138
- raise Gzr::CLI::Error, "Operation requires API v3.1, but user specified a different version" if (api_version == "3.1") && @options[:api_version] && !("3.1" == @options[:api_version])
139
- raise Gzr::CLI::Error, "Operation requires API v3.1, which is not available from this host" if (api_version == "3.1") && !v3_1_available?
173
+ api_version = [min_api_version, @current_version].max
174
+ raise Gzr::CLI::Error, "Operation requires API v#{api_version}, which is not available from this host" if api_version && !@versions.any? {|v| v.version == api_version}
175
+ raise Gzr::CLI::Error, "User specified API v#{@options[:api_version]}, which is not available from this host" if @options[:api_version] && !@versions.any? {|v| v.version == @options[:api_version]}
140
176
 
141
- conn_hash = build_connection_hash(@options[:api_version] || current_version.version)
177
+ conn_hash = build_connection_hash(@options[:api_version] || api_version)
142
178
  @secret = nil
143
179
 
144
180
  say_ok("connecting to #{conn_hash.map { |k,v| "#{k}=>#{(k == :client_secret) ? '*********' : v}" }}") if @options[:debug]
145
181
 
146
182
  begin
147
- @sdk = LookerSDK::Client.new(conn_hash) unless @sdk
183
+ faraday = Faraday.new(conn_hash[:connection_options]) do |conn|
184
+ if @options[:persistent]
185
+ conn.adapter :net_http_persistent
186
+ end
187
+ end
188
+ @sdk = LookerSDK::Client.new(conn_hash.merge(faraday: faraday)) unless @sdk
189
+
148
190
  say_ok "check for connectivity: #{@sdk.alive?}" if @options[:debug]
149
191
  say_ok "verify authentication: #{@sdk.authenticated?}" if @options[:debug]
150
192
  rescue LookerSDK::Unauthorized => e
@@ -200,10 +242,10 @@ module Gzr
200
242
  end
201
243
  end
202
244
 
203
- def with_session(api_version="3.0")
245
+ def with_session(min_api_version="3.0")
204
246
  return nil unless block_given?
205
247
  begin
206
- login(api_version) unless @sdk
248
+ login(min_api_version) unless @sdk
207
249
  yield
208
250
  rescue LookerSDK::Error => e
209
251
  say_error e.errors if e.respond_to?(:errors) && e.errors
data/lib/gzr/version.rb CHANGED
@@ -20,5 +20,5 @@
20
20
  # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
22
  module Gzr
23
- VERSION = "0.2.43"
23
+ VERSION = "0.2.48"
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gazer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.43
4
+ version: 0.2.48
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike DeAngelo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-06 00:00:00.000000000 Z
11
+ date: 2021-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-reader
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.0
19
+ version: 0.9.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.0
26
+ version: 0.9.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tty-table
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.0
33
+ version: 0.12.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.10.0
40
+ version: 0.12.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: tty-tree
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.0
47
+ version: 0.4.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.0
54
+ version: 0.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pastel
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.7.2
61
+ version: 0.8.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.7.2
68
+ version: 0.8.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: thor
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.20.0
75
+ version: 1.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: 0.20.0
82
+ version: 1.1.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: netrc
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,82 +114,86 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.0.7
117
+ version: 0.1.1
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: 0.0.7
124
+ version: 0.1.1
125
125
  - !ruby/object:Gem::Dependency
126
- name: bundler
126
+ name: net-http-persistent
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.17'
132
- type: :development
131
+ version: 4.0.1
132
+ type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.17'
138
+ version: 4.0.1
139
139
  - !ruby/object:Gem::Dependency
140
- name: rake
140
+ name: bundler
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 12.3.3
145
+ version: 2.2.10
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 12.3.3
152
+ version: 2.2.10
153
153
  - !ruby/object:Gem::Dependency
154
- name: rspec
154
+ name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '3.0'
159
+ version: 12.3.3
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '3.0'
166
+ version: 12.3.3
167
167
  - !ruby/object:Gem::Dependency
168
- name: tty
168
+ name: rspec
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '0.8'
173
+ version: '3.0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '0.8'
180
+ version: '3.0'
181
181
  description: Command line tool to manage the content of a Looker instance.
182
182
  email:
183
- - deangelo@looker.com
183
+ - drstrangelove@google.com
184
184
  executables:
185
185
  - gzr
186
186
  extensions: []
187
187
  extra_rdoc_files: []
188
188
  files:
189
+ - ".github/scripts/wait_for_looker.sh"
190
+ - ".github/workflows/release.yml"
191
+ - ".github/workflows/ruby-ci.yml"
189
192
  - ".gitignore"
190
193
  - ".rspec"
191
194
  - ".ruby-version"
192
195
  - ".travis.yml"
196
+ - CHANGELOG.md
193
197
  - CODE_OF_CONDUCT.md
194
198
  - CONTRIBUTING.md
195
199
  - Gemfile