svg_drawer 1.0.1 → 1.1.0
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 +4 -4
- data/lib/fonts.yml +1 -1
- data/lib/svg_drawer.rb +1 -0
- data/lib/svg_drawer/image.rb +45 -0
- data/lib/svg_drawer/path.rb +10 -4
- data/lib/svg_drawer/table/cell.rb +4 -0
- data/lib/svg_drawer/table/row.rb +4 -0
- data/lib/svg_drawer/table/table.rb +4 -0
- data/lib/svg_drawer/version.rb +1 -1
- data/svg_drawer.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67e816a4f1d1374b19062873a74cd131fcd844d6
|
4
|
+
data.tar.gz: 9582d217d457cd39654878b9ef8f8e1e55e40dae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdf36de00b438e46fbc84e58f79a83e3ae3799922cc51c1b9a6eaf3a44faaa02609ab008d751858be486efc9b8b4906b5efe2b29cda6cfd3bba6b9ef9869fa82
|
7
|
+
data.tar.gz: f146c30aa7bed301be4f32331eb443f390987ce5d3bf014fb8567e4b4f0c1cc9a52b0a253b2a30c3d924a5f5fa1d3bfc758cc55497619304faf9a3b4dbecdee0
|
data/lib/fonts.yml
CHANGED
data/lib/svg_drawer.rb
CHANGED
@@ -23,6 +23,7 @@ require 'svg_drawer/multipolyline'
|
|
23
23
|
require 'svg_drawer/line'
|
24
24
|
require 'svg_drawer/path'
|
25
25
|
require 'svg_drawer/circle'
|
26
|
+
require 'svg_drawer/image'
|
26
27
|
require 'svg_drawer/table/cell'
|
27
28
|
require 'svg_drawer/table/blank_row'
|
28
29
|
require 'svg_drawer/table/row'
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module SvgDrawer
|
2
|
+
class Image < Base
|
3
|
+
# Required since there is no known way to calculate them
|
4
|
+
requires :width
|
5
|
+
requires :height
|
6
|
+
|
7
|
+
# Retranslate ensures the parent element can correctly draw borders
|
8
|
+
defaults scale: [1, 1],
|
9
|
+
overflow: true,
|
10
|
+
retranslate: false # true not supported
|
11
|
+
|
12
|
+
def initialize(href, params = {})
|
13
|
+
@href = href
|
14
|
+
super(params)
|
15
|
+
end
|
16
|
+
|
17
|
+
def width
|
18
|
+
param(:width)
|
19
|
+
end
|
20
|
+
|
21
|
+
def height
|
22
|
+
param(:height)
|
23
|
+
end
|
24
|
+
|
25
|
+
def incomplete
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def _draw(parent)
|
32
|
+
# No idea how to find boundary coordinates
|
33
|
+
raise NotImplementedError if param(:retranslate)
|
34
|
+
|
35
|
+
Utils::RasemWrapper.group(parent, class: 'image') do |image_group|
|
36
|
+
w = param(:width) unless param(:overflow)
|
37
|
+
h = param(:height) unless param(:overflow)
|
38
|
+
|
39
|
+
res = image_group.image(nil, nil, w, h, @href)
|
40
|
+
%i[x y width height].each { |k| res.attributes.delete(k) if res.attributes[k].blank? }
|
41
|
+
res
|
42
|
+
end.scale(*param(:scale))
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/svg_drawer/path.rb
CHANGED
@@ -5,13 +5,15 @@ module SvgDrawer
|
|
5
5
|
requires :height
|
6
6
|
|
7
7
|
# Retranslate ensures the parent element can correctly draw borders
|
8
|
-
defaults
|
8
|
+
defaults fill: 'black',
|
9
|
+
stroke: 'none',
|
10
|
+
scale: [1, 1],
|
9
11
|
overflow: true, # false not supported
|
10
12
|
retranslate: false # true not supported
|
11
13
|
|
12
|
-
def initialize(path_components,
|
13
|
-
super(defaults)
|
14
|
+
def initialize(path_components, params = {})
|
14
15
|
@components = path_components
|
16
|
+
super(params)
|
15
17
|
end
|
16
18
|
|
17
19
|
# No idea how to compute dimensions for paths
|
@@ -35,8 +37,12 @@ module SvgDrawer
|
|
35
37
|
# No idea how to find boundary coordinates
|
36
38
|
raise NotImplementedError if param(:retranslate)
|
37
39
|
|
40
|
+
style = {}
|
41
|
+
style[:fill] = param(:fill)
|
42
|
+
style[:stroke] = param(:stroke)
|
43
|
+
|
38
44
|
Utils::RasemWrapper.group(parent, class: 'path') do |path_group|
|
39
|
-
@components.each { |path| path_group.path(d: path) }
|
45
|
+
@components.each { |path| path_group.path(d: path, style: style) }
|
40
46
|
end.scale(*param(:scale))
|
41
47
|
end
|
42
48
|
end
|
@@ -47,6 +47,10 @@ module SvgDrawer
|
|
47
47
|
@content = Circle.new(center, radius, params.merge(inherited: child_params))
|
48
48
|
end
|
49
49
|
|
50
|
+
def image(href, params = {})
|
51
|
+
@content = Image.new(href, params.merge(inherited: child_params))
|
52
|
+
end
|
53
|
+
|
50
54
|
#
|
51
55
|
# See Row#draw for info on col_width and row_height
|
52
56
|
#
|
data/lib/svg_drawer/table/row.rb
CHANGED
@@ -88,6 +88,10 @@ module SvgDrawer
|
|
88
88
|
row(params) { |r| r.circle_cell(center, radius) }
|
89
89
|
end
|
90
90
|
|
91
|
+
def image_row(href, params = {})
|
92
|
+
row(params) { |r| r.image_cell(href) }
|
93
|
+
end
|
94
|
+
|
91
95
|
def sub_table_row(params = {})
|
92
96
|
t = Table.new(params)
|
93
97
|
row { |r| r.cell { |c| c.content(t) && yield(t) } }
|
data/lib/svg_drawer/version.rb
CHANGED
data/svg_drawer.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: svg_drawer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simeon Manolov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rasem
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description:
|
56
70
|
email:
|
57
71
|
- s.manolloff@gmail.com
|
@@ -64,6 +78,7 @@ files:
|
|
64
78
|
- lib/svg_drawer.rb
|
65
79
|
- lib/svg_drawer/base.rb
|
66
80
|
- lib/svg_drawer/circle.rb
|
81
|
+
- lib/svg_drawer/image.rb
|
67
82
|
- lib/svg_drawer/line.rb
|
68
83
|
- lib/svg_drawer/multipolyline.rb
|
69
84
|
- lib/svg_drawer/path.rb
|