prep 0.3.1 → 0.3.2
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.
- data/VERSION +1 -1
- data/examples/generate_sample8.rb +36 -0
- data/examples/sample8.yml +59 -0
- data/lib/core/loop.rb +25 -1
- metadata +38 -30
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.2
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.join(File.dirname(__FILE__), "..", "lib", "prep")
|
3
|
+
|
4
|
+
prep = PREP::Core::Prep.new("sample8.yml")
|
5
|
+
values = {
|
6
|
+
:content =>
|
7
|
+
{
|
8
|
+
:out_loop =>
|
9
|
+
{
|
10
|
+
:values => [
|
11
|
+
{ :inner_loop =>
|
12
|
+
{:values =>
|
13
|
+
[
|
14
|
+
{:title => "hogehoge1"},
|
15
|
+
{:title => "hogehoge2"},
|
16
|
+
{:title => "hogehoge3"},
|
17
|
+
{:title => "hogehoge4"},
|
18
|
+
{:title => "hogehoge5"},
|
19
|
+
{:title => "hogehoge6"},
|
20
|
+
{:title => "hogehoge7"},
|
21
|
+
{:title => "hogehoge8"},
|
22
|
+
{:title => "hogehoge9"},
|
23
|
+
{:title => "hogehoge10"},
|
24
|
+
{:title => "hogehoge11"},
|
25
|
+
{:title => "hogehoge12"},
|
26
|
+
],
|
27
|
+
:header => { :title=> "in title" },
|
28
|
+
},
|
29
|
+
},
|
30
|
+
],
|
31
|
+
:header => { :title_label => "タイトル(一回だけ)" },
|
32
|
+
},
|
33
|
+
},
|
34
|
+
}
|
35
|
+
|
36
|
+
prep.generate("#{$0}.pdf", values)
|
@@ -0,0 +1,59 @@
|
|
1
|
+
page:
|
2
|
+
size: a4
|
3
|
+
orientation: portrait
|
4
|
+
margin:
|
5
|
+
top: 10
|
6
|
+
left: 10
|
7
|
+
bottom: 10
|
8
|
+
right: 10
|
9
|
+
# 内側のグループ定義
|
10
|
+
inner_loop_header:
|
11
|
+
type: group
|
12
|
+
title:
|
13
|
+
type: label
|
14
|
+
label: "hogehoge"
|
15
|
+
region:
|
16
|
+
x: 10
|
17
|
+
y: 10
|
18
|
+
width: 60
|
19
|
+
height: 10
|
20
|
+
inner_loop_content:
|
21
|
+
type: group
|
22
|
+
title:
|
23
|
+
type: label
|
24
|
+
label: "hogehoge"
|
25
|
+
region:
|
26
|
+
x: 10
|
27
|
+
y: 10
|
28
|
+
width: 60
|
29
|
+
height: 10
|
30
|
+
# 外側のテーブル定義
|
31
|
+
out_loop_header:
|
32
|
+
type: group
|
33
|
+
# タイトル文字列
|
34
|
+
title_label:
|
35
|
+
type: label
|
36
|
+
label: "タイトル"
|
37
|
+
region:
|
38
|
+
x: 10
|
39
|
+
y: 10
|
40
|
+
width: 50
|
41
|
+
height: 5
|
42
|
+
out_loop_content:
|
43
|
+
type: group
|
44
|
+
inner_loop:
|
45
|
+
type: loop
|
46
|
+
direction: vertical
|
47
|
+
gap: 10
|
48
|
+
header: inner_loop_header
|
49
|
+
iterator: inner_loop_content
|
50
|
+
page_break: true
|
51
|
+
content:
|
52
|
+
type: group
|
53
|
+
out_loop:
|
54
|
+
type: loop
|
55
|
+
header: out_loop_header
|
56
|
+
iterator: out_loop_content
|
57
|
+
direction: vertical
|
58
|
+
page_break: true
|
59
|
+
header_repeat: false
|
data/lib/core/loop.rb
CHANGED
@@ -24,9 +24,14 @@ module PREP # nodoc
|
|
24
24
|
:allow_header_split => true,
|
25
25
|
:fixed_times => nil,
|
26
26
|
:at_least_one => false,
|
27
|
+
:header_repeat => true,
|
28
|
+
:x => 0,
|
29
|
+
:y => 0,
|
27
30
|
}
|
28
31
|
|
29
|
-
attr_reader :direction, :gap, :header_group, :iterator_group, :footer_group, :point
|
32
|
+
attr_reader :direction, :gap, :header_group, :iterator_group, :footer_group, :point
|
33
|
+
attr_reader :page_break, :width, :height, :allow_header_split, :fixed_times, :at_least_one
|
34
|
+
attr_reader :header_repeat
|
30
35
|
|
31
36
|
def initialize(identifier, values = { })
|
32
37
|
values = @@default_values.merge(key_string_to_symbol(values))
|
@@ -43,6 +48,8 @@ module PREP # nodoc
|
|
43
48
|
@allow_header_split = values[:allow_header_split]
|
44
49
|
@fixed_times = values[:fixed_times]
|
45
50
|
@at_least_one = !!values[:at_least_one]
|
51
|
+
@header_repeat = !!values[:header_repeat]
|
52
|
+
@header_rendering_count = 0
|
46
53
|
end
|
47
54
|
|
48
55
|
def direction=(d)
|
@@ -130,6 +137,8 @@ module PREP # nodoc
|
|
130
137
|
|
131
138
|
return w, h
|
132
139
|
end
|
140
|
+
# 計算を抜けるタイミングで @header_rendering_count をクリア
|
141
|
+
@header_rendering_count = 0
|
133
142
|
end
|
134
143
|
|
135
144
|
# リージョン補正
|
@@ -201,6 +210,9 @@ module PREP # nodoc
|
|
201
210
|
|
202
211
|
# フッタブロック描画
|
203
212
|
current_region = draw_footer(prep, current_region, values, stop_on_drawable)
|
213
|
+
|
214
|
+
# ヘッダの描画回数をクリア
|
215
|
+
@header_rendering_count = 0
|
204
216
|
end
|
205
217
|
|
206
218
|
private
|
@@ -209,6 +221,12 @@ module PREP # nodoc
|
|
209
221
|
#
|
210
222
|
# 描画後に新しい region を返却
|
211
223
|
def draw_header(prep, region, values, stop_on_drawable = nil)
|
224
|
+
# ヘッダー描画回数をインクリメント
|
225
|
+
@header_rendering_count += 1
|
226
|
+
if !@header_repeat && @header_rendering_count > 1
|
227
|
+
# ヘッダー繰り返しなしかつヘッダの描画回数が2回目以降の場合は何もせずに region を返却
|
228
|
+
return region
|
229
|
+
end
|
212
230
|
unless @header_group.nil?
|
213
231
|
header = prep.group(@header_group)
|
214
232
|
w, h = rewind_current_page(prep) do
|
@@ -237,6 +255,12 @@ module PREP # nodoc
|
|
237
255
|
|
238
256
|
# ヘッダ構成要素の描画領域を計算するためのメソッド
|
239
257
|
def calculate_header_region(prep, region, values, stop_on_drawable = nil)
|
258
|
+
# ヘッダー描画回数をインクリメント
|
259
|
+
@header_rendering_count += 1
|
260
|
+
if !@header_repeat && @header_rendering_count > 1
|
261
|
+
# ヘッダー繰り返しなしかつヘッダの描画回数が2回目以降の場合は何もせずに region を返却
|
262
|
+
return region
|
263
|
+
end
|
240
264
|
unless @header_group.nil?
|
241
265
|
header = prep.group(@header_group)
|
242
266
|
w, h = header.calculate_region(prep, region, values[:header], stop_on_drawable)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 3
|
8
|
-
-
|
9
|
-
|
10
|
-
version: 0.3.1
|
9
|
+
- 2
|
10
|
+
version: 0.3.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tetsuhisa MAKINO
|
@@ -15,82 +15,86 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-10-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-10-17 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
21
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
+
hash: 31
|
26
27
|
segments:
|
27
28
|
- 2
|
28
29
|
- 0
|
29
30
|
- 8
|
30
|
-
segments_generated: true
|
31
31
|
version: 2.0.8
|
32
|
-
|
32
|
+
version_requirements: *id001
|
33
|
+
name: hpdf
|
33
34
|
prerelease: false
|
34
35
|
type: :runtime
|
35
|
-
name: hpdf
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
38
39
|
requirements:
|
39
40
|
- - ~>
|
40
41
|
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
41
43
|
segments:
|
42
44
|
- 2
|
43
45
|
- 3
|
44
46
|
- 0
|
45
|
-
segments_generated: true
|
46
47
|
version: 2.3.0
|
47
|
-
|
48
|
+
version_requirements: *id002
|
49
|
+
name: rspec
|
48
50
|
prerelease: false
|
49
51
|
type: :development
|
50
|
-
name: rspec
|
51
52
|
- !ruby/object:Gem::Dependency
|
52
|
-
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
53
55
|
requirements:
|
54
56
|
- - ~>
|
55
57
|
- !ruby/object:Gem::Version
|
58
|
+
hash: 23
|
56
59
|
segments:
|
57
60
|
- 1
|
58
61
|
- 0
|
59
62
|
- 0
|
60
|
-
segments_generated: true
|
61
63
|
version: 1.0.0
|
62
|
-
|
64
|
+
version_requirements: *id003
|
65
|
+
name: bundler
|
63
66
|
prerelease: false
|
64
67
|
type: :development
|
65
|
-
name: bundler
|
66
68
|
- !ruby/object:Gem::Dependency
|
67
|
-
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
68
71
|
requirements:
|
69
72
|
- - ~>
|
70
73
|
- !ruby/object:Gem::Version
|
74
|
+
hash: 7
|
71
75
|
segments:
|
72
76
|
- 1
|
73
77
|
- 5
|
74
78
|
- 2
|
75
|
-
segments_generated: true
|
76
79
|
version: 1.5.2
|
77
|
-
|
80
|
+
version_requirements: *id004
|
81
|
+
name: jeweler
|
78
82
|
prerelease: false
|
79
83
|
type: :development
|
80
|
-
name: jeweler
|
81
84
|
- !ruby/object:Gem::Dependency
|
82
|
-
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
83
87
|
requirements:
|
84
88
|
- - ">="
|
85
89
|
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
86
91
|
segments:
|
87
92
|
- 0
|
88
|
-
segments_generated: true
|
89
93
|
version: "0"
|
90
|
-
|
94
|
+
version_requirements: *id005
|
95
|
+
name: rcov
|
91
96
|
prerelease: false
|
92
97
|
type: :development
|
93
|
-
name: rcov
|
94
98
|
description: PREP is PDF Report generator depends on HPDF.
|
95
99
|
email: tim.makino@gmail.com
|
96
100
|
executables:
|
@@ -121,6 +125,7 @@ files:
|
|
121
125
|
- examples/generate_sample5.rb
|
122
126
|
- examples/generate_sample6.rb
|
123
127
|
- examples/generate_sample7.rb
|
128
|
+
- examples/generate_sample8.rb
|
124
129
|
- examples/generate_sample_dataset.rb
|
125
130
|
- examples/group_sample.yml
|
126
131
|
- examples/image_sample.yml
|
@@ -131,6 +136,7 @@ files:
|
|
131
136
|
- examples/sample5.yml
|
132
137
|
- examples/sample6.yml
|
133
138
|
- examples/sample7.yml
|
139
|
+
- examples/sample8.yml
|
134
140
|
- lib/core/arc_rectangle.rb
|
135
141
|
- lib/core/color.rb
|
136
142
|
- lib/core/drawable.rb
|
@@ -151,7 +157,6 @@ files:
|
|
151
157
|
- spec/component_spec.rb
|
152
158
|
- spec/prep_spec.rb
|
153
159
|
- spec/spec_helper.rb
|
154
|
-
has_rdoc: true
|
155
160
|
homepage: http://github.com/maki-tetsu/prep
|
156
161
|
licenses:
|
157
162
|
- MIT
|
@@ -161,25 +166,27 @@ rdoc_options: []
|
|
161
166
|
require_paths:
|
162
167
|
- lib
|
163
168
|
required_ruby_version: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
164
170
|
requirements:
|
165
171
|
- - ">="
|
166
172
|
- !ruby/object:Gem::Version
|
173
|
+
hash: 3
|
167
174
|
segments:
|
168
175
|
- 0
|
169
|
-
segments_generated: true
|
170
176
|
version: "0"
|
171
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
172
179
|
requirements:
|
173
180
|
- - ">="
|
174
181
|
- !ruby/object:Gem::Version
|
182
|
+
hash: 3
|
175
183
|
segments:
|
176
184
|
- 0
|
177
|
-
segments_generated: true
|
178
185
|
version: "0"
|
179
186
|
requirements: []
|
180
187
|
|
181
188
|
rubyforge_project:
|
182
|
-
rubygems_version: 1.
|
189
|
+
rubygems_version: 1.8.10
|
183
190
|
signing_key:
|
184
191
|
specification_version: 3
|
185
192
|
summary: PREP is PDF Report generator depends on HPDF.
|
@@ -193,6 +200,7 @@ test_files:
|
|
193
200
|
- examples/generate_sample5.rb
|
194
201
|
- examples/generate_sample6.rb
|
195
202
|
- examples/generate_sample7.rb
|
203
|
+
- examples/generate_sample8.rb
|
196
204
|
- examples/generate_sample_dataset.rb
|
197
205
|
- spec/component_spec.rb
|
198
206
|
- spec/prep_spec.rb
|