spreadsheet_erb 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/spreadsheet_erb.rb +15 -14
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01f255df12cc6aa3da68bf1bde835897312dbd46
|
4
|
+
data.tar.gz: f5e2820d8807faab9a54e70c871df80291ea2769
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea67b8db8b911f388291280e54e68b915ec5ea747c2305e9bc8d63fb934f7338fe7a89505e5a3e1133ef5d4d8be6347822c0cbbdb83ca8ab94fd51e4513c5b28
|
7
|
+
data.tar.gz: c3ef07231b9190b3e3e734d17e927c53c79b703cd5632f8d4928be462b92936a2511a9360531644e89b047380281eba5b2f9cd0beded7df87d7deae11cc3025e
|
data/lib/spreadsheet_erb.rb
CHANGED
@@ -4,29 +4,34 @@ require 'zip'
|
|
4
4
|
|
5
5
|
class SpreadsheetErb
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@
|
7
|
+
def initialize(template_dir:, context:, temp_dir: Dir.mktmpdir)
|
8
|
+
@template_dir = template_dir
|
9
9
|
@context = context
|
10
|
-
@
|
10
|
+
@temp_dir = temp_dir
|
11
11
|
end
|
12
12
|
|
13
13
|
def render
|
14
14
|
copy_template()
|
15
|
-
xml_paths = find_xml_paths(@
|
15
|
+
xml_paths = find_xml_paths(@temp_dir)
|
16
16
|
xml_paths.each do |xml_path|
|
17
17
|
result = render_file(xml_path)
|
18
18
|
save_file(xml_path, result)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
def write(result_path)
|
22
|
+
def write(result_path = "#{@temp_dir}/result-#{Time.now}.xlsx")
|
23
23
|
File.delete(result_path) if File.exist?(result_path)
|
24
|
-
zip("#{@
|
25
|
-
|
24
|
+
zip("#{@temp_dir}/template", result_path)
|
25
|
+
get_file(result_path)
|
26
26
|
end
|
27
27
|
|
28
|
+
|
28
29
|
private
|
29
30
|
|
31
|
+
def get_file(file_path)
|
32
|
+
File.new(file_path, mode: 'r')
|
33
|
+
end
|
34
|
+
|
30
35
|
def render_file(file_path)
|
31
36
|
template = File.read(file_path)
|
32
37
|
renderer = ERB.new(template)
|
@@ -38,16 +43,12 @@ class SpreadsheetErb
|
|
38
43
|
File.write(file_path, value)
|
39
44
|
end
|
40
45
|
|
41
|
-
def find_xml_paths(
|
42
|
-
Dir.glob("#{
|
46
|
+
def find_xml_paths(template_dir)
|
47
|
+
Dir.glob("#{template_dir}/**/*.xml")
|
43
48
|
end
|
44
49
|
|
45
50
|
def copy_template
|
46
|
-
FileUtils.cp_r(@
|
47
|
-
end
|
48
|
-
|
49
|
-
def remove_template
|
50
|
-
FileUtils.rm_r(Dir.glob("#{@temp_path}/*"))
|
51
|
+
FileUtils.cp_r(@template_dir, @temp_dir)
|
51
52
|
end
|
52
53
|
|
53
54
|
def zip(directory_to_zip, result_path)
|