Class: CompositeLinkActionElement
- Inherits:
-
ActionElement
- Object
- ActionElement
- CompositeLinkActionElement
- Defined in:
- lib/ribit/actionelement.rb
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from ActionElement
Instance Method Summary collapse
-
#initialize(id, element, delimiter, appendDelimiterAlsoToEnd) ⇒ CompositeLinkActionElement
constructor
A new instance of CompositeLinkActionElement.
- #replace_link_elements(linkAdapters) ⇒ Object
Methods inherited from ActionElement
Constructor Details
#initialize(id, element, delimiter, appendDelimiterAlsoToEnd) ⇒ CompositeLinkActionElement
Returns a new instance of CompositeLinkActionElement.
95 96 97 98 99 |
# File 'lib/ribit/actionelement.rb', line 95 def initialize( id, element, delimiter, appendDelimiterAlsoToEnd ) super( id, element ) @delimiter = delimiter @appendDelimiterAlsoToEnd = appendDelimiterAlsoToEnd end |
Instance Method Details
#replace_link_elements(linkAdapters) ⇒ Object
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 |
# File 'lib/ribit/actionelement.rb', line 102 def replace_link_elements( linkAdapters ) # just remove this link if no adapters if ( linkAdapters.size == 0 ) @element.remove return end # there has to be at least one adapter => replace the original element with that parent = @element.parent parent.replace_child( @element, linkAdapters[0].to_ele ) @element = linkAdapters[0].to_ele if ( linkAdapters.size() > 1 or @appendDelimiterAlsoToEnd ) parent.insert_after( @element, REXML::Text.new( @delimiter ) ) end index = 1; linkAdapters[1..linkAdapters.size].each do |adapter| parent.insert_after( @element, adapter.to_ele ) index = index + 1 if ( @appendDelimiterAlsoToEnd or index <= linkAdapters.size - 1 ) parent.insert_after( @element, REXML::Text.new( @delimiter ) ) end end end |