Module: Templater::Manifold
- Defined in:
- lib/templater/manifold.rb
Instance Method Summary collapse
-
#add_private(name, generator) ⇒ Object
Add a generator for internal use to this manifold.
-
#add_public(name, generator) ⇒ Object
(also: #add)
Add a generator to this manifold.
-
#desc(text = nil) ⇒ Object
If the argument is omitted, simply returns the description for this manifold, otherwise sets the description to the passed string.
-
#generator(name) ⇒ Object
Finds the class of a generator, given its name in the manifold.
-
#generators ⇒ Object
Lists all generators in this manifold.
-
#private_generators ⇒ Object
Lists all private generators, these are generators that are meant to be used only internally and should not be invoked directly (although the interface may choose to do so).
-
#public_generators ⇒ Object
Lists all public generators, these are generators that are meant to be invoked directly by the user.
-
#remove(name) ⇒ Object
Remove the generator with the given name from the manifold.
-
#run_cli(destination_root, name, version, args) ⇒ Object
A Shortcut method for invoking the command line interface provided with Templater.
Instance Method Details
#add_private(name, generator) ⇒ Object
Add a generator for internal use to this manifold.
Parameters
- name<Symbol>
-
The name given to this generator in the manifold
- generator<Templater::Generator>
-
The generator class
47 48 49 50 |
# File 'lib/templater/manifold.rb', line 47 def add_private(name, generator) private_generators[name.to_sym] = generator generator.manifold = self end |
#add_public(name, generator) ⇒ Object Also known as: add
Add a generator to this manifold
Parameters
- name<Symbol>
-
The name given to this generator in the manifold
- generator<Templater::Generator>
-
The generator class
35 36 37 38 |
# File 'lib/templater/manifold.rb', line 35 def add_public(name, generator) public_generators[name.to_sym] = generator generator.manifold = self end |
#desc(text = nil) ⇒ Object
If the argument is omitted, simply returns the description for this manifold, otherwise sets the description to the passed string.
Parameters
- text<String>
-
A description
Returns
- String
-
The description for this manifold
91 92 93 94 |
# File 'lib/templater/manifold.rb', line 91 def desc(text = nil) @text = text if text return @text.realign_indentation end |
#generator(name) ⇒ Object
Finds the class of a generator, given its name in the manifold.
Parameters
- name<Symbol>
-
The name of the generator to find
Returns
- Templater::Generator
-
The found generator class
68 69 70 |
# File 'lib/templater/manifold.rb', line 68 def generator(name) generators[name.to_sym] end |
#generators ⇒ Object
9 10 11 |
# File 'lib/templater/manifold.rb', line 9 def generators private_generators.merge(public_generators) end |
#private_generators ⇒ Object
Lists all private generators, these are generators that are meant to be used only internally and should not be invoked directly (although the interface may choose to do so)
Returns
- Array
-
A list of generators
26 27 28 |
# File 'lib/templater/manifold.rb', line 26 def private_generators @private_generators ||= {} end |
#public_generators ⇒ Object
Lists all public generators, these are generators that are meant to be invoked directly by the user.
Returns
- Array
-
A list of generators
17 18 19 |
# File 'lib/templater/manifold.rb', line 17 def public_generators @public_generators ||= {} end |
#remove(name) ⇒ Object
Remove the generator with the given name from the manifold
Parameters
- name<Symbol>
-
The name of the generator to be removed.
56 57 58 59 |
# File 'lib/templater/manifold.rb', line 56 def remove(name) public_generators.delete(name.to_sym) private_generators.delete(name.to_sym) end |
#run_cli(destination_root, name, version, args) ⇒ Object
A Shortcut method for invoking the command line interface provided with Templater.
Parameters
- destination_root<String>
-
Where the generated files should be put, this would usually be Dir.pwd
- name<String>
-
The name of the executable running this generator (such as ‘merb-gen’)
- version<String>
-
The version number of the executable.
- args<Array>
-
An array of arguments to pass into the generator. This would usually be ARGV
79 80 81 |
# File 'lib/templater/manifold.rb', line 79 def run_cli(destination_root, name, version, args) Templater::CLI::Manifold.run(destination_root, self, name, version, args) end |