class Microstation::TextNode
Attributes
ole_obj[R]
original[R]
Public Instance Methods
=~(reg)
click to toggle source
# File lib/microstation/text_node.rb, line 83 def =~(reg) @original =~ reg end
empty?()
click to toggle source
# File lib/microstation/text_node.rb, line 13 def empty? ole_obj.TextLinesCount == 0 end
method_missing(meth,*args,&block)
click to toggle source
# File lib/microstation/text_node.rb, line 99 def method_missing(meth,*args,&block) if meth =~ /^[A-Z]/ ole_obj.send(meth,*args) else copy = @original.dup result = copy.send(meth,*args,&block) update(result) unless copy == @original result end end
read_ole(ole)
click to toggle source
# File lib/microstation/text_node.rb, line 26 def read_ole(ole) count = ole.TextLinesCount # debugger if count > 0 str_array = [] 1.upto(count) do |i| str_array << ole.TextLine(i) end str_array.join("\n") end
render(h={})
click to toggle source
# File lib/microstation/text_node.rb, line 91 def render(h={}) return self unless template? template = Liquid::Template.parse(self.to_s) result = template.render(h) update(result) unless result == @original self end
size()
click to toggle source
# File lib/microstation/text_node.rb, line 21 def size ole_obj.TextLinesCount end
template?()
click to toggle source
# File lib/microstation/text_node.rb, line 87 def template? !!(@original =~ /{{.+}}/) end
text?()
click to toggle source
# File lib/microstation/text_node.rb, line 17 def text? false end
to_regexp()
click to toggle source
# File lib/microstation/text_node.rb, line 8 def to_regexp Regexp.new(original.to_s) end
to_s()
click to toggle source
# File lib/microstation/text_node.rb, line 79 def to_s @original.to_s end
update_ole!(text)
click to toggle source
# File lib/microstation/text_node.rb, line 70 def update_ole!(text) ole_obj.DeleteAllTextLines text.each_line do |line| ole_obj.AddTextLine(line) end ole_obj.Redraw Microstation::MSD::MsdDrawingModeNormal ole_obj.Rewrite end
write_ole(text)
click to toggle source
def _update(text)
update_ole!(text) @original = text
end
# File lib/microstation/text_node.rb, line 41 def write_ole(text) if in_cell? write_ole_in_cell(text) else write_ole_regular(text) end end
write_ole_in_cell(text)
click to toggle source
# File lib/microstation/text_node.rb, line 56 def write_ole_in_cell(text) begin orig_ole = ole_obj new_text_ole = ole_obj.Clone new_text_ole.DeleteAllTextLines text.each_line do |line| new_text_ole.AddTextLine(line) end @ole_obj = new_text_ole rescue => e @ole_obj = orig_ole end end
write_ole_regular(text)
click to toggle source
# File lib/microstation/text_node.rb, line 49 def write_ole_regular(text) ole_obj.DeleteAllTextLines text.each_line do |line| ole_obj.AddTextLine(line) end end