Class: CGen::Generator::BasicGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/cgen/generator/basic_generator.rb

Overview

Abstract class for a generator. All generators should inherit from this class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(param, data, lang) ⇒ BasicGenerator

Returns a new instance of BasicGenerator.



8
9
10
11
12
# File 'lib/cgen/generator/basic_generator.rb', line 8

def initialize(param, data, lang)
  @param = param
  @data = data
  @lang = lang
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



5
6
7
# File 'lib/cgen/generator/basic_generator.rb', line 5

def data
  @data
end

#langObject

Returns the value of attribute lang.



6
7
8
# File 'lib/cgen/generator/basic_generator.rb', line 6

def lang
  @lang
end

#paramObject

Returns the value of attribute param.



4
5
6
# File 'lib/cgen/generator/basic_generator.rb', line 4

def param
  @param
end

Instance Method Details

#evaluate(input, context) ⇒ Object



32
33
34
35
# File 'lib/cgen/generator/basic_generator.rb', line 32

def evaluate(input, context)
  eruby = Erubis::Eruby.new(input)
  eruby.evaluate(context) # return
end

#generateObject



14
15
16
# File 'lib/cgen/generator/basic_generator.rb', line 14

def generate
  raise 'Abstract class'
end

#get_value(keys_str) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/cgen/generator/basic_generator.rb', line 18

def get_value(keys_str)
  keys = keys_str.split('.').reverse
  if keys.empty?
    '' # return
  else
    data_tmp = @data.dup
    until keys.empty?
      key = keys.pop
      data_tmp = data_tmp[key]
    end
    data_tmp # return
  end
end