ruby_svg_light 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/examples/shapes.rb +1 -0
- data/lib/ruby_svg_light.rb +30 -16
- data/spec/ruby_svg_light_width_spec.rb +11 -3
- data/spec/spec_helper.rb +4 -0
- metadata +4 -3
data/examples/shapes.rb
CHANGED
data/lib/ruby_svg_light.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
module RubySVGLight
|
3
|
-
VERSION = '0.0.
|
3
|
+
VERSION = '0.0.2'
|
4
4
|
|
5
5
|
class Document
|
6
6
|
attr_reader :body
|
@@ -26,10 +26,10 @@ module RubySVGLight
|
|
26
26
|
text = %{<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
27
27
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
28
28
|
|
29
|
-
<svg
|
29
|
+
<svg
|
30
30
|
width="100%"
|
31
31
|
height="100%"
|
32
|
-
version="1.1"
|
32
|
+
version="1.1"
|
33
33
|
xmlns="http://www.w3.org/2000/svg">
|
34
34
|
}
|
35
35
|
end
|
@@ -40,14 +40,14 @@ module RubySVGLight
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
## Drawing methodds
|
43
|
+
## Drawing methodds
|
44
44
|
def circle(x=0, y=0, radius=10, opts={})
|
45
45
|
local_options = calc_local_options(opts)
|
46
46
|
text = %{<circle
|
47
|
-
cx="#{x}" cy="#{y}"
|
48
|
-
r="#{radius}"
|
47
|
+
cx="#{x}" cy="#{y}"
|
48
|
+
r="#{radius}"
|
49
49
|
stroke="#{local_options[:stroke]}"
|
50
|
-
stroke-width="#{local_options[:stroke_width]}"
|
50
|
+
stroke-width="#{local_options[:stroke_width]}"
|
51
51
|
fill="#{local_options[:fill]}"/>
|
52
52
|
}
|
53
53
|
|
@@ -59,7 +59,7 @@ module RubySVGLight
|
|
59
59
|
def line(x,y,w,h, opts={})
|
60
60
|
local_options = calc_local_options(opts)
|
61
61
|
text = %{<line
|
62
|
-
x1="#{x}" y1="#{y}"
|
62
|
+
x1="#{x}" y1="#{y}"
|
63
63
|
x2="#{x+w}" y2="#{y+h}"
|
64
64
|
stroke="#{local_options[:stroke]}"
|
65
65
|
stroke-width="#{local_options[:stroke_width]}"
|
@@ -85,6 +85,20 @@ module RubySVGLight
|
|
85
85
|
@body << text
|
86
86
|
end
|
87
87
|
|
88
|
+
def ellipse(x,y,rx,ry, opts={})
|
89
|
+
local_options = calc_local_options(opts)
|
90
|
+
text = %{<ellipse
|
91
|
+
cx="#{x}" cy="#{y}"
|
92
|
+
rx="#{rx}" ry="#{ry}"
|
93
|
+
fill="#{local_options[:fill]}"
|
94
|
+
stroke="#{local_options[:stroke]}"
|
95
|
+
stroke-width="#{local_options[:stroke_width]}"
|
96
|
+
/>
|
97
|
+
}
|
98
|
+
update_size(x+rx, y+ry)
|
99
|
+
@body << text
|
100
|
+
end
|
101
|
+
|
88
102
|
def text(x,y, input_text, opts={})
|
89
103
|
centre_text = "text-anchor:middle; dominant-baseline:central;"
|
90
104
|
local_options = calc_local_options(opts)
|
@@ -100,11 +114,11 @@ module RubySVGLight
|
|
100
114
|
>#{input_text}
|
101
115
|
</text>
|
102
116
|
}
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
117
|
+
#{centre_text}"
|
118
|
+
# xml:space="preserve"
|
119
|
+
#Do not know height or width of text only the anchor
|
120
|
+
update_size(x, y)
|
121
|
+
@body << text
|
108
122
|
end
|
109
123
|
|
110
124
|
def options(opts={})
|
@@ -112,7 +126,7 @@ module RubySVGLight
|
|
112
126
|
@options[key] = value
|
113
127
|
end
|
114
128
|
|
115
|
-
#return
|
129
|
+
#return
|
116
130
|
@options
|
117
131
|
end
|
118
132
|
|
@@ -135,7 +149,7 @@ module RubySVGLight
|
|
135
149
|
|
136
150
|
|
137
151
|
def components_only_to_s
|
138
|
-
text = ""
|
152
|
+
text = ""
|
139
153
|
@body.each do |section|
|
140
154
|
text << section
|
141
155
|
end
|
@@ -146,7 +160,7 @@ module RubySVGLight
|
|
146
160
|
|
147
161
|
# To string includes header and footers
|
148
162
|
def to_s
|
149
|
-
text = ""
|
163
|
+
text = ""
|
150
164
|
text << self.header
|
151
165
|
@body.each do |section|
|
152
166
|
text << section
|
@@ -1,12 +1,11 @@
|
|
1
|
-
|
2
|
-
require File.join( '..', 'lib', 'ruby_svg_light')
|
1
|
+
require 'spec_helper'
|
3
2
|
|
4
3
|
def check_width_height(svg, width, height)
|
5
4
|
svg.width.should == width
|
6
5
|
svg.height.should == height
|
7
6
|
end
|
8
7
|
|
9
|
-
describe RubySVGLight
|
8
|
+
describe RubySVGLight do
|
10
9
|
it "Check width calculations, objects from origin" do
|
11
10
|
canvas = RubySVGLight::Document.new()
|
12
11
|
check_width_height(canvas, 0, 0)
|
@@ -19,6 +18,9 @@ describe RubySVGLight, "RubySVGLight" do
|
|
19
18
|
|
20
19
|
canvas.circle(0,0,100)
|
21
20
|
check_width_height(canvas, 100, 100)
|
21
|
+
|
22
|
+
canvas.ellipse(0, 0, 300, 400)
|
23
|
+
check_width_height(canvas, 300, 400)
|
22
24
|
end
|
23
25
|
|
24
26
|
it "Smaller new component should not shrink size" do
|
@@ -34,6 +36,9 @@ describe RubySVGLight, "RubySVGLight" do
|
|
34
36
|
|
35
37
|
canvas.rectangle(0,0,10,20)
|
36
38
|
check_width_height(canvas, 100, 100)
|
39
|
+
|
40
|
+
canvas.ellipse(0, 0, 10, 20)
|
41
|
+
check_width_height(canvas, 100, 100)
|
37
42
|
end
|
38
43
|
|
39
44
|
it "Check width calculations, objects not on origin" do
|
@@ -48,6 +53,9 @@ describe RubySVGLight, "RubySVGLight" do
|
|
48
53
|
|
49
54
|
canvas.circle(10,15,100)
|
50
55
|
check_width_height(canvas, 110, 115)
|
56
|
+
|
57
|
+
canvas.ellipse(100, 200, 30, 50)
|
58
|
+
check_width_height(canvas, 130, 250)
|
51
59
|
end
|
52
60
|
end
|
53
61
|
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_svg_light
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Morgan Prior
|
@@ -35,6 +35,7 @@ files:
|
|
35
35
|
- lib/ruby_svg.rb.original
|
36
36
|
- lib/ruby_svg_light.rb
|
37
37
|
- spec/ruby_svg_light_width_spec.rb
|
38
|
+
- spec/spec_helper.rb
|
38
39
|
has_rdoc: true
|
39
40
|
homepage: http://amaras-tech.co.uk/software/RubySVGLight
|
40
41
|
licenses: []
|