prep 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/core/loop.rb +26 -0
  3. data/prep.gemspec +2 -2
  4. metadata +4 -4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
data/lib/core/loop.rb CHANGED
@@ -245,11 +245,37 @@ module PREP # nodoc
245
245
  @width ||= w
246
246
  @width = w if @width < w
247
247
  end
248
+ # イテーレーションが一度も描画できない場合は進行方向に対するページ切り替え例外
249
+ unless at_least_one_time_iteration?(prep, region, values)
250
+ if @direction == DIRECTIONS[:horizontal]
251
+ raise RegionWidthOverflowError.new
252
+ else # if @direction == DIRECTIONS[:vertical]
253
+ raise RegionHeightOverflowError.new
254
+ end
255
+ end
248
256
  end
249
257
 
250
258
  return region
251
259
  end
252
260
 
261
+ # 最低一回はイテーレーションループが描画可能であることを確認
262
+ def at_least_one_time_iteration?(prep, region, values)
263
+ # 現在のページ番号を確保
264
+ page_pos_x, page_pos_y = prep.page_pos_x, prep.page_pos_y
265
+ # 一回分のデータでイテーレーションの領域計算を実施
266
+ calculate_iterator_region(prep, region.dup, { :values => [values[:values].first] })
267
+ # 進行方向へのページ切り替えが発生したかを判定
268
+ if @direction == DIRECTIONS[:horizontal]
269
+ # X 方向へのページ切り替えが発生しているのでイテーレーション一回の描画不可
270
+ return false if page_pos_x != prep.page_pos_x
271
+ else # if @direction == DIRECTIONS[:vertical]
272
+ # Y 方向へのページ切り替えが発生しているのでイテーレーション一回の描画不可
273
+ return false if page_pos_y != prep.page_pos_y
274
+ end
275
+ # ページ切り替えが無いので描画可能
276
+ return true
277
+ end
278
+
253
279
  # 繰返し構成要素を描画するためのメソッド
254
280
  def draw_iterator(prep, region, values, stop_on_drawable = nil)
255
281
  iterator = prep.group(@iterator_group)
data/prep.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{prep}
8
- s.version = "0.2.2"
8
+ s.version = "0.2.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tetsuhisa MAKINO"]
12
- s.date = %q{2011-03-26}
12
+ s.date = %q{2011-03-30}
13
13
  s.description = %q{PREP is PDF Report generator depends on HPDF.}
14
14
  s.email = %q{tim.makino@gmail.com}
15
15
  s.executables = ["prep-test", "prep-helper"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prep
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tetsuhisa MAKINO
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-26 00:00:00 +09:00
18
+ date: 2011-03-30 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency