redash_exporter 0.2.0 → 0.3.0
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +25 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -2
- data/Gemfile +3 -2
- data/Gemfile.lock +43 -7
- data/README.md +4 -2
- data/Rakefile +3 -1
- data/bin/console +1 -0
- data/exe/redash_exporter +23 -2
- data/lib/redash_exporter.rb +2 -0
- data/lib/redash_exporter/exporter.rb +33 -0
- data/lib/redash_exporter/fetcher.rb +59 -0
- data/lib/redash_exporter/queries.rb +16 -48
- data/lib/redash_exporter/query.rb +25 -31
- data/lib/redash_exporter/version.rb +3 -1
- data/redash_exporter.gemspec +12 -8
- metadata +34 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9df27c1739f533ddd0180af3c1147d81de24e1a19ed2ef72823fbafe537aad01
|
4
|
+
data.tar.gz: 0f6c00ae307b88fe96c2b7335d6ab3d90926b703028c5617b0b7008f2dc08172
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 459db10a244e260a466ddd3c33ddcec5d5158fca5c7a4919e70f51cdf91ed6763da87704baf72e6bea94ec5cbdf4e038eb778e1d4a474c63596ae427da90e86f
|
7
|
+
data.tar.gz: 0a0660d9d9bae7edd4abfe652514f2735cad7bfa3d6f21c8d0b0cc6f0afe46c8d63e9a996693cf422c8748bf81272b179ca2f2a9b8592453c6bca1db2829bc1b
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
Style/AsciiComments:
|
2
|
+
Enabled: false
|
3
|
+
|
4
|
+
Style/Documentation:
|
5
|
+
Enabled: false
|
6
|
+
|
7
|
+
Style/ClassVars:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
Style/FrozenStringLiteralComment:
|
11
|
+
Exclude:
|
12
|
+
- 'exe/**/*'
|
13
|
+
|
14
|
+
Style/StringLiterals:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
Metrics/BlockLength:
|
18
|
+
Exclude:
|
19
|
+
- 'spec/**/*'
|
20
|
+
|
21
|
+
Metrics/LineLength:
|
22
|
+
Max: 120
|
23
|
+
|
24
|
+
Metrics/MethodLength:
|
25
|
+
Max: 20
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.3
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
redash_exporter (0.
|
5
|
-
activesupport
|
6
|
-
zaru
|
4
|
+
redash_exporter (0.3.0)
|
5
|
+
activesupport (~> 5.2.3)
|
6
|
+
zaru (~> 0.1.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
@@ -13,12 +13,27 @@ GEM
|
|
13
13
|
i18n (>= 0.7, < 2)
|
14
14
|
minitest (~> 5.1)
|
15
15
|
tzinfo (~> 1.1)
|
16
|
+
ast (2.4.0)
|
16
17
|
byebug (11.0.1)
|
17
18
|
concurrent-ruby (1.1.5)
|
19
|
+
coveralls (0.8.22)
|
20
|
+
json (>= 1.8, < 3)
|
21
|
+
simplecov (~> 0.16.1)
|
22
|
+
term-ansicolor (~> 1.3)
|
23
|
+
thor (~> 0.19.4)
|
24
|
+
tins (~> 1.6)
|
18
25
|
diff-lcs (1.3)
|
26
|
+
docile (1.3.1)
|
19
27
|
i18n (1.6.0)
|
20
28
|
concurrent-ruby (~> 1.0)
|
29
|
+
jaro_winkler (1.5.2)
|
30
|
+
json (2.2.0)
|
21
31
|
minitest (5.11.3)
|
32
|
+
parallel (1.17.0)
|
33
|
+
parser (2.6.2.1)
|
34
|
+
ast (~> 2.4.0)
|
35
|
+
psych (3.1.0)
|
36
|
+
rainbow (3.0.0)
|
22
37
|
rake (10.5.0)
|
23
38
|
rspec (3.8.0)
|
24
39
|
rspec-core (~> 3.8.0)
|
@@ -33,20 +48,41 @@ GEM
|
|
33
48
|
diff-lcs (>= 1.2.0, < 2.0)
|
34
49
|
rspec-support (~> 3.8.0)
|
35
50
|
rspec-support (3.8.0)
|
51
|
+
rubocop (0.67.2)
|
52
|
+
jaro_winkler (~> 1.5.1)
|
53
|
+
parallel (~> 1.10)
|
54
|
+
parser (>= 2.5, != 2.5.1.1)
|
55
|
+
psych (>= 3.1.0)
|
56
|
+
rainbow (>= 2.2.2, < 4.0)
|
57
|
+
ruby-progressbar (~> 1.7)
|
58
|
+
unicode-display_width (>= 1.4.0, < 1.6)
|
59
|
+
ruby-progressbar (1.10.0)
|
60
|
+
simplecov (0.16.1)
|
61
|
+
docile (~> 1.1)
|
62
|
+
json (>= 1.8, < 3)
|
63
|
+
simplecov-html (~> 0.10.0)
|
64
|
+
simplecov-html (0.10.2)
|
65
|
+
term-ansicolor (1.7.1)
|
66
|
+
tins (~> 1.0)
|
67
|
+
thor (0.19.4)
|
36
68
|
thread_safe (0.3.6)
|
69
|
+
tins (1.20.2)
|
37
70
|
tzinfo (1.2.5)
|
38
71
|
thread_safe (~> 0.1)
|
39
|
-
|
72
|
+
unicode-display_width (1.5.0)
|
73
|
+
zaru (0.1.0)
|
40
74
|
|
41
75
|
PLATFORMS
|
42
76
|
ruby
|
43
77
|
|
44
78
|
DEPENDENCIES
|
45
|
-
bundler
|
46
|
-
byebug
|
79
|
+
bundler
|
80
|
+
byebug (~> 11.0.1)
|
81
|
+
coveralls
|
47
82
|
rake (~> 10.0)
|
48
83
|
redash_exporter!
|
49
84
|
rspec (~> 3.0)
|
85
|
+
rubocop (~> 0.67.2)
|
50
86
|
|
51
87
|
BUNDLED WITH
|
52
|
-
|
88
|
+
1.17.2
|
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
[](https://badge.fury.io/rb/redash_exporter)
|
2
|
+
[](https://travis-ci.org/oieioi/redash_exporter)
|
3
|
+
[](https://coveralls.io/github/oieioi/redash_exporter?branch=master)
|
2
4
|
|
3
5
|
# RedashExporter
|
4
6
|
|
@@ -26,9 +28,9 @@ Shell
|
|
26
28
|
|
27
29
|
$ redash_exporter --redash-url "http://your-redash-domain.example/<slug>" --api-key="your_api_key"
|
28
30
|
|
29
|
-
With destination path
|
31
|
+
With destination path and force to overwrite existed files
|
30
32
|
|
31
|
-
$ redash_exporter --redash-url "http://your-redash-domain.example/<slug>" --api-key="your_api_key" --dest=destination_directory
|
33
|
+
$ redash_exporter --redash-url "http://your-redash-domain.example/<slug>" --api-key="your_api_key" --dest=destination_directory --overwrite
|
32
34
|
|
33
35
|
in Ruby Script
|
34
36
|
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/exe/redash_exporter
CHANGED
@@ -3,7 +3,28 @@
|
|
3
3
|
require 'redash_exporter'
|
4
4
|
require 'optparse'
|
5
5
|
|
6
|
-
params = ARGV.getopts('',
|
6
|
+
params = ARGV.getopts('',
|
7
|
+
'redash-url:',
|
8
|
+
'api-key:',
|
9
|
+
"dest:#{Dir.pwd}",
|
10
|
+
"overwrite",
|
11
|
+
"version")
|
12
|
+
|
13
|
+
if params['version']
|
14
|
+
puts RedashExporter::VERSION
|
15
|
+
return
|
16
|
+
end
|
17
|
+
|
18
|
+
if params['redash-url'].nil?
|
19
|
+
puts "--redash-url required!"
|
20
|
+
return
|
21
|
+
end
|
22
|
+
|
23
|
+
if params['api-key'].nil?
|
24
|
+
puts "--api-key required!"
|
25
|
+
return
|
26
|
+
end
|
27
|
+
|
7
28
|
queries = RedashExporter::Queries.new(params['redash-url'], params['api-key'], params['dest'])
|
8
29
|
queries.fetch
|
9
|
-
queries.export_all
|
30
|
+
queries.export_all(force: params['overwrite'])
|
data/lib/redash_exporter.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RedashExporter
|
4
|
+
module Exporter
|
5
|
+
module_function
|
6
|
+
|
7
|
+
# Export a file.
|
8
|
+
#
|
9
|
+
# @param file_path [String]
|
10
|
+
# @param content [String]
|
11
|
+
# @param option [Hash] force: force to overwrite file. default false.
|
12
|
+
def export(file_path, content, option = {})
|
13
|
+
unless should_overwrite?(file_path, option)
|
14
|
+
puts "Not create #{file_path}."
|
15
|
+
return
|
16
|
+
end
|
17
|
+
|
18
|
+
File.open(file_path, 'w') do |file|
|
19
|
+
file.print content
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def should_overwrite?(path, option = {})
|
24
|
+
return true if option[:force]
|
25
|
+
return true unless File.exist?(path)
|
26
|
+
|
27
|
+
puts "Overwrite #{path}? [yes(y), no(n)]"
|
28
|
+
should_overwrite = %w[yes y].include?(STDIN.gets.strip)
|
29
|
+
|
30
|
+
should_overwrite
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'net/https'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module RedashExporter
|
7
|
+
class Fetcher
|
8
|
+
def initialize(url, api_key, params = {})
|
9
|
+
@url = url.gsub(%r{/$}, '')
|
10
|
+
@api_key = api_key
|
11
|
+
@params = params
|
12
|
+
end
|
13
|
+
|
14
|
+
def fetch
|
15
|
+
result = []
|
16
|
+
has_more = true
|
17
|
+
|
18
|
+
while has_more
|
19
|
+
body = request("#{@url}?#{@params.to_param}")
|
20
|
+
|
21
|
+
# old web API returns all queries as an array
|
22
|
+
return body if body.is_a?(Array)
|
23
|
+
|
24
|
+
# new web API
|
25
|
+
result.push(*body[:results])
|
26
|
+
|
27
|
+
has_more = @params[:page].present? && result.size < body[:count]
|
28
|
+
|
29
|
+
# wait for next request
|
30
|
+
if has_more
|
31
|
+
@params[:page] += 1
|
32
|
+
sleep 0.5
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
result
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def request(url)
|
42
|
+
uri = URI.parse(url)
|
43
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
44
|
+
http.use_ssl = uri.scheme == 'https'
|
45
|
+
req = Net::HTTP::Get.new(uri.to_s, header)
|
46
|
+
res = http.request(req)
|
47
|
+
|
48
|
+
raise "Failed to fetch #{uri}" unless res.is_a?(Net::HTTPSuccess)
|
49
|
+
|
50
|
+
JSON.parse(res.body, symbolize_names: true)
|
51
|
+
end
|
52
|
+
|
53
|
+
def header
|
54
|
+
{
|
55
|
+
Authorization: "Key #{@api_key}"
|
56
|
+
}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -1,73 +1,41 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
3
|
require 'forwardable'
|
4
4
|
require 'active_support'
|
5
5
|
require 'active_support/core_ext'
|
6
|
+
require 'redash_exporter/fetcher'
|
6
7
|
require 'redash_exporter/query'
|
7
8
|
|
8
9
|
module RedashExporter
|
9
10
|
class Queries
|
10
11
|
extend Forwardable
|
11
12
|
include Enumerable
|
12
|
-
attr_accessor :api_key, :
|
13
|
+
attr_accessor :api_key, :redash_url, :queries
|
13
14
|
def_delegators :@queries, :each, :size
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
ENDPOINT = "/api/queries"
|
17
|
+
|
18
|
+
def initialize(redash_url, api_key, dest = "#{__dir__}/../../dest")
|
19
|
+
@redash_url = redash_url.gsub(%r{/$}, '')
|
18
20
|
@api_key = api_key
|
19
21
|
@dest = dest
|
20
22
|
@queries = []
|
23
|
+
@fetcher = Fetcher.new("#{@redash_url}#{ENDPOINT}", @api_key, page: 1, page_size: 250)
|
24
|
+
end
|
25
|
+
|
26
|
+
def fetch
|
27
|
+
@queries = @fetcher.fetch.map { |q| Query.new(q) }
|
21
28
|
end
|
22
29
|
|
23
|
-
def export_all
|
30
|
+
def export_all(force: false)
|
24
31
|
dest_dir_path = File.expand_path(@dest)
|
25
32
|
puts "Export SQL Files to #{dest_dir_path}"
|
26
33
|
|
27
34
|
@queries.each do |query|
|
28
|
-
query.export(dest_dir_path)
|
35
|
+
query.export(dir: dest_dir_path, force: force)
|
29
36
|
end
|
30
|
-
puts "done. Check out #{dest_dir_path}"
|
31
|
-
end
|
32
|
-
|
33
|
-
def fetch
|
34
|
-
uri = URI.parse("#{@url}api/queries")
|
35
|
-
header = {
|
36
|
-
Authorization: "Key #{@api_key}"
|
37
|
-
}
|
38
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
39
|
-
http.use_ssl = true if uri.scheme == 'https'
|
40
37
|
|
41
|
-
|
42
|
-
page_size = 250
|
43
|
-
|
44
|
-
loop do
|
45
|
-
uri.query = "page=#{page}&page_size=#{page_size}"
|
46
|
-
req = Net::HTTP::Get.new(uri.to_s, header)
|
47
|
-
res = http.request(req)
|
48
|
-
body = JSON.parse(res.body, symbolize_names: true)
|
49
|
-
|
50
|
-
raise "Failed to fetch queries. URI: #{uri}" unless res.is_a?(Net::HTTPSuccess)
|
51
|
-
|
52
|
-
# old API returns all queries as an array
|
53
|
-
if body.is_a?(Array)
|
54
|
-
@queries = body.map { |q| Query.new(q) }
|
55
|
-
break
|
56
|
-
end
|
57
|
-
|
58
|
-
# new API
|
59
|
-
@queries.push(*body[:results].map { |q| Query.new(q) })
|
60
|
-
|
61
|
-
# next page
|
62
|
-
if @queries.size < body[:count]
|
63
|
-
page += 1
|
64
|
-
# wait...
|
65
|
-
sleep 0.5
|
66
|
-
next
|
67
|
-
end
|
68
|
-
|
69
|
-
break
|
70
|
-
end
|
38
|
+
puts "Done. Check out #{dest_dir_path}"
|
71
39
|
end
|
72
40
|
|
73
41
|
def reject!(*args, &block)
|
@@ -1,16 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_support'
|
2
4
|
require 'active_support/core_ext'
|
3
|
-
require 'forwardable'
|
4
5
|
require 'zaru'
|
6
|
+
require 'redash_exporter/exporter'
|
5
7
|
|
6
8
|
module RedashExporter
|
7
9
|
class Query
|
8
|
-
|
9
|
-
|
10
|
+
attr_accessor :sort_key, :data
|
11
|
+
include Comparable
|
10
12
|
|
11
13
|
def initialize(raw)
|
12
|
-
@data = raw.
|
13
|
-
@sort_key = :
|
14
|
+
@data = raw.deep_symbolize_keys
|
15
|
+
@sort_key = :id
|
14
16
|
end
|
15
17
|
|
16
18
|
def [](key)
|
@@ -18,37 +20,29 @@ module RedashExporter
|
|
18
20
|
end
|
19
21
|
|
20
22
|
def to_s
|
21
|
-
<<~
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
23
|
+
<<~SQL
|
24
|
+
/**
|
25
|
+
* #{@data[:name]}
|
26
|
+
*
|
27
|
+
* created at #{@data[:created_at]}
|
28
|
+
* last updated at #{@data[:updated_at]}
|
29
|
+
* created by #{@data.dig(:user, :name)} (#{@data.dig(:user, :email)})
|
30
|
+
**/
|
31
|
+
#{@data[:query]}
|
32
|
+
SQL
|
31
33
|
end
|
32
34
|
|
33
|
-
def
|
34
|
-
@data
|
35
|
+
def to_json(*_args)
|
36
|
+
JSON.generate(@data)
|
35
37
|
end
|
36
38
|
|
37
|
-
def
|
38
|
-
|
39
|
+
def <=>(other)
|
40
|
+
self[@sort_key] <=> other[@sort_key]
|
41
|
+
end
|
39
42
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
unless ok
|
44
|
-
puts "Not create #{path}."
|
45
|
-
return
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
File.open(path, 'w') do |file|
|
50
|
-
file.print to_s
|
51
|
-
end
|
43
|
+
def export(dir: '.', force: false, **)
|
44
|
+
path = File.expand_path("#{dir}/#{file_name}")
|
45
|
+
Exporter.export(path, to_s, force: force)
|
52
46
|
end
|
53
47
|
|
54
48
|
private
|
data/redash_exporter.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require "redash_exporter/version"
|
4
6
|
|
@@ -8,24 +10,26 @@ Gem::Specification.new do |spec|
|
|
8
10
|
spec.authors = ["oieioi"]
|
9
11
|
spec.email = ["atsuinatsu.samuifuyu@gmail.com"]
|
10
12
|
|
11
|
-
spec.summary =
|
12
|
-
spec.description =
|
13
|
+
spec.summary = 'Export Redash queries as files'
|
14
|
+
spec.description = 'Export Redash queries as files'
|
13
15
|
spec.homepage = "https://github.com/oieioi/redash_exporter"
|
14
16
|
spec.license = "MIT"
|
15
17
|
|
16
18
|
# Specify which files should be added to the gem when it is released.
|
17
19
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
18
|
-
spec.files = Dir.chdir(File.expand_path(
|
20
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
19
21
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
22
|
end
|
21
23
|
spec.bindir = "exe"
|
22
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
25
|
spec.require_paths = ["lib"]
|
24
26
|
|
25
|
-
spec.add_dependency "activesupport"
|
26
|
-
spec.add_dependency "zaru"
|
27
|
-
|
27
|
+
spec.add_dependency "activesupport", "~> 5.2.3"
|
28
|
+
spec.add_dependency "zaru", "~> 0.1.0"
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler"
|
31
|
+
spec.add_development_dependency "byebug", "~> 11.0.1"
|
28
32
|
spec.add_development_dependency "rake", "~> 10.0"
|
29
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
|
-
spec.add_development_dependency "
|
34
|
+
spec.add_development_dependency "rubocop", "~> 0.67.2"
|
31
35
|
end
|
metadata
CHANGED
@@ -1,37 +1,51 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redash_exporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oieioi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 5.2.3
|
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:
|
26
|
+
version: 5.2.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: zaru
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.1.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.1.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0'
|
34
|
-
type: :
|
48
|
+
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
@@ -39,19 +53,19 @@ dependencies:
|
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
56
|
+
name: byebug
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 11.0.1
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 11.0.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,19 +95,19 @@ dependencies:
|
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '3.0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: rubocop
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- - "
|
101
|
+
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
103
|
+
version: 0.67.2
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- - "
|
108
|
+
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
110
|
+
version: 0.67.2
|
97
111
|
description: Export Redash queries as files
|
98
112
|
email:
|
99
113
|
- atsuinatsu.samuifuyu@gmail.com
|
@@ -104,6 +118,8 @@ extra_rdoc_files: []
|
|
104
118
|
files:
|
105
119
|
- ".gitignore"
|
106
120
|
- ".rspec"
|
121
|
+
- ".rubocop.yml"
|
122
|
+
- ".ruby-version"
|
107
123
|
- ".travis.yml"
|
108
124
|
- CODE_OF_CONDUCT.md
|
109
125
|
- Gemfile
|
@@ -116,6 +132,8 @@ files:
|
|
116
132
|
- dest/.keep
|
117
133
|
- exe/redash_exporter
|
118
134
|
- lib/redash_exporter.rb
|
135
|
+
- lib/redash_exporter/exporter.rb
|
136
|
+
- lib/redash_exporter/fetcher.rb
|
119
137
|
- lib/redash_exporter/queries.rb
|
120
138
|
- lib/redash_exporter/query.rb
|
121
139
|
- lib/redash_exporter/version.rb
|
@@ -139,8 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
157
|
- !ruby/object:Gem::Version
|
140
158
|
version: '0'
|
141
159
|
requirements: []
|
142
|
-
|
143
|
-
rubygems_version: 3.0.0.beta3
|
160
|
+
rubygems_version: 3.0.3
|
144
161
|
signing_key:
|
145
162
|
specification_version: 4
|
146
163
|
summary: Export Redash queries as files
|