foobara-files-generator 0.1.1 → 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/CHANGELOG.md +4 -0
- data/README.md +1 -10
- data/src/files_generator.rb +12 -12
- data/src/generate.rb +4 -2
- data/src/write_generated_files_to_disk.rb +12 -9
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d8902970378e5b5c475b3783d81dde67390547e9bbbff283c1a3e13910058f79
|
|
4
|
+
data.tar.gz: 0371ac6c3da3430e86e429bc978c0026f2291706592cbe4f1714e7ca4eee6533
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 49cc08590b93036f34993378578bf366e5e8e0bd77ec67f9ffbb4e05e979ed84c9a15c7d335d7511f59f82f48064cfa0d9fa2993e6a2d9b3d5b54dba423b24d8
|
|
7
|
+
data.tar.gz: dd2cf8a5a1e96d22ddbb765d0f2469383bec94a636198bed897330198b5a4d2774a7cea1ecbad4766130a6809eb507faef9991d1e3930a56fd6c18c2a85ebb32
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
# Foobara::FilesGenerator
|
|
2
2
|
|
|
3
|
-
Contains common-code useful in different
|
|
4
|
-
|
|
5
|
-
## Development
|
|
6
|
-
|
|
7
|
-
For local development, for now, run the following:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
bundle config set local.foobara ../foobara
|
|
11
|
-
bundle config set disable_local_branch_check true
|
|
12
|
-
```
|
|
3
|
+
Contains common-code useful in different Foobara generators
|
|
13
4
|
|
|
14
5
|
## Contributing
|
|
15
6
|
|
data/src/files_generator.rb
CHANGED
|
@@ -6,9 +6,9 @@ module Foobara
|
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
8
|
def manifest_to_generator_classes(_manifest)
|
|
9
|
-
# :
|
|
9
|
+
# simplecov:disable
|
|
10
10
|
raise "subclass responsibility"
|
|
11
|
-
# :
|
|
11
|
+
# simplecov:enable
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def generators_for(manifest)
|
|
@@ -40,9 +40,9 @@ module Foobara
|
|
|
40
40
|
if file.end_with?(".erb")
|
|
41
41
|
[*path, file[0..-5]]
|
|
42
42
|
else
|
|
43
|
-
# :
|
|
43
|
+
# simplecov:disable
|
|
44
44
|
raise "expected a .erb extension. Maybe override #target_path"
|
|
45
|
-
# :
|
|
45
|
+
# simplecov:enable
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
@@ -55,9 +55,9 @@ module Foobara
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def generators_for(...)
|
|
58
|
-
# :
|
|
58
|
+
# simplecov:disable
|
|
59
59
|
self.class.generators_for(...)
|
|
60
|
-
# :
|
|
60
|
+
# simplecov:enable
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def generator_for(...)
|
|
@@ -86,9 +86,9 @@ module Foobara
|
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
def template_path
|
|
89
|
-
# :
|
|
89
|
+
# simplecov:disable
|
|
90
90
|
raise "Subclass responsibility"
|
|
91
|
-
# :
|
|
91
|
+
# simplecov:enable
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
def absolute_template_path
|
|
@@ -102,9 +102,9 @@ module Foobara
|
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def templates_dir
|
|
105
|
-
# :
|
|
105
|
+
# simplecov:disable
|
|
106
106
|
"#{Dir.pwd}/templates"
|
|
107
|
-
# :
|
|
107
|
+
# simplecov:enable
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
def template_string
|
|
@@ -128,9 +128,9 @@ module Foobara
|
|
|
128
128
|
if relevant_manifest.respond_to?(method_name)
|
|
129
129
|
relevant_manifest.send(method_name, *, &)
|
|
130
130
|
else
|
|
131
|
-
# :
|
|
131
|
+
# simplecov:disable
|
|
132
132
|
super
|
|
133
|
-
# :
|
|
133
|
+
# simplecov:enable
|
|
134
134
|
end
|
|
135
135
|
end
|
|
136
136
|
|
data/src/generate.rb
CHANGED
|
@@ -9,9 +9,9 @@ module Foobara
|
|
|
9
9
|
attr_accessor :element_to_generate
|
|
10
10
|
|
|
11
11
|
def base_generator
|
|
12
|
-
# :
|
|
12
|
+
# simplecov:disable
|
|
13
13
|
raise "subclass responsibility"
|
|
14
|
-
# :
|
|
14
|
+
# simplecov:enable
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def elements_to_generate
|
|
@@ -60,7 +60,9 @@ module Foobara
|
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def generate_element
|
|
63
|
+
# simplecov:disable
|
|
63
64
|
return unless element_to_generate.applicable?
|
|
65
|
+
# simplecov:enable
|
|
64
66
|
|
|
65
67
|
paths_to_source_code[Util.array(element_to_generate.target_path).join("/")] =
|
|
66
68
|
element_to_generate.generate(elements_to_generate)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require "fileutils"
|
|
1
2
|
require "open3"
|
|
2
3
|
|
|
3
4
|
module Foobara
|
|
@@ -29,18 +30,20 @@ module Foobara
|
|
|
29
30
|
file_list_file = "#{output_directory}/#{generated_files_json_filename}"
|
|
30
31
|
|
|
31
32
|
if File.exist?(file_list_file)
|
|
32
|
-
# :
|
|
33
|
+
# simplecov:disable
|
|
33
34
|
file_list = JSON.parse(File.read(file_list_file))
|
|
34
35
|
|
|
35
36
|
file_list.map do |file|
|
|
36
37
|
Thread.new { FileUtils.rm_f("#{output_directory}/#{file}") }
|
|
37
38
|
end.each(&:join)
|
|
38
|
-
# :
|
|
39
|
+
# simplecov:enable
|
|
39
40
|
end
|
|
40
41
|
end
|
|
41
42
|
|
|
42
43
|
def write_all_files_to_disk
|
|
44
|
+
# simplecov:disable
|
|
43
45
|
if paths_to_source_code.key?(generated_files_json_filename)
|
|
46
|
+
# simplecov:enable
|
|
44
47
|
write_file_to_disk(generated_files_json_filename, paths_to_source_code[generated_files_json_filename])
|
|
45
48
|
end
|
|
46
49
|
|
|
@@ -60,9 +63,9 @@ module Foobara
|
|
|
60
63
|
|
|
61
64
|
if key
|
|
62
65
|
# TODO: test this path
|
|
63
|
-
# :
|
|
66
|
+
# simplecov:disable
|
|
64
67
|
"#{key}-generator.json"
|
|
65
|
-
# :
|
|
68
|
+
# simplecov:enable
|
|
66
69
|
else
|
|
67
70
|
"foobara-generated.json"
|
|
68
71
|
end
|
|
@@ -81,14 +84,14 @@ module Foobara
|
|
|
81
84
|
exit_status = wait_thr.value
|
|
82
85
|
|
|
83
86
|
unless exit_status.success?
|
|
84
|
-
# :
|
|
87
|
+
# simplecov:disable
|
|
85
88
|
message = "Could not #{cmd}\n#{stderr.read}"
|
|
86
89
|
if raise_if_fails
|
|
87
90
|
raise CouldNotExecuteError, message
|
|
88
91
|
else
|
|
89
92
|
warn "WARNING: #{message}"
|
|
90
93
|
end
|
|
91
|
-
# :
|
|
94
|
+
# simplecov:enable
|
|
92
95
|
end
|
|
93
96
|
|
|
94
97
|
exit_status
|
|
@@ -106,7 +109,7 @@ module Foobara
|
|
|
106
109
|
end
|
|
107
110
|
|
|
108
111
|
def run_cmd_and_return_output(cmd)
|
|
109
|
-
retval = ""
|
|
112
|
+
retval = +""
|
|
110
113
|
|
|
111
114
|
Open3.popen3(cmd) do |_stdin, stdout, stderr, wait_thr|
|
|
112
115
|
loop do
|
|
@@ -118,10 +121,10 @@ module Foobara
|
|
|
118
121
|
|
|
119
122
|
exit_status = wait_thr.value
|
|
120
123
|
unless exit_status.success?
|
|
121
|
-
# :
|
|
124
|
+
# simplecov:disable
|
|
122
125
|
raise CouldNotExecuteError, "could not #{cmd}\n#{stderr.read}"
|
|
123
126
|
end
|
|
124
|
-
# :
|
|
127
|
+
# simplecov:enable
|
|
125
128
|
end
|
|
126
129
|
rescue Errno::ENOENT
|
|
127
130
|
raise CouldNotExecuteError, "Could not run: #{cmd}\nMaybe it is not installed?"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: foobara-files-generator
|
|
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
|
- Miles Georgi
|
|
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: '0'
|
|
70
70
|
requirements: []
|
|
71
|
-
rubygems_version:
|
|
71
|
+
rubygems_version: 4.0.20
|
|
72
72
|
specification_version: 4
|
|
73
73
|
summary: Common code reused across code generator projects
|
|
74
74
|
test_files: []
|