pill_chart 0.1.3 → 0.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 212a2c789ba45b7a3b2a0cf216be87385cece228
4
- data.tar.gz: 3a99e4f3c282b0801f54305ad20eb6e051f9679d
3
+ metadata.gz: f03ab735066266ee3cabb18cce4c333f3adad0ab
4
+ data.tar.gz: f48f1ef652e58422e54fc237cc5bb0a48d46076e
5
5
  SHA512:
6
- metadata.gz: 3daa35c13141a2cd1ef5a85e46c63447578f7e814312b42c666c059fca73e4b055b2ec6e85c825f0ea89e263015cf70f3b5a36f5358bf6636df6d3c0281451f5
7
- data.tar.gz: 3747d6daaff74a1e1b52ead34019f2b6dcdb3f896b2eb5d986ebb8a04852cdca02f469bd7e32b9db130a63378080f3e01a8982984e4f5c0496c3fbcb133d20b2
6
+ metadata.gz: a815e53a8c2027e395c5f028aff496b12e5057441b1ecba20279a5a3fdc9efe7bfdbef46c1d7561361815aae71ab296cd1dbf95d50ae3b5a084fb8d3bd47533b
7
+ data.tar.gz: f291e9f9fd57aee31ae1cc9ea71f15624cee68014a21baa49ddd9bfa40f579aea4988223f5650c15810431deeb1f2b1814472dc24f4365d96a4e070e1c2a451b
@@ -1,12 +1 @@
1
- module PillChart
2
- autoload :SimplePillChart, "simple/simple_pill_chart"
3
-
4
- def PillChart.draw_pill_chart(height: 10, width: 60, value: 33, max: 100, colors: {
5
- "background" => "#eee",
6
- "foreground" => "#999"})
7
- elt = SimplePillChart.new(height, width, value, max, colors)
8
- elt.pill
9
- end
10
- end
11
-
12
- ActionView::Base.send :include, PillChart if defined?(ActionView)
1
+ require 'pill_chart/railtie' if defined? Rails
@@ -0,0 +1,12 @@
1
+ require "pill_chart/simple_pill_chart"
2
+
3
+ require 'pill_chart/railtie' if defined? Rails
4
+
5
+ module PillChart
6
+
7
+ class Railtie < Rails::Railtie
8
+ initializer "pill_chart.view_helpers" do |app|
9
+ ActionView::Base.send :include, SimplePillChart
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,110 @@
1
+ module PillChart
2
+ module SimplePillChart
3
+
4
+ def draw_pill_chart(height: 10, width: 60, value: 33, max: 100, colors: {
5
+ "background" => "#eee",
6
+ "foreground" => "#999"})
7
+ elt = PillChart::SimplePillChart::SimplePillChart.new(height, width, value, max, colors)
8
+ elt.pill
9
+ end
10
+
11
+ class SimplePillChart
12
+
13
+ # constructor method
14
+ def initialize(height = 10, width = 60, value = 33, max = 100, colors = {})
15
+ @width, @height = width, height
16
+ @paths = []
17
+ @valueWidth = Integer((value * @width) / 100)
18
+ @config = {
19
+ "background" => "#eee",
20
+ "foreground" => "#999"
21
+ }
22
+ end
23
+
24
+ def pill
25
+ self.drawBackgroundPath
26
+ self.drawForegroundPath
27
+ self.toSvg
28
+ end
29
+
30
+ # define accessor methods
31
+ def getWidth
32
+ @width
33
+ end
34
+
35
+ def getHeight
36
+ @height
37
+ end
38
+
39
+ # define to_s method
40
+ def to_s
41
+ self.pill
42
+ end
43
+
44
+ protected
45
+
46
+ def drawBackgroundPath
47
+ render = []
48
+ render << "<rect"
49
+ render << "id=\"background\" x=\"0\" cy=\"0\" height=\"20\" width=\"60\""
50
+ render << "style=\"fill: #{@config['background']}; mask: url(#pill-base)\""
51
+ render << "/>"
52
+ @paths.push([:background], render.join(" "))
53
+ end
54
+
55
+
56
+ # <rect id="background" x="0" cy="0" height="20" width="60" style="fill: red; mask: url(#pill-base)"/>
57
+ # <rect id="progress" x="0" cy="0" height="20" width="30" style="fill: green; mask: url(#pill-base)"/>
58
+
59
+ def drawForegroundPath
60
+ render = []
61
+ render << "<rect"
62
+ render << "id=\"foreground\" x=\"0\" cy=\"0\" height=\"20\" width=\"#{@valueWidth}\""
63
+ render << "style=\"fill: #{@config['foreground']}; mask: url(#pill-base)\""
64
+ render << "/>"
65
+ @paths.push([:foreground], render.join(" "))
66
+ end
67
+
68
+
69
+ # <mask id="pill-base" x="0" y="0" width="60" height="20" style="fill: #ffffff" >
70
+ # <circle cx="10" cy="10" r="10"/>
71
+ # <circle cx="50" cy="10" r="10"/>
72
+ # <rect x="10" cy="0" height="20" width="40"/>
73
+ # </mask>
74
+
75
+ def generateMask
76
+ ray = @height / 2
77
+ generated = []
78
+ generated << "<mask"
79
+ generated << "id=\"pill-base\""
80
+ generated << "x=\"0\" y=\"0\" width=\"#{@width}\" height=\"#{@height}\" style=\"fill: #ffffff\""
81
+ generated << ">"
82
+ generated << "<circle cx=\"#{ray}\" cy=\"#{ray}\" r=\"#{ray}\"/>"
83
+ generated << "<circle cx=\"#{@width - ray}\" cy=\"#{ray}\" r=\"#{ray}\"/>"
84
+ generated << "<rect"
85
+ generated << "x=\"#{ray}\" y=\"0\" width=\"#{@width - (2 * ray)}\" height=\"#{@height}\"/>"
86
+ generated << "</mask>"
87
+ "<defs>" + generated.join(" ") + "</defs>"
88
+ end
89
+
90
+ def getSvgHeader
91
+ "<svg width=\"#{@width}\" height=\"#{@height}\">"
92
+ end
93
+
94
+ def getSvgFooter
95
+ '</svg>'
96
+ end
97
+
98
+ def toSvg
99
+ finalSvg = []
100
+ finalSvg.push self.getSvgHeader
101
+ finalSvg.push self.generateMask
102
+ finalSvg.push @paths.join("\n")
103
+ finalSvg.push self.getSvgFooter
104
+ finalSvg.join
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+
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.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Aubin
@@ -17,7 +17,8 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/pill_chart.rb
20
- - lib/simple/simple_pill_chart.rb
20
+ - lib/pill_chart/railtie.rb
21
+ - lib/pill_chart/simple_pill_chart.rb
21
22
  homepage: https://github.com/lambdaweb/pillchart
22
23
  licenses:
23
24
  - Apache2
@@ -1,99 +0,0 @@
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
-