1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class RectException < RuntimeError
end
class GraphViz
class Types
class Rect < Common
FLOAT_MASK = /[-+]?(?:[0-9]*\.[0-9]+|[0-9]+)/
RECT_FINAL_MASK = /#{FLOAT_MASK}\s*,\s*#{FLOAT_MASK}\s*,\s*#{FLOAT_MASK}\s*,\s*#{FLOAT_MASK}/
def check(data)
if data.is_a?(String) and RECT_FINAL_MASK.match(data)
@to_ruby = data.split(",").map{ |e| e.to_f }
return data
end
if data.is_a?(Array)
return check(data.join(","))
end
return nil if data.is_a?(String) and data.empty?
raise RectException, "Invalid rect value"
end
def output
return @data.to_s.inspect.gsub( "\\\\", "\\" )
end
alias :to_gv :output
alias :to_s :output
def to_ruby
@to_ruby
end
end
end
end
|