svggvs 0.0.10.1 → 0.0.12
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 +7 -0
- data/README.md +12 -0
- data/bin/svggvs +36 -22
- data/lib/svggvs/page/base.rb +43 -0
- data/lib/svggvs/page/letter/poker.rb +13 -0
- data/lib/svggvs/page/letter/small_shard.rb +13 -0
- data/lib/svggvs/page/letter/small_square_tile.rb +13 -0
- data/lib/svggvs/pdf.rb +0 -52
- data/lib/svggvs/session.rb +21 -2
- data/lib/svggvs/version.rb +1 -1
- data/lib/svggvs.rb +1 -1
- data/skel/Cardfile +4 -0
- metadata +24 -36
- data/spec/svggvs/pdf_spec.rb +0 -46
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 29c1636f89126ee8986e8cf114eed283f2440e6b
|
4
|
+
data.tar.gz: 709063890719e5e75b6dbcc0ab2a010e25cc5ef8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 76f3ddacf87dc548dfe2b89a00acd18c4b5a3448f5957d6d73a1220d4fae399bf0cc3a23d87a60aa9bf0b4ccaad92cb3869b1caebbfb3b99a3c7503e65463c68
|
7
|
+
data.tar.gz: b74974b4db359bed549423b7c5e0fdc6c19b55b3388d239bb73ee878e48915d9a085566aab05f506169da1af5bb898e56e25f298c77accd214e14810751f16e4
|
data/README.md
CHANGED
@@ -68,6 +68,14 @@ The following Card Size and Target settings set these to the following:
|
|
68
68
|
* PNG Export Width: 825
|
69
69
|
* PDF Card Size: 750x1050
|
70
70
|
* PDF DPI: 300
|
71
|
+
* Small Square Tile
|
72
|
+
* PNG Export Width: 600
|
73
|
+
* PDF Card Size: 675x675
|
74
|
+
* PDF DPI: 300
|
75
|
+
* Square Shard
|
76
|
+
* PNG Export Width: 225
|
77
|
+
* PDF Card Size: 300x300
|
78
|
+
* PDF DPI: 300
|
71
79
|
|
72
80
|
Create a `Cardfile` in your working directory. It should look something like this:
|
73
81
|
|
@@ -84,6 +92,10 @@ Create a `Cardfile` in your working directory. It should look something like thi
|
|
84
92
|
# prepend this PDF to the outputted PDF (useful for game rules)
|
85
93
|
# c.prepend_pdf = "rules.pdf"
|
86
94
|
|
95
|
+
# the cards are landscape, so rotate them counterclockwise
|
96
|
+
# after rendering in Inkscape
|
97
|
+
# c.orientation = :landscape
|
98
|
+
|
87
99
|
c.data_source = "data.ods"
|
88
100
|
end
|
89
101
|
```
|
data/bin/svggvs
CHANGED
@@ -74,69 +74,79 @@ MSG
|
|
74
74
|
ensure_tmp
|
75
75
|
|
76
76
|
@exported_pngs = Parallel.map(context.individual_files.each_with_index) do |svg_file, index|
|
77
|
-
target = Pathname(
|
77
|
+
target = Pathname(session.png_files_path % index)
|
78
78
|
target.parent.mkpath
|
79
79
|
|
80
|
-
|
80
|
+
command = %{inkscape --export-area-page --export-png "#{target.expand_path}" --export-background="#ffffffff" }
|
81
|
+
|
82
|
+
case session.orientation
|
83
|
+
when :portrait
|
84
|
+
command += %{--export-width #{session.png_export_width}}
|
85
|
+
when :landscape
|
86
|
+
command += %{--export-height #{session.png_export_width}}
|
87
|
+
end
|
88
|
+
command += %{ "#{svg_file.expand_path}"}
|
89
|
+
|
90
|
+
system command
|
91
|
+
|
92
|
+
if session.orientation == :landscape
|
93
|
+
system %{convert -verbose "#{target.expand_path}" -rotate 270 "#{target.expand_path}"}
|
94
|
+
end
|
81
95
|
|
82
96
|
target
|
83
97
|
end
|
84
98
|
end
|
85
99
|
|
86
|
-
CARDS_PER_PAGE = 9
|
87
|
-
|
88
100
|
desc "pdf", "Create PDF of card images"
|
89
101
|
def pdf
|
90
102
|
pngs
|
91
103
|
|
104
|
+
pdf_obj = session.pdf_class.new(card_size: session.pdf_card_size)
|
105
|
+
|
92
106
|
trimmed_pngs = Parallel.map(@exported_pngs) do |png|
|
93
107
|
tmp_target = tmp_target_for(png)
|
94
108
|
|
95
|
-
system %{convert #{png} -gravity Center -crop #{
|
109
|
+
system %{convert #{png} -gravity Center -crop #{session.pdf_card_size}+0+0 +repage #{tmp_target}}
|
96
110
|
|
97
111
|
tmp_target
|
98
112
|
end
|
99
113
|
|
100
|
-
png_slices = trimmed_pngs.each_slice(
|
114
|
+
png_slices = trimmed_pngs.each_slice(pdf_obj.cards_per_page)
|
101
115
|
|
102
|
-
page_count = trimmed_pngs.length /
|
116
|
+
page_count = trimmed_pngs.length / pdf_obj.cards_per_page
|
103
117
|
|
104
118
|
placeholder = tmp_target_for("placeholder.png")
|
105
|
-
system %{convert -size #{
|
106
|
-
|
107
|
-
pdf_obj = SVGGVS::PDF.new(card_size: context.session.pdf_card_size)
|
119
|
+
system %{convert -size #{session.pdf_card_size} xc:white #{placeholder}}
|
108
120
|
|
109
121
|
pages = Parallel.map(png_slices.each_with_index) do |files, page_index|
|
110
|
-
tmp_pdf_png_target = tmp_path.join("page%05d.pdf" % page_index)
|
111
122
|
tmp_pdf_target = tmp_path.join("page%05d.pdf" % page_index)
|
112
123
|
|
113
|
-
files += Array.new(
|
124
|
+
files += Array.new(pdf_obj.cards_per_page - files.length, placeholder)
|
114
125
|
|
115
|
-
system %{montage -density #{
|
116
|
-
system %{convert -density #{context.session.pdf_dpi} #{tmp_pdf_png_target} -bordercolor white -border #{SVGGVS::PDF.border_size} #{pdf_obj.generate_crop_mark_draws.join(' ')} #{tmp_pdf_target}}.tap { |o| p o }
|
126
|
+
system %{montage -density #{session.pdf_dpi} -tile #{pdf_obj.montage_tiling} -geometry +0+0 #{files.join(' ')} #{tmp_pdf_target}}
|
117
127
|
|
118
128
|
tmp_pdf_target
|
119
129
|
end
|
120
130
|
|
121
|
-
if
|
122
|
-
tmp_target = tmp_target_for(
|
131
|
+
if session.card_back
|
132
|
+
tmp_target = tmp_target_for(session.card_back)
|
123
133
|
tmp_pdf_target = tmp_path.join("backs.pdf")
|
124
134
|
|
125
|
-
system %{convert #{
|
126
|
-
system %{montage -density #{
|
135
|
+
system %{convert #{session.card_back} -gravity Center -crop #{session.pdf_card_size}+0+0 +repage #{tmp_target}}
|
136
|
+
system %{montage -density #{session.pdf_dpi} -geometry +0+0 #{Array.new(pdf_obj.cards_per_page, tmp_target).join(' ')} #{tmp_pdf_target}}
|
127
137
|
|
128
138
|
pages.length.times do |page|
|
129
139
|
pages << tmp_pdf_target
|
130
140
|
end
|
131
141
|
end
|
132
142
|
|
133
|
-
Pathname(
|
143
|
+
Pathname(session.pdf_target).parent.mkpath
|
134
144
|
|
135
|
-
if
|
136
|
-
pages.unshift
|
145
|
+
if session.prepend_pdf
|
146
|
+
pages.unshift session.prepend_pdf
|
137
147
|
end
|
138
148
|
|
139
|
-
system "gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=#{
|
149
|
+
system "gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=#{session.pdf_target} -dBATCH #{pages.join(" ")}"
|
140
150
|
end
|
141
151
|
|
142
152
|
no_tasks do
|
@@ -160,6 +170,10 @@ MSG
|
|
160
170
|
def write_svgs
|
161
171
|
context.write_individual_files
|
162
172
|
end
|
173
|
+
|
174
|
+
def session
|
175
|
+
context.session
|
176
|
+
end
|
163
177
|
end
|
164
178
|
end
|
165
179
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module SVGGVS
|
2
|
+
module Page
|
3
|
+
class Base
|
4
|
+
def initialize(options)
|
5
|
+
@options = options
|
6
|
+
end
|
7
|
+
|
8
|
+
def cards_per_page
|
9
|
+
self.class::CARDS_X * self.class::CARDS_Y
|
10
|
+
end
|
11
|
+
|
12
|
+
def montage_tiling
|
13
|
+
[ self.class::CARDS_X, self.class::CARDS_Y ].join('x')
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def card_width
|
18
|
+
card_size.first
|
19
|
+
end
|
20
|
+
|
21
|
+
def card_height
|
22
|
+
card_size.last
|
23
|
+
end
|
24
|
+
|
25
|
+
def page_height
|
26
|
+
card_height * cards_per_width
|
27
|
+
end
|
28
|
+
|
29
|
+
def page_width
|
30
|
+
card_width * cards_per_height
|
31
|
+
end
|
32
|
+
|
33
|
+
def card_size
|
34
|
+
@card_size ||= @options[:card_size].split('x').collect(&:to_i)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
require_relative './letter/poker'
|
41
|
+
require_relative './letter/small_shard'
|
42
|
+
require_relative './letter/small_square_tile'
|
43
|
+
|
data/lib/svggvs/pdf.rb
CHANGED
@@ -1,57 +1,5 @@
|
|
1
1
|
module SVGGVS
|
2
|
-
CROP_MARK_SIZE = 20.freeze
|
3
|
-
|
4
2
|
class PDF
|
5
|
-
def initialize(options)
|
6
|
-
@options = options
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.border_size
|
10
|
-
([ CROP_MARK_SIZE ] * 2).join('x')
|
11
|
-
end
|
12
|
-
|
13
|
-
def page_size_with_crop_marks
|
14
|
-
[ card_width * 3, card_height * 3 ].collect { |size| size + CROP_MARK_SIZE * 2 }.join('x')
|
15
|
-
end
|
16
|
-
|
17
|
-
def generate_crop_mark_directives
|
18
|
-
(0..3).collect { |index|
|
19
|
-
pos_x = CROP_MARK_SIZE + index * card_width
|
20
|
-
pos_y = CROP_MARK_SIZE + index * card_height
|
21
|
-
|
22
|
-
[ [ 0 ], [ CROP_MARK_SIZE + page_height ] ].collect { |size|
|
23
|
-
[ pos_x ] + size + [ pos_x, size.first + CROP_MARK_SIZE ]
|
24
|
-
} +
|
25
|
-
[ [ 0 ], [ CROP_MARK_SIZE + page_width ] ].collect { |size|
|
26
|
-
size + [ pos_y ] + [ size.first + CROP_MARK_SIZE, pos_y ]
|
27
|
-
}
|
28
|
-
}.flatten(1).collect { |sx, sy, ex, ey| "#{sx},#{sy} #{ex},#{ey}" }
|
29
|
-
end
|
30
|
-
|
31
|
-
def generate_crop_mark_draws
|
32
|
-
generate_crop_mark_directives.collect { |coords| %{-stroke black -strokewidth 3 -draw "line #{coords}"} }
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
def card_width
|
37
|
-
card_size.first
|
38
|
-
end
|
39
|
-
|
40
|
-
def card_height
|
41
|
-
card_size.last
|
42
|
-
end
|
43
|
-
|
44
|
-
def page_height
|
45
|
-
card_height * 3
|
46
|
-
end
|
47
|
-
|
48
|
-
def page_width
|
49
|
-
card_width * 3
|
50
|
-
end
|
51
|
-
|
52
|
-
def card_size
|
53
|
-
@card_size ||= @options[:card_size].split('x').collect(&:to_i)
|
54
|
-
end
|
55
3
|
end
|
56
4
|
end
|
57
5
|
|
data/lib/svggvs/session.rb
CHANGED
@@ -3,11 +3,12 @@ module SVGGVS
|
|
3
3
|
attr_accessor :svg_source, :svg_merged_target, :individual_files_path, :on_card_finished
|
4
4
|
attr_accessor :png_files_path, :png_export_width, :pdf_card_size, :pdf_dpi
|
5
5
|
attr_accessor :pdf_target, :card_back, :card_size, :target, :post_read_data
|
6
|
-
attr_accessor :card_sheet_identifier, :prepend_pdf
|
6
|
+
attr_accessor :card_sheet_identifier, :prepend_pdf, :orientation
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
@index = 0
|
10
10
|
@card_sheet_identifier = "Card Data"
|
11
|
+
@orientation = :portrait
|
11
12
|
end
|
12
13
|
|
13
14
|
def configure
|
@@ -74,6 +75,10 @@ module SVGGVS
|
|
74
75
|
end
|
75
76
|
end
|
76
77
|
|
78
|
+
def pdf_class
|
79
|
+
@pdf_class ||= ("SVGGVS::Page::Letter::" + @card_size.spunderscore.camelize).constantize
|
80
|
+
end
|
81
|
+
|
77
82
|
EXPORT_DEFAULTS = {
|
78
83
|
:poker => {
|
79
84
|
:the_game_crafter => {
|
@@ -81,7 +86,21 @@ module SVGGVS
|
|
81
86
|
:pdf_dpi => 300,
|
82
87
|
:png_export_width => 825
|
83
88
|
}
|
84
|
-
}
|
89
|
+
},
|
90
|
+
:small_square_tile => {
|
91
|
+
:the_game_crafter => {
|
92
|
+
:pdf_card_size => '675x675',
|
93
|
+
:pdf_dpi => 300,
|
94
|
+
:png_export_width => 600
|
95
|
+
}
|
96
|
+
},
|
97
|
+
:square_shard => {
|
98
|
+
:the_game_crafter => {
|
99
|
+
:pdf_card_size => '300x300',
|
100
|
+
:pdf_dpi => 300,
|
101
|
+
:png_export_width => 225
|
102
|
+
}
|
103
|
+
},
|
85
104
|
}.freeze
|
86
105
|
end
|
87
106
|
end
|
data/lib/svggvs/version.rb
CHANGED
data/lib/svggvs.rb
CHANGED
data/skel/Cardfile
CHANGED
@@ -10,6 +10,10 @@
|
|
10
10
|
# prepend this PDF to the outputted PDF (useful for game rules)
|
11
11
|
# c.prepend_pdf = "rules.pdf"
|
12
12
|
|
13
|
+
# the cards are landscape, so rotate them counterclockwise
|
14
|
+
# after rendering in Inkscape
|
15
|
+
# c.orientation = :landscape
|
16
|
+
|
13
17
|
c.data_source = "data.ods"
|
14
18
|
end
|
15
19
|
|
metadata
CHANGED
@@ -1,110 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: svggvs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.12
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- John Bintz
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-24 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: thor
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: parallel
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: roo
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: activesupport
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rspec
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
description: Generate sets of card game cards using Inkscape templates and Ruby
|
@@ -115,7 +102,7 @@ executables:
|
|
115
102
|
extensions: []
|
116
103
|
extra_rdoc_files: []
|
117
104
|
files:
|
118
|
-
- .gitignore
|
105
|
+
- ".gitignore"
|
119
106
|
- Gemfile
|
120
107
|
- LICENSE.txt
|
121
108
|
- README.md
|
@@ -125,6 +112,10 @@ files:
|
|
125
112
|
- lib/svggvs/context.rb
|
126
113
|
- lib/svggvs/data_source.rb
|
127
114
|
- lib/svggvs/file.rb
|
115
|
+
- lib/svggvs/page/base.rb
|
116
|
+
- lib/svggvs/page/letter/poker.rb
|
117
|
+
- lib/svggvs/page/letter/small_shard.rb
|
118
|
+
- lib/svggvs/page/letter/small_square_tile.rb
|
128
119
|
- lib/svggvs/pdf.rb
|
129
120
|
- lib/svggvs/session.rb
|
130
121
|
- lib/svggvs/target.rb
|
@@ -136,32 +127,29 @@ files:
|
|
136
127
|
- skel/images/dog.png.jpg
|
137
128
|
- skel/template.svg
|
138
129
|
- spec/spec_helper.rb
|
139
|
-
- spec/svggvs/pdf_spec.rb
|
140
130
|
- svggvs.gemspec
|
141
131
|
homepage: ''
|
142
132
|
licenses: []
|
133
|
+
metadata: {}
|
143
134
|
post_install_message:
|
144
135
|
rdoc_options: []
|
145
136
|
require_paths:
|
146
137
|
- lib
|
147
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
-
none: false
|
149
139
|
requirements:
|
150
|
-
- -
|
140
|
+
- - ">="
|
151
141
|
- !ruby/object:Gem::Version
|
152
142
|
version: '0'
|
153
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
144
|
requirements:
|
156
|
-
- -
|
145
|
+
- - ">="
|
157
146
|
- !ruby/object:Gem::Version
|
158
147
|
version: '0'
|
159
148
|
requirements: []
|
160
149
|
rubyforge_project:
|
161
|
-
rubygems_version:
|
150
|
+
rubygems_version: 2.2.1
|
162
151
|
signing_key:
|
163
|
-
specification_version:
|
152
|
+
specification_version: 4
|
164
153
|
summary: Generate sets of card game cards using Inkscape templates and Ruby
|
165
154
|
test_files:
|
166
155
|
- spec/spec_helper.rb
|
167
|
-
- spec/svggvs/pdf_spec.rb
|
data/spec/svggvs/pdf_spec.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require_relative '../spec_helper'
|
2
|
-
require 'svggvs/pdf'
|
3
|
-
require 'digest/md5'
|
4
|
-
|
5
|
-
describe SVGGVS::PDF do
|
6
|
-
subject { SVGGVS::PDF.new(options) }
|
7
|
-
|
8
|
-
let(:options) {
|
9
|
-
{ card_size: '100x100' }
|
10
|
-
}
|
11
|
-
|
12
|
-
describe '#page_size_with_crop_marks' do
|
13
|
-
it "should have the right size" do
|
14
|
-
subject.page_size_with_crop_marks.should be == "340x340"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#generate_crop_mark_directives' do
|
19
|
-
let(:result) {
|
20
|
-
[
|
21
|
-
"20,0 20,20",
|
22
|
-
"20,320 20,340",
|
23
|
-
"120,0 120,20",
|
24
|
-
"120,320 120,340",
|
25
|
-
"220,0 220,20",
|
26
|
-
"220,320 220,340",
|
27
|
-
"320,0 320,20",
|
28
|
-
"320,20 340,20",
|
29
|
-
"320,120 340,120",
|
30
|
-
"320,220 340,220",
|
31
|
-
"320,320 320,340",
|
32
|
-
"320,320 340,320",
|
33
|
-
"0,20 20,20",
|
34
|
-
"0,120 20,120",
|
35
|
-
"0,220 20,220",
|
36
|
-
"0,320 20,320",
|
37
|
-
]
|
38
|
-
}
|
39
|
-
|
40
|
-
it 'should create correct definitions' do
|
41
|
-
subject.generate_crop_mark_directives.each { |coords|
|
42
|
-
result.should include(coords)
|
43
|
-
}
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|