pill_chart 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/simple/simple_pill_chart.rb +99 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c061822a954d3dcc457d6ee90e0795ce5a542c76
|
4
|
+
data.tar.gz: 5e42a9ff3fd2c601b9f7cb2a30550b5be873d27a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9fb01566736261f094166010537cf6a296c30871845baa6b7a2c61edd85d33b3fb49414e2d2f85a5926644dbb72f9ea3b33ce4bd2745e5b5f09e63447c40241
|
7
|
+
data.tar.gz: ce1d7e005b274689eab049f88d39e45455d75ec74cd90c7b4d625dfe814354712ab40d075641105e28ba09f0985e770a0714b5081cc0518a7521a1c62cec7894
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module PillChart
|
2
|
+
class SimplePillChart
|
3
|
+
|
4
|
+
# constructor method
|
5
|
+
def initialize(height = 10, width = 60, value = 33, max = 100, colors = {})
|
6
|
+
@width, @height = width, height
|
7
|
+
@paths = []
|
8
|
+
@valueWidth = Integer((value * @width) / 100)
|
9
|
+
@config = {
|
10
|
+
"background" => "#eee",
|
11
|
+
"foreground" => "#999"
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
def pill
|
16
|
+
self.drawBackgroundPath
|
17
|
+
self.drawForegroundPath
|
18
|
+
self.toSvg
|
19
|
+
end
|
20
|
+
|
21
|
+
# define accessor methods
|
22
|
+
def getWidth
|
23
|
+
@width
|
24
|
+
end
|
25
|
+
|
26
|
+
def getHeight
|
27
|
+
@height
|
28
|
+
end
|
29
|
+
|
30
|
+
# define to_s method
|
31
|
+
def to_s
|
32
|
+
self.pill
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
|
37
|
+
def drawBackgroundPath
|
38
|
+
render = []
|
39
|
+
render << "<rect"
|
40
|
+
render << "id=\"background\" x=\"0\" cy=\"0\" height=\"20\" width=\"60\""
|
41
|
+
render << "style=\"fill: #{@config['background']}; mask: url(#pill-base)\""
|
42
|
+
render << "/>"
|
43
|
+
@paths.push([:background], render.join(" "))
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
# <rect id="background" x="0" cy="0" height="20" width="60" style="fill: red; mask: url(#pill-base)"/>
|
48
|
+
# <rect id="progress" x="0" cy="0" height="20" width="30" style="fill: green; mask: url(#pill-base)"/>
|
49
|
+
|
50
|
+
def drawForegroundPath
|
51
|
+
render = []
|
52
|
+
render << "<rect"
|
53
|
+
render << "id=\"foreground\" x=\"0\" cy=\"0\" height=\"20\" width=\"#{@valueWidth}\""
|
54
|
+
render << "style=\"fill: #{@config['foreground']}; mask: url(#pill-base)\""
|
55
|
+
render << "/>"
|
56
|
+
@paths.push([:foreground], render.join(" "))
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
# <mask id="pill-base" x="0" y="0" width="60" height="20" style="fill: #ffffff" >
|
61
|
+
# <circle cx="10" cy="10" r="10"/>
|
62
|
+
# <circle cx="50" cy="10" r="10"/>
|
63
|
+
# <rect x="10" cy="0" height="20" width="40"/>
|
64
|
+
# </mask>
|
65
|
+
|
66
|
+
def generateMask
|
67
|
+
ray = @height / 2
|
68
|
+
generated = []
|
69
|
+
generated << "<mask"
|
70
|
+
generated << "id=\"pill-base\""
|
71
|
+
generated << "x=\"0\" y=\"0\" width=\"#{@width}\" height=\"#{@height}\" style=\"fill: #ffffff\""
|
72
|
+
generated << ">"
|
73
|
+
generated << "<circle cx=\"#{ray}\" cy=\"#{ray}\" r=\"#{ray}\"/>"
|
74
|
+
generated << "<circle cx=\"#{@width - ray}\" cy=\"#{ray}\" r=\"#{ray}\"/>"
|
75
|
+
generated << "<rect"
|
76
|
+
generated << "x=\"#{ray}\" y=\"0\" width=\"#{@width - (2 * ray)}\" height=\"#{@height}\"/>"
|
77
|
+
generated << "</mask>"
|
78
|
+
"<defs>" + generated.join(" ") + "</defs>"
|
79
|
+
end
|
80
|
+
|
81
|
+
def getSvgHeader
|
82
|
+
"<svg width=\"#{@width}\" height=\"#{@height}\">"
|
83
|
+
end
|
84
|
+
|
85
|
+
def getSvgFooter
|
86
|
+
'</svg>'
|
87
|
+
end
|
88
|
+
|
89
|
+
def toSvg
|
90
|
+
finalSvg = []
|
91
|
+
finalSvg.push self.getSvgHeader
|
92
|
+
finalSvg.push self.generateMask
|
93
|
+
finalSvg.push @paths.join("\n")
|
94
|
+
finalSvg.push self.getSvgFooter
|
95
|
+
finalSvg.join
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pill_chart
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- André Aubin
|
@@ -17,6 +17,7 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- lib/pill_chart.rb
|
20
|
+
- lib/simple/simple_pill_chart.rb
|
20
21
|
homepage: https://github.com/lambdaweb/pillchart
|
21
22
|
licenses:
|
22
23
|
- Apache2
|