takenoko 0.2.4 → 0.2.5
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/lib/takenoko/attach_helper.rb +27 -4
- data/lib/takenoko/version.rb +1 -1
- data/lib/takenoko.rb +16 -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: f220dcc9791b09c92522d4e1d39e5bd4310761d5
|
4
|
+
data.tar.gz: 77ba082e4d9f2f4a5a5f3ee5485e272b033e4068
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88cee4436b2d04ecb36c4773d165a76b998ff6af1a7081446d632472cdc62228eb9fd1c9fc26dd0277b95f6a0cc237a911f0cd3ac4962fa6fd3afe6cd6507c95
|
7
|
+
data.tar.gz: bc883341f1d73fe9e6336d8d984060a2cccb64b240094bf5f1055cb6c7657852a73ab435c4ab4d8d776352cac5311934b9d69816cc59402976e7e79a989e23a9
|
@@ -2,11 +2,24 @@ module Takenoko
|
|
2
2
|
module AttachHelper
|
3
3
|
extend self
|
4
4
|
def download(table_data)
|
5
|
+
errors = []
|
6
|
+
table_name = table_data[:table_name]
|
7
|
+
takelog = "#{Takenoko.log_folder}/#{table_name}_log.yml"
|
8
|
+
log_data = (File.exist?(takelog) && YAML.load_file(takelog)) || {}
|
9
|
+
|
5
10
|
table_data[:attach_files].each do |col|
|
6
|
-
|
11
|
+
unless (folder_id = col[:folder_id] || table[:folder_id]).present?
|
12
|
+
errors << "Folder ID should be set"
|
13
|
+
next
|
14
|
+
end
|
15
|
+
|
7
16
|
column_name = col[:column_name]
|
8
|
-
|
9
|
-
|
17
|
+
unless table_data[:header].include?(column_name)
|
18
|
+
errors << "Column #{column_name} not found"
|
19
|
+
next
|
20
|
+
end
|
21
|
+
|
22
|
+
Rails.logger.info "Downloading file form table #{table_name}"
|
10
23
|
download_location = col[:download_location]
|
11
24
|
FileUtils.mkdir_p(download_location) unless File.directory?(download_location)
|
12
25
|
folder = Takenoko.google_client.folder_by_id col[:folder_id]
|
@@ -14,12 +27,22 @@ module Takenoko
|
|
14
27
|
table_data[:rows].each do |row|
|
15
28
|
next if row[column_name].blank?
|
16
29
|
file_name = File.basename(row[column_name])
|
17
|
-
|
30
|
+
unless file = folder.file_by_title(file_name)
|
31
|
+
errors << "Table[#{table_name}] - File: '#{file_name}' not found"
|
32
|
+
next
|
33
|
+
end
|
18
34
|
full_path_name = download_location+"/"+file_name
|
35
|
+
find_col = row[table_data[:find_column]]
|
36
|
+
next if File.exist?(full_path_name) && log_data[find_col].present? && file.modified_date.to_i <= log_data[find_col][:last_modified]
|
37
|
+
|
19
38
|
file.download_to_file(full_path_name)
|
20
39
|
Rails.logger.info "Downloaded file: #{full_path_name}"
|
40
|
+
log_data[find_col] ||= {}
|
41
|
+
log_data[find_col][:last_modified] = file.modified_date.to_i
|
21
42
|
end
|
22
43
|
end
|
44
|
+
File.open(takelog, 'w') {|f| f.write log_data.to_yaml }
|
45
|
+
raise errors.join("\n") unless errors.empty?
|
23
46
|
return true
|
24
47
|
end
|
25
48
|
end
|
data/lib/takenoko/version.rb
CHANGED
data/lib/takenoko.rb
CHANGED
@@ -45,6 +45,10 @@ module Takenoko
|
|
45
45
|
mattr_accessor :download_location
|
46
46
|
@@download_location = "tmp/attach_files"
|
47
47
|
|
48
|
+
|
49
|
+
mattr_writer :log_folder
|
50
|
+
@@log_folder = "tmp/takenoko"
|
51
|
+
|
48
52
|
mattr_accessor :folder_id
|
49
53
|
@@folder_id = nil
|
50
54
|
|
@@ -57,6 +61,10 @@ module Takenoko
|
|
57
61
|
yield self
|
58
62
|
end
|
59
63
|
|
64
|
+
def log_folder
|
65
|
+
FileUtils.mkdir_p(@@log_folder) unless File.directory?(@@log_folder)
|
66
|
+
@@log_folder
|
67
|
+
end
|
60
68
|
def google_client
|
61
69
|
@@google_client ||= GoogleClient.new(google_cridential_file)
|
62
70
|
return @@google_client
|
@@ -84,10 +92,17 @@ module Takenoko
|
|
84
92
|
end
|
85
93
|
|
86
94
|
def download_all_files
|
95
|
+
errors = []
|
87
96
|
mapping_config[:tables].each do |table,conf|
|
88
97
|
next if conf[:attach_files].blank?
|
89
|
-
|
98
|
+
begin
|
99
|
+
download_table_files table
|
100
|
+
rescue Exception => e
|
101
|
+
errors << e.to_s
|
102
|
+
end
|
90
103
|
end
|
104
|
+
raise errors.join("\n") unless errors.empty?
|
105
|
+
|
91
106
|
return true
|
92
107
|
end
|
93
108
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: takenoko
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KhiemNS
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -89,7 +89,7 @@ files:
|
|
89
89
|
- lib/tasks/takenoko.rake
|
90
90
|
- test/takenoko_test.rb
|
91
91
|
- test/test_helper.rb
|
92
|
-
homepage: https://github.com/khiemns54/takenoko/tree/release/0.2.
|
92
|
+
homepage: https://github.com/khiemns54/takenoko/tree/release/0.2.5
|
93
93
|
licenses: []
|
94
94
|
metadata: {}
|
95
95
|
post_install_message:
|