Class: Foobara::FilesGenerator
- Inherits:
-
Object
- Object
- Foobara::FilesGenerator
show all
- Includes:
- TruncatedInspect
- Defined in:
- foobara-files-generator-0.0.5/src/files_generator.rb,
foobara-files-generator-0.0.5/lib/foobara/files_generator/bundler_actions.rb
Direct Known Subclasses
Generators::AutocrudGenerator::Generators::AutocrudGenerator, Generators::CommandGenerator::Generators::CommandGenerator, Generators::DomainGenerator::Generators::DomainGenerator, Generators::DomainMapperGenerator::Generators::DomainMapperGenerator, Generators::EmptyRubyProjectGenerator::Generators::ProjectGenerator, Generators::OrganizationGenerator::Generators::OrganizationGenerator, Generators::RackConnectorGenerator::Generators::RackConnectorGenerator, Generators::RemoteImportsGenerator::Generators::RemoteImportsGenerator, Generators::ResqueConnectorGenerator::Generators::ResqueConnectorGenerator, Generators::TypeGenerator::Generators::TypeGenerator, RemoteGenerator::Services::TypescriptFromManifestBaseGenerator
Defined Under Namespace
Modules: BundlerActions
Constant Summary
TruncatedInspect::MAX_LENGTH
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#inspect, truncating
Constructor Details
#initialize(relevant_manifest) ⇒ FilesGenerator
Returns a new instance of FilesGenerator.
33
34
35
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 33
def initialize(relevant_manifest)
self.relevant_manifest = relevant_manifest
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name) ⇒ Object
127
128
129
130
131
132
133
134
135
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 127
def method_missing(method_name, *, &)
if relevant_manifest.respond_to?(method_name)
relevant_manifest.send(method_name, *, &)
else
super
end
end
|
Instance Attribute Details
#belongs_to_dependency_group ⇒ Object
Returns the value of attribute belongs_to_dependency_group.
31
32
33
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 31
def belongs_to_dependency_group
@belongs_to_dependency_group
end
|
#relevant_manifest ⇒ Object
Returns the value of attribute relevant_manifest.
31
32
33
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 31
def relevant_manifest
@relevant_manifest
end
|
Class Method Details
.generator_for(manifest) ⇒ Object
26
27
28
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 26
def generator_for(manifest)
generators_for(manifest).first
end
|
.generators_for(manifest) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 14
def generators_for(manifest)
if manifest.is_a?(FilesGenerator)
return [manifest]
end
generator_classes = manifest_to_generator_classes(manifest)
Util.array(generator_classes).map do |generator_class|
generator_class.new(manifest)
end
end
|
.manifest_to_generator_classes(_manifest) ⇒ Object
8
9
10
11
12
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 8
def manifest_to_generator_classes(_manifest)
raise "subclass responsibility"
end
|
Instance Method Details
#==(other) ⇒ Object
141
142
143
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 141
def ==(other)
self.class == other.class && relevant_manifest == other.relevant_manifest
end
|
#absolute_template_path ⇒ Object
94
95
96
97
98
99
100
101
102
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 94
def absolute_template_path
path = template_path
if path.is_a?(::Array)
path = path.join("/")
end
Pathname.new("#{templates_dir}/#{path}").cleanpath.to_s
end
|
#applicable? ⇒ Boolean
53
54
55
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 53
def applicable?
true
end
|
#dependencies ⇒ Object
67
68
69
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 67
def dependencies
[]
end
|
#dependencies_to_generate ⇒ Object
71
72
73
74
75
76
77
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 71
def dependencies_to_generate
if dependencies.is_a?(::Set)
dependencies
else
Util.array(dependencies)
end
end
|
#eql?(other) ⇒ Boolean
145
146
147
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 145
def eql?(other)
self == other
end
|
#erb_template ⇒ Object
114
115
116
117
118
119
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 114
def erb_template
erb = ERB.new(template_string)
erb.filename = absolute_template_path
erb
end
|
#generate(elements_to_generate) ⇒ Object
79
80
81
82
83
84
85
86
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 79
def generate(elements_to_generate)
dependencies_to_generate.each do |dependency|
elements_to_generate << dependency
end
erb_template.result(binding)
end
|
#generator_for ⇒ Object
63
64
65
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 63
def generator_for(...)
self.class.generator_for(...)
end
|
#generators_for ⇒ Object
57
58
59
60
61
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 57
def generators_for(...)
self.class.generators_for(...)
end
|
#hash ⇒ Object
149
150
151
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 149
def hash
relevant_manifest.hash
end
|
#path_to_root ⇒ Object
121
122
123
124
125
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 121
def path_to_root
size = target_path.size - 1
(["../"] * size).join
end
|
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
137
138
139
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 137
def respond_to_missing?(method_name, include_private = false)
relevant_manifest.respond_to?(method_name, include_private)
end
|
#target_dir ⇒ Object
49
50
51
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 49
def target_dir
target_path[0..-2]
end
|
#target_path ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 37
def target_path
*path, file = template_path
if file.end_with?(".erb")
[*path, file[0..-5]]
else
raise "expected a .erb extension. Maybe override #target_path"
end
end
|
#template_path ⇒ Object
88
89
90
91
92
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 88
def template_path
raise "Subclass responsibility"
end
|
#template_string ⇒ Object
110
111
112
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 110
def template_string
File.read(absolute_template_path)
end
|
#templates_dir ⇒ Object
104
105
106
107
108
|
# File 'foobara-files-generator-0.0.5/src/files_generator.rb', line 104
def templates_dir
"#{Dir.pwd}/templates"
end
|