svg 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/svg.rb +99 -0
  2. metadata +7 -1
data/lib/svg.rb CHANGED
@@ -0,0 +1,99 @@
1
+ #require 'svg'
2
+ #require 'svg/feature'
3
+ #require 'svg/circle'
4
+
5
+ module Svg
6
+
7
+ class RGB
8
+ def initialize(r=0, g=0, b=0)
9
+ @red = r
10
+ @green = g
11
+ @blue = b
12
+ end
13
+ def red
14
+ @red
15
+ end
16
+ def green
17
+ @green
18
+ end
19
+ def blue
20
+ @blue
21
+ end
22
+ def to_s
23
+ return "rgb(#{@red},#{@green},#{@blue})"
24
+ end
25
+ end
26
+
27
+ class Style < String
28
+ attr_accessor :fill, :stroke, :stroke_width, :fill_opacity, :stroke_opacity
29
+ def to_s
30
+ string_val = attr_to_s 'fill', fill
31
+ string_val += attr_to_s 'stroke', stroke
32
+ string_val += attr_to_s 'stroke-width', stroke_width
33
+ string_val += attr_to_s 'fill-opacity', fill_opacity
34
+ string_val += attr_to_s 'stroke-opacity', stroke_opacity
35
+ if not string_val.empty?
36
+ string_val.strip!
37
+ string_val.chop!
38
+ end
39
+ return string_val
40
+ end
41
+ def attr_to_s (attr_name, attr_val)
42
+ return '' if attr_val.nil?
43
+ " #{attr_name}:#{attr_val};" if not attr_val.to_s.empty?
44
+ end
45
+ end
46
+
47
+ class Feature
48
+ attr_accessor :stroke, :stroke_width, :fill, :fill_opacity, :stroke_opacity, :style
49
+ def to_svg
50
+ '<overrideme/>'
51
+ end
52
+
53
+ def attr_to_s (attr_name, attr_val)
54
+ return '' if attr_val.nil?
55
+ " #{attr_name}=\"#{attr_val}\"" if not attr_val.to_s.empty?
56
+ end
57
+
58
+ end
59
+
60
+ class Circle<Feature
61
+ attr_accessor :center_x, :center_y, :radius
62
+ def to_svg
63
+ "<circle cx=\"#{center_x}\" cy=\"#{center_y}\" r=\"#{radius}\" stroke=\"#{stroke}\" stroke-width=\"#{stroke_width}\" fill=\"#{fill}\" />"
64
+ string_val = "<circle"
65
+ string_val += attr_to_s 'cx', center_x
66
+ string_val += attr_to_s 'cy', center_y
67
+ string_val += attr_to_s 'r', radius
68
+ string_val += attr_to_s 'stroke', stroke
69
+ string_val += attr_to_s 'stroke-width', stroke_width
70
+ string_val += attr_to_s 'fill', fill
71
+ if not style.nil?
72
+ string_val += " style=\"#{style.to_s}\""
73
+ end
74
+ string_val += "/>"
75
+
76
+ return string_val
77
+ end
78
+ end
79
+
80
+ class Rectangle<Feature
81
+ attr_accessor :top_x, :top_y, :width, :height
82
+ def to_svg
83
+ string_val = "<rect"
84
+ string_val += attr_to_s 'x', top_x
85
+ string_val += attr_to_s 'y', top_y
86
+ string_val += attr_to_s 'width', width
87
+ string_val += attr_to_s 'height', height
88
+ if not style.nil?
89
+ string_val += " style=\"#{style.to_s}\""
90
+ end
91
+ string_val += "/>"
92
+
93
+ return string_val
94
+ end
95
+
96
+ end
97
+
98
+
99
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -31,12 +31,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
31
31
  - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
+ segments:
35
+ - 0
36
+ hash: -4021207685845722209
34
37
  required_rubygems_version: !ruby/object:Gem::Requirement
35
38
  none: false
36
39
  requirements:
37
40
  - - ! '>='
38
41
  - !ruby/object:Gem::Version
39
42
  version: '0'
43
+ segments:
44
+ - 0
45
+ hash: -4021207685845722209
40
46
  requirements: []
41
47
  rubyforge_project:
42
48
  rubygems_version: 1.8.24