mork 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.ruby-version +1 -1
- data/README.md +130 -24
- data/lib/mork/extensions.rb +26 -0
- data/lib/mork/grid.rb +47 -325
- data/lib/mork/grid_const.rb +33 -35
- data/lib/mork/grid_omr.rb +94 -0
- data/lib/mork/grid_pdf.rb +107 -0
- data/lib/mork/mimage.rb +14 -2
- data/lib/mork/npatch.rb +0 -1
- data/lib/mork/{sheet.rb → sheet_omr.rb} +87 -89
- data/lib/mork/sheet_pdf.rb +60 -66
- data/lib/mork/version.rb +1 -1
- data/lib/mork.rb +2 -6
- data/spec/mork/extensions_spec.rb +10 -0
- data/spec/mork/grid_omr_spec.rb +122 -0
- data/spec/mork/grid_spec.rb +22 -138
- data/spec/mork/sheet_omr_spec.rb +165 -0
- data/spec/mork/sheet_pdf_spec.rb +53 -43
- data/spec/samples/grid01.yml +3 -4
- data/spec/samples/grid02.yml +57 -0
- data/spec/samples/grid160.yml +57 -0
- data/spec/samples/grid_omr_01.yml +28 -0
- data/spec/samples/sample_color.pdf +0 -0
- data/spec/samples/sample_gray.jpg +0 -0
- data/spec/samples/sheet666.jpg +0 -0
- data/spec/samples/sheet666.pdf +12566 -0
- data/spec/spec_helper.rb +3 -20
- metadata +50 -28
- data/spec/mork/sheet_spec.rb +0 -178
data/spec/mork/sheet_pdf_spec.rb
CHANGED
@@ -3,75 +3,85 @@ require 'spec_helper'
|
|
3
3
|
module Mork
|
4
4
|
|
5
5
|
describe SheetPDF do
|
6
|
+
let(:content) {
|
7
|
+
{
|
8
|
+
barcode: 1234566,
|
9
|
+
choices: [5] * 120,
|
10
|
+
header: {
|
11
|
+
name: 'John Doe UI01234',
|
12
|
+
title: 'A really serious and difficult test - 18 January 2013',
|
13
|
+
code: '201.48',
|
14
|
+
signature: 'Signature'
|
15
|
+
}
|
16
|
+
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
6
20
|
it 'assigns the grid to @grid' do
|
7
|
-
s = SheetPDF.new(
|
8
|
-
s.instance_variable_get(
|
21
|
+
s = SheetPDF.new(content)
|
22
|
+
s.instance_variable_get('@grip').should be_a GridPDF
|
9
23
|
end
|
10
24
|
|
11
25
|
it 'creates a grid by loading the specified file' do
|
12
|
-
s = SheetPDF.new(
|
13
|
-
s.instance_variable_get('@
|
26
|
+
s = SheetPDF.new(content, 'spec/samples/grid01.yml')
|
27
|
+
s.instance_variable_get('@grip').should be_a GridPDF
|
14
28
|
end
|
15
29
|
|
16
30
|
it 'raises an error with an invalid init parameter' do
|
17
|
-
lambda { SheetPDF.new(
|
31
|
+
lambda { SheetPDF.new(content, 2) }.should raise_error 'Invalid initialization parameter'
|
18
32
|
end
|
19
33
|
|
20
34
|
it 'assigns an array to @content' do
|
21
|
-
s = SheetPDF.new(
|
22
|
-
s.instance_variable_get(
|
35
|
+
s = SheetPDF.new(content)
|
36
|
+
s.instance_variable_get('@content').should be_an Array
|
23
37
|
end
|
24
38
|
|
25
39
|
it 'assigns an array of hashes to @content' do
|
26
|
-
s = SheetPDF.new(
|
27
|
-
s.instance_variable_get(
|
40
|
+
s = SheetPDF.new(content)
|
41
|
+
s.instance_variable_get('@content').first.should be_a Hash
|
28
42
|
end
|
29
43
|
|
30
44
|
it 'creates a basic PDF sheet' do
|
31
|
-
s = SheetPDF.new(
|
32
|
-
s.save(
|
45
|
+
s = SheetPDF.new(content)
|
46
|
+
s.save('tmp/sheet.pdf')
|
33
47
|
end
|
34
48
|
|
35
|
-
it 'creates a PDF sheet with
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
s = SheetPDF.new(content)
|
47
|
-
s.save(
|
49
|
+
it 'creates a basic PDF sheet with a code of 15' do
|
50
|
+
s = SheetPDF.new(content.merge({barcode: 15}))
|
51
|
+
s.save('tmp/sheet16.pdf')
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'creates a basic PDF sheet with a code of 666666666666' do
|
55
|
+
s = SheetPDF.new(content.merge({barcode: 666666666666}))
|
56
|
+
s.save('tmp/sheet666.pdf')
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'creates a PDF sheet with the maximum possible barcode' do
|
60
|
+
s = SheetPDF.new(content.merge({barcode: 1099511627775}))
|
61
|
+
s.save('tmp/maxcode.pdf')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'creates a PDF sheet with 160 items' do
|
65
|
+
s = SheetPDF.new(content.merge({choices: [5] * 160}), 'spec/samples/grid160.yml')
|
66
|
+
s.save('tmp/i160.pdf')
|
48
67
|
end
|
49
68
|
|
50
|
-
it
|
51
|
-
|
69
|
+
it 'should create a multipage pdf' do
|
70
|
+
content2 = [
|
52
71
|
{
|
53
|
-
|
72
|
+
barcode: 18446744073,
|
54
73
|
choices: [5] * 100,
|
55
74
|
header: {
|
56
|
-
name:
|
57
|
-
title:
|
58
|
-
code:
|
59
|
-
signature:
|
75
|
+
name: 'Jane Roe',
|
76
|
+
title: 'Same difficult test',
|
77
|
+
code: '119.27',
|
78
|
+
signature: 'Signed'
|
60
79
|
}
|
61
80
|
},
|
62
|
-
|
63
|
-
code: 5512,
|
64
|
-
choices: [5] * 100,
|
65
|
-
header: {
|
66
|
-
name: "Bonazza Sara vr354320",
|
67
|
-
title: "Esame di Fondamenti Morfologici e Funzionali della Vita - 18 gennaio 2013",
|
68
|
-
code: "201.48",
|
69
|
-
signature: "Firma"
|
70
|
-
}
|
71
|
-
}
|
81
|
+
content
|
72
82
|
]
|
73
|
-
s = SheetPDF.new(
|
74
|
-
s.save(
|
83
|
+
s = SheetPDF.new(content2)
|
84
|
+
s.save('tmp/p2.pdf')
|
75
85
|
end
|
76
86
|
end
|
77
87
|
end
|
data/spec/samples/grid01.yml
CHANGED
@@ -31,7 +31,7 @@ header:
|
|
31
31
|
box: true
|
32
32
|
items:
|
33
33
|
columns: 4
|
34
|
-
column_width:
|
34
|
+
column_width: 44
|
35
35
|
rows: 30
|
36
36
|
first_x: 10.5
|
37
37
|
first_y: 55.5
|
@@ -40,11 +40,10 @@ items:
|
|
40
40
|
cell_width: 6.0
|
41
41
|
cell_height: 5.0
|
42
42
|
max_cells: 5
|
43
|
-
|
43
|
+
font_size: 9
|
44
44
|
number_width: 8
|
45
45
|
number_margin: 2
|
46
|
-
|
47
|
-
code:
|
46
|
+
barcode:
|
48
47
|
bits: 40
|
49
48
|
left: 15
|
50
49
|
width: 3.0
|
@@ -0,0 +1,57 @@
|
|
1
|
+
page_size:
|
2
|
+
width: 210
|
3
|
+
height: 297
|
4
|
+
regmarks:
|
5
|
+
margin: 10
|
6
|
+
radius: 2.5
|
7
|
+
search: 12
|
8
|
+
offset: 2
|
9
|
+
header:
|
10
|
+
name:
|
11
|
+
top: 5
|
12
|
+
left: 7.5
|
13
|
+
width: 170
|
14
|
+
size: 14
|
15
|
+
title:
|
16
|
+
top: 15
|
17
|
+
left: 7.5
|
18
|
+
width: 180
|
19
|
+
size: 12
|
20
|
+
code:
|
21
|
+
top: 5
|
22
|
+
left: 165
|
23
|
+
width: 20
|
24
|
+
size: 14
|
25
|
+
signature:
|
26
|
+
top: 30
|
27
|
+
left: 7.5
|
28
|
+
width: 120
|
29
|
+
height: 15
|
30
|
+
size: 7
|
31
|
+
box: true
|
32
|
+
items:
|
33
|
+
columns: 4
|
34
|
+
column_width: 44
|
35
|
+
rows: 30
|
36
|
+
first_x: 10.5
|
37
|
+
first_y: 55.5
|
38
|
+
x_spacing: 7.0
|
39
|
+
y_spacing: 7.0
|
40
|
+
cell_width: 6.0
|
41
|
+
cell_height: 5.0
|
42
|
+
max_cells: 5
|
43
|
+
font_size: 9
|
44
|
+
number_width: 8
|
45
|
+
number_margin: 2
|
46
|
+
barcode:
|
47
|
+
bits: 40
|
48
|
+
left: 15
|
49
|
+
width: 3.0
|
50
|
+
height: 2.5
|
51
|
+
spacing: 4
|
52
|
+
control:
|
53
|
+
top: 40
|
54
|
+
left: 123
|
55
|
+
width: 50
|
56
|
+
size: 9
|
57
|
+
margin: 2.5
|
@@ -0,0 +1,57 @@
|
|
1
|
+
page_size:
|
2
|
+
width: 210
|
3
|
+
height: 297
|
4
|
+
regmarks:
|
5
|
+
margin: 10
|
6
|
+
radius: 2.5
|
7
|
+
search: 12
|
8
|
+
offset: 2
|
9
|
+
header:
|
10
|
+
name:
|
11
|
+
top: 5
|
12
|
+
left: 7.5
|
13
|
+
width: 170
|
14
|
+
size: 14
|
15
|
+
title:
|
16
|
+
top: 12
|
17
|
+
left: 7.5
|
18
|
+
width: 85
|
19
|
+
size: 12
|
20
|
+
code:
|
21
|
+
top: 5
|
22
|
+
left: 165
|
23
|
+
width: 20
|
24
|
+
size: 14
|
25
|
+
signature:
|
26
|
+
top: 12
|
27
|
+
left: 100
|
28
|
+
width: 80
|
29
|
+
height: 16
|
30
|
+
size: 7
|
31
|
+
box: true
|
32
|
+
items:
|
33
|
+
columns: 4
|
34
|
+
column_width: 44
|
35
|
+
rows: 40
|
36
|
+
first_x: 10.5
|
37
|
+
first_y: 40
|
38
|
+
x_spacing: 7.0
|
39
|
+
y_spacing: 5.5
|
40
|
+
cell_width: 6.0
|
41
|
+
cell_height: 4.0
|
42
|
+
max_cells: 5
|
43
|
+
font_size: 8
|
44
|
+
number_width: 8
|
45
|
+
number_margin: 2
|
46
|
+
barcode:
|
47
|
+
bits: 40
|
48
|
+
left: 15
|
49
|
+
width: 3.0
|
50
|
+
height: 2.5
|
51
|
+
spacing: 4
|
52
|
+
control:
|
53
|
+
top: 40
|
54
|
+
left: 123
|
55
|
+
width: 50
|
56
|
+
size: 9
|
57
|
+
margin: 2.5
|
@@ -0,0 +1,28 @@
|
|
1
|
+
page_size:
|
2
|
+
width: 210
|
3
|
+
height: 297
|
4
|
+
regmarks:
|
5
|
+
margin: 10
|
6
|
+
radius: 2.5
|
7
|
+
search: 12
|
8
|
+
offset: 2
|
9
|
+
items:
|
10
|
+
columns: 4
|
11
|
+
column_width: 44
|
12
|
+
rows: 30
|
13
|
+
first_x: 10.5
|
14
|
+
first_y: 55.5
|
15
|
+
x_spacing: 7
|
16
|
+
y_spacing: 7
|
17
|
+
cell_width: 6
|
18
|
+
cell_height: 5
|
19
|
+
max_cells: 5
|
20
|
+
font_size: 9
|
21
|
+
number_width: 8
|
22
|
+
number_margin: 2
|
23
|
+
barcode:
|
24
|
+
bits: 40
|
25
|
+
left: 15
|
26
|
+
width: 3
|
27
|
+
height: 2.5
|
28
|
+
spacing: 4
|
Binary file
|
Binary file
|
Binary file
|