tembin 0.0.3 → 0.1.0.alpha1
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/README.md +3 -2
- data/lib/tembin/applyer.rb +2 -2
- data/lib/tembin/cli.rb +4 -0
- data/lib/tembin/redash/client.rb +3 -2
- data/lib/tembin/redash/query.rb +3 -28
- data/lib/tembin/redash.rb +1 -0
- data/lib/tembin/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe6992e60d06771217520c865abb20dae19d6a7a
|
4
|
+
data.tar.gz: f5f3ac9a0633d1b864cee1507e831744966a3b01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64e694681ae99d324072cc5ed6e696a5f35454a145169d1965afc3debe8a51e64c05bdcf7c5237c2f99d80124bc174f8b2ba4221c8936de7f778a3ab57ebfb24
|
7
|
+
data.tar.gz: 7376a6f653902418af28e7cd9509532eb7e43bcbcdd13ef4c980c0b11cdcb968d502bf7bb1b0e3631d5be2b61bdb6b2edda43acaedb8bce9049d68c10c4b287e
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ Welcome to your new gem! In this directory, you'll find the files you need to be
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'tembin'
|
10
|
+
gem 'tembin'
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -16,7 +16,7 @@ And then execute:
|
|
16
16
|
|
17
17
|
Or install it yourself as:
|
18
18
|
|
19
|
-
$ gem install tembin
|
19
|
+
$ gem install tembin
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
@@ -25,6 +25,7 @@ Or install it yourself as:
|
|
25
25
|
```
|
26
26
|
host: 'https://your.redash.host'
|
27
27
|
api_key: <%= ENV['REDASH_API_KEY'] %>
|
28
|
+
authorized_user_email: 'your-account@email.com'
|
28
29
|
```
|
29
30
|
|
30
31
|
### Export
|
data/lib/tembin/applyer.rb
CHANGED
@@ -12,7 +12,7 @@ class Tembin::Applyer
|
|
12
12
|
@out = out
|
13
13
|
end
|
14
14
|
|
15
|
-
def run
|
15
|
+
def run(dry_run: true)
|
16
16
|
remote_queries = Tembin::Redash::Query.created_by_me
|
17
17
|
remote_queries.each do |remote_query|
|
18
18
|
@out.puts(h.color("#{remote_query.name}", :green))
|
@@ -62,7 +62,7 @@ class Tembin::Applyer
|
|
62
62
|
if @dry_run
|
63
63
|
@out.puts(Diffy::Diff.new(remote.sql, local.attributes[:sql]).to_s(:color))
|
64
64
|
else
|
65
|
-
remote.update!(
|
65
|
+
remote.update!(element.attributes[:sql])
|
66
66
|
@out.puts(h.color(" --> updated.", :green))
|
67
67
|
end
|
68
68
|
else
|
data/lib/tembin/cli.rb
CHANGED
@@ -53,5 +53,9 @@ class Tembin::CLI < Thor
|
|
53
53
|
if Tembin::Redash.config['api_key'].nil?
|
54
54
|
raise ArgumentError, "Re:dash api key is empty. Please set Tembin::Redash.config['api_key']"
|
55
55
|
end
|
56
|
+
|
57
|
+
if Tembin::Redash.config['authorized_user_email'].nil?
|
58
|
+
raise ArgumentError, "Re:dash user login email is empty. Please set Tembin::Redash.config['authorized_user_email']"
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
data/lib/tembin/redash/client.rb
CHANGED
@@ -5,11 +5,12 @@ module Tembin::Redash
|
|
5
5
|
class RequestNotSucceedError < StandardError; end
|
6
6
|
|
7
7
|
def self.current
|
8
|
-
Thread.current[:__tembin__redash_client__] ||= new(Tembin::Redash.config['api_key'])
|
8
|
+
Thread.current[:__tembin__redash_client__] ||= new(Tembin::Redash.config['api_key'], authorized_user_email: Tembin::Redash.config['authorized_user_email'])
|
9
9
|
end
|
10
10
|
|
11
|
-
def initialize(api_key)
|
11
|
+
def initialize(api_key, authorized_user_email: nil)
|
12
12
|
@api_key = api_key
|
13
|
+
@authorized_user_email = authorized_user_email
|
13
14
|
end
|
14
15
|
|
15
16
|
def get(path, params: {})
|
data/lib/tembin/redash/query.rb
CHANGED
@@ -3,40 +3,15 @@ require 'diffy'
|
|
3
3
|
|
4
4
|
module Tembin::Redash
|
5
5
|
class Query
|
6
|
-
class RequestNotSucceedError < StandardError; end
|
7
|
-
|
8
6
|
def self.all
|
9
7
|
response = Tembin::Redash::Client.current.get('/api/queries')
|
10
8
|
raise RequestNotSucceedError, response.body if !response.success?
|
11
|
-
JSON.parse(response.body)
|
12
|
-
end
|
13
|
-
|
14
|
-
PAGE_OPTION = {
|
15
|
-
page: 1,
|
16
|
-
page_size: 5,
|
17
|
-
}.freeze
|
18
|
-
def self.created_by_me(fetch_all_page: true)
|
19
|
-
if !fetch_all_page
|
20
|
-
return request_my_query(PAGE_OPTION)['results'].map { |j| self.new(j) }
|
21
|
-
end
|
22
|
-
responses = []
|
23
|
-
response = request_my_query(PAGE_OPTION)
|
24
|
-
responses << response
|
25
|
-
while response['count'] > (response['page'] * response['page_size'])
|
26
|
-
response = request_my_query(page: response['page'] + 1, page_size: response['page_size'])
|
27
|
-
responses << response
|
28
|
-
end
|
29
|
-
responses.flat_map { |r| r['results'].map { |j| new(j) } }
|
9
|
+
JSON.parse(response.body).map { |j| self.new(j) }
|
30
10
|
end
|
31
11
|
|
32
|
-
def self.
|
33
|
-
|
34
|
-
if !response.success?
|
35
|
-
raise RequestNotSucceedError, response.body
|
36
|
-
end
|
37
|
-
JSON.parse(response.body)
|
12
|
+
def self.created_by_me
|
13
|
+
all.select { |q| q.author_email == Tembin::Redash.config['authorized_user_email'] }
|
38
14
|
end
|
39
|
-
private_class_method :request_my_query
|
40
15
|
|
41
16
|
INITIAL_DATA_SOURCE_ID = 1
|
42
17
|
def self.create(name, sql)
|
data/lib/tembin/redash.rb
CHANGED
data/lib/tembin/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tembin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.1.0.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takatoshi Maeda
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -168,9 +168,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
168
|
version: '0'
|
169
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - ">"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 1.3.1
|
174
174
|
requirements: []
|
175
175
|
rubyforge_project:
|
176
176
|
rubygems_version: 2.4.5
|