Class: AmsLayout::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/ams_layout/writer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#class_nameObject



23
24
25
# File 'lib/ams_layout/writer.rb', line 23

def class_name
  @class_name ||= AmsLayout.configuration.layout_class_name
end

Instance Method Details

#aliasesObject



27
28
29
# File 'lib/ams_layout/writer.rb', line 27

def aliases
  @aliases ||= {}
end

#aliases=(data) ⇒ Object



31
32
33
# File 'lib/ams_layout/writer.rb', line 31

def aliases=(data)
  @aliases = Hash(data)
end

#source_file_nameObject

attr_writer :aliases



19
20
21
# File 'lib/ams_layout/writer.rb', line 19

def source_file_name
  class_name.ams_layout_snakecase + '.rb'
end

#write(stream, layout) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ams_layout/writer.rb', line 35

def write stream, layout
  stream << header

  layout.each do |, fields|
    stream << section()

    fields.each do |fld|
      stream << field(fld[:label], fld[:id], fld[:type])
      write_aliases stream, fld[:label], fld[:id], fld[:type]
    end # fields
  end # layout

  stream << footer
end