data_pitcher 0.1.2 → 0.1.3
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/Gemfile.lock +11 -11
- data/README.md +3 -1
- data/lib/data_pitcher/batch.rb +9 -3
- data/lib/data_pitcher/command.rb +4 -2
- data/lib/data_pitcher/spreadsheet.rb +8 -3
- data/lib/data_pitcher/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a297bdeb710a6ef6c3568c0e6c82cd1e1355acf0
|
4
|
+
data.tar.gz: 8e0c9397fa3b7d2420edeb8d1b2bd59f8a9e5be1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8680385889d52db50dc7790d9a97c3ea3244965c50feaca59b0a2a2bf46c38d7a613ecd28764d16e323497b1de54ac8747005fe84f528fbbf8423eaa7393932f
|
7
|
+
data.tar.gz: b8d4d33a5ec419c5e81b0bef15301d2c0bedac832b2a5d7493af62bf9d8644307cdf0dc5a045385fde084e2fa518dd6b5672fda940c9221edd940ff9d7fc9989
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
data_pitcher (0.1.
|
4
|
+
data_pitcher (0.1.3)
|
5
5
|
activerecord (>= 3.2)
|
6
6
|
google_drive
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activemodel (5.1.
|
12
|
-
activesupport (= 5.1.
|
13
|
-
activerecord (5.1.
|
14
|
-
activemodel (= 5.1.
|
15
|
-
activesupport (= 5.1.
|
11
|
+
activemodel (5.1.3)
|
12
|
+
activesupport (= 5.1.3)
|
13
|
+
activerecord (5.1.3)
|
14
|
+
activemodel (= 5.1.3)
|
15
|
+
activesupport (= 5.1.3)
|
16
16
|
arel (~> 8.0)
|
17
|
-
activesupport (5.1.
|
17
|
+
activesupport (5.1.3)
|
18
18
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
19
19
|
i18n (~> 0.7)
|
20
20
|
minitest (~> 5.1)
|
@@ -25,7 +25,7 @@ GEM
|
|
25
25
|
concurrent-ruby (1.0.5)
|
26
26
|
declarative (0.0.9)
|
27
27
|
declarative-option (0.1.0)
|
28
|
-
faraday (0.12.
|
28
|
+
faraday (0.12.2)
|
29
29
|
multipart-post (>= 1.2, < 3)
|
30
30
|
google-api-client (0.12.0)
|
31
31
|
addressable (~> 2.5, >= 2.5.1)
|
@@ -47,7 +47,7 @@ GEM
|
|
47
47
|
os (~> 0.9)
|
48
48
|
signet (~> 0.7)
|
49
49
|
httpclient (2.8.3)
|
50
|
-
i18n (0.8.
|
50
|
+
i18n (0.8.6)
|
51
51
|
jwt (1.5.6)
|
52
52
|
little-plugger (1.1.4)
|
53
53
|
logging (2.2.2)
|
@@ -58,7 +58,7 @@ GEM
|
|
58
58
|
mime-types-data (~> 3.2015)
|
59
59
|
mime-types-data (3.2016.0521)
|
60
60
|
mini_portile2 (2.2.0)
|
61
|
-
minitest (5.10.
|
61
|
+
minitest (5.10.3)
|
62
62
|
multi_json (1.12.1)
|
63
63
|
multipart-post (2.0.0)
|
64
64
|
nokogiri (1.8.0)
|
@@ -89,4 +89,4 @@ DEPENDENCIES
|
|
89
89
|
rake
|
90
90
|
|
91
91
|
BUNDLED WITH
|
92
|
-
1.
|
92
|
+
1.15.3
|
data/README.md
CHANGED
@@ -66,6 +66,7 @@ For example:
|
|
66
66
|
# config/data_pitcher.yml
|
67
67
|
data_pitcher:
|
68
68
|
- spreadsheet_key: 1QlOBVmsEau8EupE5Kj7AqoHLQTjInoq0GpwPkW7_WdU
|
69
|
+
worksheet_title: Sheet2 # Optional. Using the first worksheet if omitted
|
69
70
|
sql_path: <%= Rails.root.join('lib', 'sqls', 'conversion_rates.sql') %>
|
70
71
|
```
|
71
72
|
|
@@ -82,7 +83,8 @@ $ bundle exec rake data_pitcher:export:run
|
|
82
83
|
Or, you can manually execute sending data programmatically as follows:
|
83
84
|
|
84
85
|
```ruby
|
85
|
-
DataPitcher::Spreadsheet.new('<SPREADSHEET KEY>').replace_worksheet_with_query('<SQL QUERY STRING>')
|
86
|
+
DataPitcher::Spreadsheet.new('<SPREADSHEET KEY>').replace_worksheet_with_query('<SQL QUERY STRING>') # When using the first worksheet
|
87
|
+
DataPitcher::Spreadsheet.new('<SPREADSHEET KEY>', '<WORKSHEET TITLE>').replace_worksheet_with_query('<SQL QUERY STRING>')
|
86
88
|
```
|
87
89
|
|
88
90
|
### (Optionally) Check YAML definition
|
data/lib/data_pitcher/batch.rb
CHANGED
@@ -6,17 +6,23 @@ module DataPitcher
|
|
6
6
|
@yaml_path = yaml_path
|
7
7
|
end
|
8
8
|
|
9
|
-
def
|
9
|
+
def command_hashes
|
10
10
|
# TODO: 例外処理
|
11
11
|
YAML.load(ERB.new(File.read(@yaml_path)).result)['data_pitcher']
|
12
12
|
end
|
13
13
|
|
14
14
|
def execute(dry_run: true)
|
15
|
-
|
15
|
+
command_hashes.each.with_index(1) do |command_hash, index|
|
16
16
|
begin
|
17
17
|
result = false
|
18
18
|
elapsed_time = Benchmark.realtime do
|
19
|
-
result = DataPitcher::Command.new(
|
19
|
+
result = DataPitcher::Command.new(
|
20
|
+
spreadsheet_key: command_hash['spreadsheet_key'],
|
21
|
+
worksheet_title: command_hash['worksheet_title'],
|
22
|
+
sql_path: command_hash['sql_path'],
|
23
|
+
dry_run: dry_run,
|
24
|
+
index: index
|
25
|
+
).execute
|
20
26
|
end
|
21
27
|
if result
|
22
28
|
puts "##{index} command: sending completed. #{elapsed_time}s"
|
data/lib/data_pitcher/command.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module DataPitcher
|
2
2
|
class Command
|
3
|
-
def initialize(spreadsheet_key, sql_path
|
3
|
+
def initialize(spreadsheet_key:, worksheet_title: nil, sql_path:, dry_run: true, index: 1)
|
4
4
|
@spreadsheet_key = spreadsheet_key
|
5
|
+
@worksheet_title = worksheet_title
|
5
6
|
@sql_path = sql_path
|
6
7
|
@dry_run = dry_run
|
7
8
|
@index = index
|
@@ -30,7 +31,7 @@ module DataPitcher
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def spreadsheet
|
33
|
-
@spreadsheet ||= DataPitcher::Spreadsheet.new(@spreadsheet_key)
|
34
|
+
@spreadsheet ||= DataPitcher::Spreadsheet.new(@spreadsheet_key, @worksheet_title)
|
34
35
|
end
|
35
36
|
|
36
37
|
def executor
|
@@ -45,6 +46,7 @@ module DataPitcher
|
|
45
46
|
<<-EOS
|
46
47
|
##{@index} command
|
47
48
|
spreadsheet_key: #{@spreadsheet_key}
|
49
|
+
worksheet_title: #{@worksheet_title || '(first worksheet)'}
|
48
50
|
valid?: #{spreadsheet.valid?}
|
49
51
|
sql_path: #{@sql_path}
|
50
52
|
valid?: #{executor.valid?}
|
@@ -4,8 +4,9 @@ module DataPitcher
|
|
4
4
|
class Spreadsheet
|
5
5
|
BATCH_SIZE = 1000
|
6
6
|
|
7
|
-
def initialize(spreadsheet_key)
|
7
|
+
def initialize(spreadsheet_key, worksheet_title = nil)
|
8
8
|
@spreadsheet_key = spreadsheet_key
|
9
|
+
@worksheet_title = worksheet_title
|
9
10
|
end
|
10
11
|
|
11
12
|
def spreadsheet
|
@@ -13,8 +14,12 @@ module DataPitcher
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def worksheet
|
16
|
-
|
17
|
-
|
17
|
+
@worksheet ||=
|
18
|
+
if @worksheet_title
|
19
|
+
spreadsheet.worksheet_by_title(@worksheet_title)
|
20
|
+
else
|
21
|
+
spreadsheet.worksheets.first
|
22
|
+
end
|
18
23
|
end
|
19
24
|
|
20
25
|
def clear_sheet
|
data/lib/data_pitcher/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: data_pitcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro Nishimi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
98
|
version: '0'
|
99
99
|
requirements: []
|
100
100
|
rubyforge_project:
|
101
|
-
rubygems_version: 2.
|
101
|
+
rubygems_version: 2.6.13
|
102
102
|
signing_key:
|
103
103
|
specification_version: 4
|
104
104
|
summary: Data Pitcher throw your pesisted data to Google Spreadsheet.
|