tembin 0.0.3 → 0.1.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c63669bcb90b9c65de1839b08f22dcbc284e9406
4
- data.tar.gz: 9995739c86196ff369e7ec2e8a166f943cb4f9c9
3
+ metadata.gz: fe6992e60d06771217520c865abb20dae19d6a7a
4
+ data.tar.gz: f5f3ac9a0633d1b864cee1507e831744966a3b01
5
5
  SHA512:
6
- metadata.gz: 38204adaff46a5e91e5d46fd0bd5df20578a63a9df4050231822f6c5758d51d6e23d887d9372f375622e0280cb29d27e06798ebe5f8d5e73a50cd184ea454129
7
- data.tar.gz: f68ef8befa076ea997fd0b2f89adf0b4a4f19da0bec8026c4d66affadc9d6e12f912abf259151f99a6cfa5ff293d5ac7b2a27debdf5299206afa8ccbddce8023
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', '0.1.0.alpha2'
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 --pre
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
@@ -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!(local.attributes[:sql])
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
@@ -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: {})
@@ -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)['results'].map { |j| self.new(j) }
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.request_my_query(page_option = {})
33
- response = Tembin::Redash::Client.current.get('/api/queries/my', params: page_option)
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
@@ -7,6 +7,7 @@ module Tembin::Redash
7
7
  @config ||= {
8
8
  api_key: nil,
9
9
  host: nil,
10
+ authorized_user_email: nil,
10
11
  }
11
12
  end
12
13
  end
@@ -1,3 +1,3 @@
1
1
  module Tembin
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0.alpha1"
3
3
  end
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.3
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: 2017-01-19 00:00:00.000000000 Z
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: '0'
173
+ version: 1.3.1
174
174
  requirements: []
175
175
  rubyforge_project:
176
176
  rubygems_version: 2.4.5