Module: Templater::Manifold

Defined in:
lib/templater/manifold.rb

Instance Method Summary collapse

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

#generatorsObject

Lists all generators in this manifold

Returns

Array

A list of generators



9
10
11
# File 'lib/templater/manifold.rb', line 9

def generators
  private_generators.merge(public_generators)
end

#private_generatorsObject

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_generatorsObject

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