Class: Origen::Specs::Doc_Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/origen/specs/doc_resource.rb

Overview

This class is used to store text information to help with documentation processes

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(selector = {}, table_title = {}, text = {}, options = {}) ⇒ Doc_Resource

Initialize the Class



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/origen/specs/doc_resource.rb', line 43

def initialize(selector = {}, table_title = {}, text = {}, options = {})
  @mode = selector[:mode]
  @type = selector[:type]
  @sub_type = selector[:sub_type]
  @audience = selector[:audience]
  @table_title = table_title[:title]
  @note_refs = table_title[:note_refs]
  @exhibit_refs = table_title[:exhibit_refs]
  @before_table = text[:before]
  @after_table = text[:after]
  @doc_options = options
end

Instance Attribute Details

#after_tableObject

DITA Formatted Text that appears after the table



37
38
39
# File 'lib/origen/specs/doc_resource.rb', line 37

def after_table
  @after_table
end

#audienceObject

Audience is part of the 4-D Hash for the Tables. Corresponds to Spec 4-D Hash



21
22
23
# File 'lib/origen/specs/doc_resource.rb', line 21

def audience
  @audience
end

#before_tableObject

DITA Formatted Text that appears before the table



34
35
36
# File 'lib/origen/specs/doc_resource.rb', line 34

def before_table
  @before_table
end

#doc_optionsObject

Documentation Options that will change the appearance of the output.



40
41
42
# File 'lib/origen/specs/doc_resource.rb', line 40

def doc_options
  @doc_options
end

#exhibit_refsObject

Exhibit References that should be referenced within the table title



31
32
33
# File 'lib/origen/specs/doc_resource.rb', line 31

def exhibit_refs
  @exhibit_refs
end

#modeObject

Mode is part of the 4-D Hash for the Tables. Corresponds to Spec 4-D Hash



6
7
8
# File 'lib/origen/specs/doc_resource.rb', line 6

def mode
  @mode
end

#note_refsObject

Note References that should be referenced within the table title



28
29
30
# File 'lib/origen/specs/doc_resource.rb', line 28

def note_refs
  @note_refs
end

#sub_typeObject

SubType is part of the 4-D Hash for the Tables. Corresponds to Spec 4-D Hash



18
19
20
# File 'lib/origen/specs/doc_resource.rb', line 18

def sub_type
  @sub_type
end

#table_titleObject

Table Title that should appear for the table. If blank, generic Table Title will be used Hash is created from mode, type, sub_type, and audience.



25
26
27
# File 'lib/origen/specs/doc_resource.rb', line 25

def table_title
  @table_title
end

#typeObject

Type is part of the 4-D Hash for the Tables. Corresponds to Spec 4-D Hash Usual values

  • DC -> Direct Current

  • AC -> Alternate Current

  • Temp -> Temperature

  • Supply -> Supply



15
16
17
# File 'lib/origen/specs/doc_resource.rb', line 15

def type
  @type
end

Instance Method Details

#to_xmlObject

Converts to an XML file.



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/origen/specs/doc_resource.rb', line 57

def to_xml
  tmp = {}
  tmp['mode'] = @mode unless @mode.nil?
  tmp['type'] = @type unless @type.nil?
  tmp['sub_type'] = @sub_type unless @sub_type.nil?
  tmp['audience'] = @audience unless @audience.nil?
  doc_resource_ml = Nokogiri::XML::Builder.new do |xml|
    xml.doc_resource(tmp.each do |t, d|
      "#{t}=\"#{d}\""     # rubocop:disable Lint/Void
    end) do
      unless @table_title.nil? && @note_refs.size == 0 && @exhibit_refs.size == 0
        unless @note_refs.first.to_s.size == 0
          unless @exhibit_refs.first.to_s.size == 0
            xml.title do
              unless @table_title.nil?
                xml.Text @table_title.to_s
              end
              unless @note_refs.size == 0
                unless @note_refs.first.to_s.size == 0
                  xml.noteRefs do
                    @note_refs = [@note_refs] unless @note_refs.is_a? Array
                    @note_refs.each do |note_ref|
                      unless note_ref.to_s.size == 0
                        xml.noteRef(href: note_ref.to_s)
                      end # unless note_ref.to_s.size == 0
                    end # @note_refs.each do |note_ref|
                  end # xml.noteRefs do
                end # unless @note_refs.first.to_s.size == 0
              end # unless @note_refs.size == 0
              unless @exhibit_refs.size == 0
                unless @exhibit_refs.first.to_s.size == 0
                  xml.exhibitRefs do
                    @exhibit_refs = [@exhibit_refs] unless @exhibit_refs.is_a? Array
                    @exhibit_refs.each do |exhibit_ref|
                      unless exhibit_ref.to_s.size == 0
                        xml.exhibitRef(href: exhibit_ref.to_s)
                      end # unless exhibit_ref.to_s.size == 0
                    end # @exhibit_refs.each do |exhibit_ref|
                  end # xml.exhibitRefs do
                end # unless @exhibit_refs.first.to_s.size == 0
              end # unless @exhibit_refs.size == 0
            end # xml.title.done
          end # unless @exhibit_refs.to_s.size == 0
        end # unless @note_refs.to_s.size == 0
      end # unless @table_title.nil? && @note_refs.size == 0 && @exhibit_refs.size == 0
      unless @before_table.nil? && @after_table.nil?
        xml.paragraphs do
          unless @before_table.nil?
            if (@before_table.is_a? Nokogiri::XML::Node) || (@before_table.is_a? Nokogiri::XML::Element)
              xml.before_table do
                if @before_table.name == 'body'
                  xml << @before_table.children.to_xml
                else
                  xml << @before_table.to_xml
                end
              end
            else
              xml.before_table @before_table
            end
          end
          unless @after_table.nil?
            if (@after_table.is_a? Nokogiri::XML::Node) || (@after_table.is_a? Nokogiri::XML::Element)
              xml.after_table do
                if @after_table.name == 'body'
                  xml << @after_table.children.to_xml
                else
                  xml << @after_table.to_xml
                end
              end
            else
              xml.after_table @after_table
            end
          end
        end # xml.paragraphs do
      end # unless @before_table.nil? && @after_table.nil?
    end # xml.doc_resource
  end # doc_resource_ml = Nokogiri::
  doc_resource_ml.doc.at_xpath('doc_resource').to_xml
end