File: rect.rb

package info (click to toggle)
ruby-graphviz 1.0.8-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,124 kB
  • ctags: 695
  • sloc: ruby: 7,656; xml: 26; makefile: 17
file content (35 lines) | stat: -rw-r--r-- 822 bytes parent folder | download | duplicates (5)
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