Class: Muding::Generator::Source

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/muding_generator/lookup.rb

Overview

Sources enumerate (yield from #each) generator specs which describe where to find and how to create generators. Enumerable is mixed in so, for example, source.collect will retrieve every generator. Sources may be assigned a label to distinguish them.

Direct Known Subclasses

GemSource, PathSource

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(label) ⇒ Source

Returns a new instance of Source.



153
154
155
# File 'lib/muding_generator/lookup.rb', line 153

def initialize(label)
  @label = label
end

Instance Attribute Details

#labelObject (readonly)

Returns the value of attribute label.



152
153
154
# File 'lib/muding_generator/lookup.rb', line 152

def label
  @label
end

Instance Method Details

#eachObject

The each method must be implemented in subclasses. The base implementation raises an error.

Raises:

  • (NotImplementedError)


159
160
161
# File 'lib/muding_generator/lookup.rb', line 159

def each
  raise NotImplementedError
end

#namesObject

Return a convenient sorted list of all generator names.



164
165
166
# File 'lib/muding_generator/lookup.rb', line 164

def names
  map { |spec| spec.name }.sort
end