gazer 0.2.43 → 0.2.48
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/scripts/wait_for_looker.sh +35 -0
- data/.github/workflows/release.yml +45 -0
- data/.github/workflows/ruby-ci.yml +60 -0
- data/.travis.yml +2 -2
- data/CHANGELOG.md +15 -0
- data/CODE_OF_CONDUCT.md +58 -39
- data/CONTRIBUTING.md +21 -21
- data/Gemfile +1 -4
- data/Gemfile.lock +67 -112
- data/README.md +1 -2
- data/gzr.gemspec +9 -9
- data/lib/gzr/cli.rb +2 -1
- data/lib/gzr/command.rb +4 -4
- data/lib/gzr/commands/attribute/ls.rb +1 -1
- data/lib/gzr/commands/connection/dialects.rb +1 -1
- data/lib/gzr/commands/connection/ls.rb +1 -1
- data/lib/gzr/commands/dashboard/cat.rb +6 -1
- data/lib/gzr/commands/dashboard.rb +2 -0
- data/lib/gzr/commands/group/ls.rb +1 -1
- data/lib/gzr/commands/group/member_groups.rb +1 -1
- data/lib/gzr/commands/group/member_users.rb +1 -1
- data/lib/gzr/commands/look/cat.rb +6 -1
- data/lib/gzr/commands/look.rb +2 -0
- data/lib/gzr/commands/model/ls.rb +1 -1
- data/lib/gzr/commands/permissions/ls.rb +1 -1
- data/lib/gzr/commands/plan/failures.rb +1 -1
- data/lib/gzr/commands/plan/ls.rb +1 -1
- data/lib/gzr/commands/role/group_ls.rb +1 -1
- data/lib/gzr/commands/role/ls.rb +1 -1
- data/lib/gzr/commands/role/rm.rb +1 -1
- data/lib/gzr/commands/role/user_ls.rb +1 -1
- data/lib/gzr/commands/space/ls.rb +1 -1
- data/lib/gzr/commands/space/top.rb +1 -1
- data/lib/gzr/commands/user/ls.rb +1 -1
- data/lib/gzr/commands/user/me.rb +1 -1
- data/lib/gzr/modules/session.rb +63 -21
- data/lib/gzr/version.rb +1 -1
- metadata +34 -30
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
|
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
|
-
|
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
|
-
|
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
|
data/lib/gzr/commands/look.rb
CHANGED
@@ -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
|
data/lib/gzr/commands/plan/ls.rb
CHANGED
@@ -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
|
data/lib/gzr/commands/role/ls.rb
CHANGED
@@ -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
|
data/lib/gzr/commands/role/rm.rb
CHANGED
@@ -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
|
data/lib/gzr/commands/user/ls.rb
CHANGED
@@ -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
|
data/lib/gzr/commands/user/me.rb
CHANGED
@@ -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
|
data/lib/gzr/modules/session.rb
CHANGED
@@ -46,13 +46,19 @@ module Gzr
|
|
46
46
|
output.puts pastel.red data
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
|
-
|
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
|
-
|
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(
|
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
|
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
|
-
|
139
|
-
raise Gzr::CLI::Error, "Operation requires API
|
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] ||
|
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
|
-
|
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(
|
245
|
+
def with_session(min_api_version="3.0")
|
204
246
|
return nil unless block_given?
|
205
247
|
begin
|
206
|
-
login(
|
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
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
124
|
+
version: 0.1.1
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
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:
|
132
|
-
type: :
|
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:
|
138
|
+
version: 4.0.1
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: bundler
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
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:
|
152
|
+
version: 2.2.10
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: rake
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
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:
|
166
|
+
version: 12.3.3
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: rspec
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0
|
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
|
180
|
+
version: '3.0'
|
181
181
|
description: Command line tool to manage the content of a Looker instance.
|
182
182
|
email:
|
183
|
-
-
|
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
|