Class: AzaharaSchema::Outputs

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/azahara_schema/outputs.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema) ⇒ Outputs

Returns a new instance of Outputs.



23
24
25
# File 'lib/azahara_schema/outputs.rb', line 23

def initialize(schema)
  @schema = schema
end

Class Method Details

.output_class(output) ⇒ Object



19
20
21
# File 'lib/azahara_schema/outputs.rb', line 19

def self.output_class(output)
  registered_outputs[output]
end

.register(klass) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/azahara_schema/outputs.rb', line 10

def self.register(klass)
  key = klass.key
  registered_outputs[key] = klass
  define_method(key) do
    output(key)
  end
  true
end

.registered_outputsObject



6
7
8
# File 'lib/azahara_schema/outputs.rb', line 6

def self.registered_outputs
  @registered_outputs ||= {}
end

Instance Method Details

#each(&block) ⇒ Object



31
32
33
34
35
# File 'lib/azahara_schema/outputs.rb', line 31

def each(&block)
  @schema.enabled_outputs.each do |o|
    yield output(o)
  end
end

#output(output) ⇒ Object



27
28
29
# File 'lib/azahara_schema/outputs.rb', line 27

def output(output)
  self.class.output_class(output).new(@schema)
end