thinreports 0.7.6 → 0.8.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.
Files changed (277) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -5
  3. data/.travis.yml +8 -4
  4. data/CHANGELOG.md +220 -0
  5. data/Gemfile +2 -9
  6. data/MIT-LICENSE +1 -1
  7. data/README.md +286 -0
  8. data/Rakefile +38 -8
  9. data/examples/character_spacing/character_spacing.rb +8 -0
  10. data/examples/character_spacing/character_spacing.tlf +1 -0
  11. data/examples/dynamic_image/dynamic_image.rb +31 -0
  12. data/examples/dynamic_image/dynamic_image.tlf +1 -0
  13. data/examples/dynamic_style/dynamic_style.rb +150 -0
  14. data/examples/dynamic_style/dynamic_style.tlf +1 -0
  15. data/examples/dynamic_style/dynamic_style_in_list.tlf +1 -0
  16. data/examples/eudc/eudc.rb +20 -0
  17. data/examples/eudc/eudc.tlf +1 -0
  18. data/examples/helper.rb +50 -0
  19. data/examples/hidden_shapes/hidden_shapes.rb +9 -0
  20. data/examples/hidden_shapes/hidden_shapes.tlf +1 -0
  21. data/examples/list_events/list_events.rb +59 -0
  22. data/examples/list_events/list_events_0_7_7.tlf +1 -0
  23. data/examples/list_events/list_events_0_8.tlf +1 -0
  24. data/examples/list_manual_generation/list_manual_generation.rb +22 -0
  25. data/examples/list_manual_generation/list_manual_generation.tlf +1 -0
  26. data/examples/list_page_number/list_page_number.rb +17 -0
  27. data/examples/list_page_number/list_page_number.tlf +1 -0
  28. data/examples/page_number/page_number.rb +33 -0
  29. data/examples/page_number/page_number.tlf +1 -0
  30. data/examples/password_setting/password_setting.rb +10 -0
  31. data/examples/password_setting/password_setting.tlf +1 -0
  32. data/examples/report_callbacks/report_callbacks.rb +31 -0
  33. data/examples/report_callbacks/report_callbacks.tlf +1 -0
  34. data/examples/single_line_tblock/single_line_tblock.rb +13 -0
  35. data/examples/single_line_tblock/single_line_tblock.tlf +1 -0
  36. data/examples/tblock_overflow/tblock_overflow.rb +20 -0
  37. data/examples/tblock_overflow/tblock_overflow.tlf +1 -0
  38. data/examples/tblock_styles/font_size.tlf +1 -0
  39. data/examples/tblock_styles/tblock_styles.rb +43 -0
  40. data/examples/tblock_styles/tblock_styles.tlf +1 -0
  41. data/examples/text_align/text_align.rb +8 -0
  42. data/examples/text_align/text_align.tlf +1 -0
  43. data/examples/typeB_page_size/B4_ISO.tlf +1 -0
  44. data/examples/typeB_page_size/B4_JIS.tlf +1 -0
  45. data/examples/typeB_page_size/typeB_page_size.rb +17 -0
  46. data/examples/word_wrap/word_wrap.rb +26 -0
  47. data/examples/word_wrap/word_wrap.tlf +1 -0
  48. data/lib/thinreports/config.rb +30 -10
  49. data/lib/thinreports/core/errors.rb +23 -20
  50. data/lib/thinreports/core/events.rb +18 -19
  51. data/lib/thinreports/core/format/base.rb +20 -25
  52. data/lib/thinreports/core/format/builder.rb +19 -27
  53. data/lib/thinreports/core/shape/base/interface.rb +15 -15
  54. data/lib/thinreports/core/shape/base/internal.rb +15 -20
  55. data/lib/thinreports/core/shape/base.rb +4 -5
  56. data/lib/thinreports/core/shape/basic/block_format.rb +3 -4
  57. data/lib/thinreports/core/shape/basic/block_interface.rb +9 -4
  58. data/lib/thinreports/core/shape/basic/block_internal.rb +9 -10
  59. data/lib/thinreports/core/shape/basic/format.rb +11 -10
  60. data/lib/thinreports/core/shape/basic/interface.rb +3 -3
  61. data/lib/thinreports/core/shape/basic/internal.rb +9 -6
  62. data/lib/thinreports/core/shape/basic.rb +1 -1
  63. data/lib/thinreports/core/shape/image_block/format.rb +5 -6
  64. data/lib/thinreports/core/shape/image_block/interface.rb +9 -7
  65. data/lib/thinreports/core/shape/image_block/internal.rb +5 -6
  66. data/lib/thinreports/core/shape/image_block.rb +1 -1
  67. data/lib/thinreports/core/shape/list/configuration.rb +37 -16
  68. data/lib/thinreports/core/shape/list/events.rb +11 -11
  69. data/lib/thinreports/core/shape/list/format.rb +27 -28
  70. data/lib/thinreports/core/shape/list/manager.rb +135 -95
  71. data/lib/thinreports/core/shape/list/page.rb +57 -51
  72. data/lib/thinreports/core/shape/list/page_state.rb +19 -17
  73. data/lib/thinreports/core/shape/list/section_format.rb +14 -15
  74. data/lib/thinreports/core/shape/list/section_interface.rb +15 -16
  75. data/lib/thinreports/core/shape/list/section_internal.rb +7 -8
  76. data/lib/thinreports/core/shape/list/store.rb +10 -11
  77. data/lib/thinreports/core/shape/list.rb +1 -1
  78. data/lib/thinreports/core/shape/manager/format.rb +10 -11
  79. data/lib/thinreports/core/shape/manager/internal.rb +22 -21
  80. data/lib/thinreports/core/shape/manager/target.rb +63 -34
  81. data/lib/thinreports/core/shape/manager.rb +1 -1
  82. data/lib/thinreports/core/shape/page_number/format.rb +25 -0
  83. data/lib/thinreports/core/shape/page_number/interface.rb +27 -0
  84. data/lib/thinreports/core/shape/page_number/internal.rb +57 -0
  85. data/lib/thinreports/core/shape/page_number.rb +15 -0
  86. data/lib/thinreports/core/shape/style/base.rb +29 -29
  87. data/lib/thinreports/core/shape/style/basic.rb +1 -1
  88. data/lib/thinreports/core/shape/style/graphic.rb +10 -25
  89. data/lib/thinreports/core/shape/style/text.rb +41 -31
  90. data/lib/thinreports/core/shape/style.rb +1 -1
  91. data/lib/thinreports/core/shape/text/format.rb +8 -9
  92. data/lib/thinreports/core/shape/text/interface.rb +2 -2
  93. data/lib/thinreports/core/shape/text/internal.rb +6 -7
  94. data/lib/thinreports/core/shape/text.rb +1 -1
  95. data/lib/thinreports/core/shape/text_block/format.rb +17 -17
  96. data/lib/thinreports/core/shape/text_block/formatter/basic.rb +13 -12
  97. data/lib/thinreports/core/shape/text_block/formatter/datetime.rb +8 -9
  98. data/lib/thinreports/core/shape/text_block/formatter/number.rb +11 -12
  99. data/lib/thinreports/core/shape/text_block/formatter/padding.rb +9 -32
  100. data/lib/thinreports/core/shape/text_block/formatter.rb +7 -8
  101. data/lib/thinreports/core/shape/text_block/interface.rb +2 -2
  102. data/lib/thinreports/core/shape/text_block/internal.rb +19 -20
  103. data/lib/thinreports/core/shape/text_block.rb +1 -1
  104. data/lib/thinreports/core/shape.rb +11 -13
  105. data/lib/thinreports/core/utils.rb +33 -32
  106. data/lib/thinreports/generator/base.rb +15 -24
  107. data/lib/thinreports/generator/configuration.rb +10 -9
  108. data/lib/thinreports/generator/pdf/configuration.rb +11 -6
  109. data/lib/thinreports/generator/pdf/document/draw_shape.rb +41 -32
  110. data/lib/thinreports/generator/pdf/document/font.rb +53 -44
  111. data/lib/thinreports/generator/pdf/document/graphics/attributes.rb +34 -25
  112. data/lib/thinreports/generator/pdf/document/graphics/basic.rb +25 -25
  113. data/lib/thinreports/generator/pdf/document/graphics/image.rb +15 -15
  114. data/lib/thinreports/generator/pdf/document/graphics/text.rb +43 -41
  115. data/lib/thinreports/generator/pdf/document/graphics.rb +8 -9
  116. data/lib/thinreports/generator/pdf/document/page.rb +37 -23
  117. data/lib/thinreports/generator/pdf/document/parse_color.rb +9 -10
  118. data/lib/thinreports/generator/pdf/document/parse_svg.rb +14 -15
  119. data/lib/thinreports/generator/pdf/document.rb +28 -28
  120. data/lib/thinreports/generator/pdf/drawer/base.rb +16 -22
  121. data/lib/thinreports/generator/pdf/drawer/list.rb +39 -21
  122. data/lib/thinreports/generator/pdf/drawer/list_section.rb +17 -18
  123. data/lib/thinreports/generator/pdf/drawer/page.rb +37 -26
  124. data/lib/thinreports/generator/pdf/prawn_ext.rb +18 -17
  125. data/lib/thinreports/generator/pdf.rb +28 -31
  126. data/lib/thinreports/generator.rb +6 -8
  127. data/lib/thinreports/layout/base.rb +24 -36
  128. data/lib/thinreports/layout/configuration.rb +11 -9
  129. data/lib/thinreports/layout/format.rb +26 -31
  130. data/lib/thinreports/layout/version.rb +8 -9
  131. data/lib/thinreports/layout.rb +2 -2
  132. data/lib/thinreports/report/base.rb +117 -109
  133. data/lib/thinreports/report/events.rb +5 -5
  134. data/lib/thinreports/report/internal.rb +48 -38
  135. data/lib/thinreports/{core → report}/page.rb +42 -32
  136. data/lib/thinreports/report.rb +10 -14
  137. data/lib/thinreports/version.rb +2 -3
  138. data/lib/thinreports.rb +14 -2
  139. data/test/data/font.ttf +0 -0
  140. data/test/data/layout_block.tlf +1 -0
  141. data/test/data/layout_list.tlf +1 -0
  142. data/test/data/layout_list_noheader.tlf +1 -0
  143. data/test/data/layout_text1.tlf +1 -0
  144. data/test/data/layout_text2.tlf +1 -0
  145. data/test/test_helper.rb +74 -0
  146. data/test/tmp/.gitkeep +0 -0
  147. data/test/unit/core/format/test_base.rb +14 -14
  148. data/test/unit/core/format/test_builder.rb +20 -25
  149. data/test/unit/core/shape/base/test_internal.rb +34 -37
  150. data/test/unit/core/shape/basic/test_basic_format.rb +4 -4
  151. data/test/unit/core/shape/basic/test_basic_interface.rb +15 -13
  152. data/test/unit/core/shape/basic/test_basic_internal.rb +19 -16
  153. data/test/unit/core/shape/basic/test_format.rb +4 -4
  154. data/test/unit/core/shape/basic/test_interface.rb +36 -46
  155. data/test/unit/core/shape/basic/test_internal.rb +29 -18
  156. data/test/unit/core/shape/image_block/test_format.rb +5 -5
  157. data/test/unit/core/shape/image_block/test_interface.rb +17 -16
  158. data/test/unit/core/shape/image_block/test_internal.rb +19 -16
  159. data/test/unit/core/shape/list/test_configuration.rb +50 -33
  160. data/test/unit/core/shape/list/test_events.rb +7 -7
  161. data/test/unit/core/shape/list/test_format.rb +16 -18
  162. data/test/unit/core/shape/list/test_manager.rb +15 -5
  163. data/test/unit/core/shape/list/test_page.rb +80 -22
  164. data/test/unit/core/shape/list/test_page_state.rb +13 -13
  165. data/test/unit/core/shape/list/test_section_format.rb +16 -17
  166. data/test/unit/core/shape/list/test_section_interface.rb +30 -22
  167. data/test/unit/core/shape/list/test_section_internal.rb +21 -19
  168. data/test/unit/core/shape/list/test_store.rb +7 -7
  169. data/test/unit/core/shape/manager/test_format.rb +11 -15
  170. data/test/unit/core/shape/manager/test_internal.rb +9 -9
  171. data/test/unit/core/shape/manager/test_target.rb +85 -57
  172. data/test/unit/core/shape/page_number/test_format.rb +73 -0
  173. data/test/unit/core/shape/page_number/test_interface.rb +33 -0
  174. data/test/unit/core/shape/page_number/test_internal.rb +81 -0
  175. data/test/unit/core/shape/styles/test_base.rb +9 -9
  176. data/test/unit/core/shape/styles/test_basic.rb +5 -5
  177. data/test/unit/core/shape/styles/test_graphic.rb +19 -33
  178. data/test/unit/core/shape/styles/test_text.rb +29 -7
  179. data/test/unit/core/shape/text/test_format.rb +6 -6
  180. data/test/unit/core/shape/text/test_internal.rb +11 -12
  181. data/test/unit/core/shape/text_block/formatter/test_basic.rb +16 -16
  182. data/test/unit/core/shape/text_block/formatter/test_datetime.rb +22 -20
  183. data/test/unit/core/shape/text_block/formatter/test_number.rb +34 -34
  184. data/test/unit/core/shape/text_block/formatter/test_padding.rb +44 -44
  185. data/test/unit/core/shape/text_block/test_format.rb +13 -8
  186. data/test/unit/core/shape/text_block/test_formatter.rb +17 -17
  187. data/test/unit/core/shape/text_block/test_interface.rb +37 -20
  188. data/test/unit/core/shape/text_block/test_internal.rb +38 -38
  189. data/test/unit/core/test_events.rb +10 -8
  190. data/test/unit/core/test_shape.rb +11 -7
  191. data/test/unit/core/test_utils.rb +68 -0
  192. data/test/unit/generator/pdf/document/graphics/test_attributes.rb +10 -4
  193. data/test/unit/generator/pdf/document/graphics/test_text.rb +60 -53
  194. data/test/unit/generator/pdf/document/test_draw_shape.rb +14 -6
  195. data/test/unit/generator/pdf/document/test_font.rb +79 -58
  196. data/test/unit/generator/pdf/document/test_graphics.rb +18 -19
  197. data/test/unit/generator/pdf/document/test_page.rb +68 -43
  198. data/test/unit/generator/pdf/document/test_parse_color.rb +5 -5
  199. data/test/unit/generator/pdf/test_configuration.rb +16 -9
  200. data/test/unit/generator/pdf/test_document.rb +8 -16
  201. data/test/unit/generator/test_base.rb +31 -42
  202. data/test/unit/generator/test_configuration.rb +6 -6
  203. data/test/unit/generator/test_pdf.rb +15 -21
  204. data/test/unit/layout/test_base.rb +34 -79
  205. data/test/unit/layout/test_configuration.rb +12 -37
  206. data/test/unit/layout/test_format.rb +36 -39
  207. data/test/unit/layout/test_version.rb +4 -4
  208. data/test/unit/report/test_base.rb +160 -192
  209. data/test/unit/report/test_events.rb +4 -4
  210. data/test/unit/report/test_internal.rb +102 -82
  211. data/test/unit/test_config.rb +31 -12
  212. data/test/unit/test_layout.rb +7 -7
  213. data/test/unit/test_report.rb +12 -24
  214. data/thinreports.gemspec +23 -26
  215. metadata +118 -181
  216. data/.yardopts +0 -1
  217. data/LICENSE +0 -1
  218. data/README.rdoc +0 -167
  219. data/doc/yardoc_templates/default/layout/html/footer.erb +0 -10
  220. data/lib/thinreports/core/ext/array.rb +0 -19
  221. data/lib/thinreports/core/ext/hash.rb +0 -19
  222. data/lib/thinreports/core/ext/object.rb +0 -25
  223. data/lib/thinreports/core/ext.rb +0 -5
  224. data/lib/thinreports/core/format.rb +0 -14
  225. data/lib/thinreports/core/ordered_hash.rb +0 -39
  226. data/lib/thinreports/core.rb +0 -20
  227. data/lib/thinreports/generator/pdf/drawer.rb +0 -16
  228. data/tasks/doc.rake +0 -13
  229. data/tasks/test.rake +0 -56
  230. data/test/benchmark/basic_estimate.tlf +0 -1
  231. data/test/benchmark/bench_basic_estimate.rb +0 -95
  232. data/test/case/character_spacing/character_spacing.rb +0 -7
  233. data/test/case/character_spacing/character_spacing.tlf +0 -1
  234. data/test/case/dynamic_image/dynamic_image.rb +0 -41
  235. data/test/case/dynamic_image/dynamic_image.tlf +0 -1
  236. data/test/case/dynamic_style/dynamic_style.rb +0 -154
  237. data/test/case/dynamic_style/dynamic_style.tlf +0 -1
  238. data/test/case/dynamic_style/dynamic_style_in_list.tlf +0 -1
  239. data/test/case/eudc/eudc.rb +0 -20
  240. data/test/case/eudc/eudc.tlf +0 -1
  241. data/test/case/helper.rb +0 -29
  242. data/test/case/hidden_shapes/hidden_shapes.rb +0 -13
  243. data/test/case/hidden_shapes/hidden_shapes.tlf +0 -1
  244. data/test/case/list_events/list_events.rb +0 -32
  245. data/test/case/list_events/list_events.tlf +0 -1
  246. data/test/case/list_header_inheriting/list_header_inheriting.rb +0 -17
  247. data/test/case/list_header_inheriting/list_header_inheriting.tlf +0 -1
  248. data/test/case/list_manual_generation/list_manual_generation.rb +0 -22
  249. data/test/case/list_manual_generation/list_manual_generation.tlf +0 -1
  250. data/test/case/single_line_tblock/single_line_tblock.rb +0 -15
  251. data/test/case/single_line_tblock/single_line_tblock.tlf +0 -1
  252. data/test/case/tblock_overflow/tblock_overflow.rb +0 -20
  253. data/test/case/tblock_overflow/tblock_overflow.tlf +0 -1
  254. data/test/case/tblock_styles/tblock_styles.rb +0 -27
  255. data/test/case/tblock_styles/tblock_styles.tlf +0 -1
  256. data/test/case/text_align/text_align.rb +0 -9
  257. data/test/case/text_align/text_align.tlf +0 -1
  258. data/test/unit/core/ext/array_spec.rb +0 -29
  259. data/test/unit/core/ext/hash_spec.rb +0 -29
  260. data/test/unit/core/ext/object_spec.rb +0 -30
  261. data/test/unit/core/ordered_hash_spec.rb +0 -51
  262. data/test/unit/core/shape/base/test_interface.rb +0 -52
  263. data/test/unit/core/utils_spec.rb +0 -56
  264. data/test/unit/data/basic_layout1.tlf +0 -1
  265. data/test/unit/data/basic_layout2.tlf +0 -1
  266. data/test/unit/data/basic_list_layout.tlf +0 -1
  267. data/test/unit/data/basic_list_noheader_layout.tlf +0 -1
  268. data/test/unit/helper.rb +0 -65
  269. /data/{test/case → examples}/dynamic_image/img200x100.png +0 -0
  270. /data/{test/case → examples}/dynamic_image/img50x50.png +0 -0
  271. /data/{test/case → examples}/dynamic_style/image.png +0 -0
  272. /data/{test/case → examples}/eudc/eudc.ttf +0 -0
  273. /data/{resources/fonts → fonts}/IPA_Font_License_Agreement_v1.0.txt +0 -0
  274. /data/{resources/fonts → fonts}/ipag.ttf +0 -0
  275. /data/{resources/fonts → fonts}/ipagp.ttf +0 -0
  276. /data/{resources/fonts → fonts}/ipam.ttf +0 -0
  277. /data/{resources/fonts → fonts}/ipamp.ttf +0 -0
@@ -1,27 +1,31 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Report::TestInternal < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Report::TestInternal < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- Report = ThinReports::Report
10
-
9
+ Report = Thinreports::Report
10
+
11
11
  def report
12
12
  Report::Base.new
13
13
  end
14
14
 
15
15
  def sample_layout1
16
- data_file('basic_layout1.tlf')
16
+ data_file('layout_text1.tlf')
17
17
  end
18
18
 
19
19
  def sample_layout2
20
- data_file('basic_layout2.tlf')
20
+ data_file('layout_text2.tlf')
21
+ end
22
+
23
+ def sample_list_layout
24
+ data_file('layout_list.tlf')
21
25
  end
22
26
 
23
27
  def test_layout_specified_in_new_method_should_be_defined_as_default_layout
24
- internal = Report::Internal.new(report, :layout => sample_layout1)
28
+ internal = Report::Internal.new(report, layout: sample_layout1)
25
29
  assert_equal internal.default_layout.filename, sample_layout1
26
30
  end
27
31
 
@@ -31,89 +35,98 @@ class ThinReports::Report::TestInternal < MiniTest::Unit::TestCase
31
35
 
32
36
  assert_equal internal.default_layout.filename, sample_layout1
33
37
  end
34
-
38
+
35
39
  def test_register_layout_should_be_set_as_default_layout_when_default_option_is_true
36
40
  internal = Report::Internal.new(report, {})
37
- internal.register_layout(sample_layout1, :default => true)
38
-
41
+ internal.register_layout(sample_layout1, default: true)
42
+
39
43
  assert_equal internal.default_layout.filename, sample_layout1
40
44
  end
41
-
45
+
42
46
  def test_register_layout_should_be_able_to_change_the_default_layout
43
- internal = Report::Internal.new(report, :layout => sample_layout1)
44
- internal.register_layout(sample_layout2, :default => true)
47
+ internal = Report::Internal.new(report, layout: sample_layout1)
48
+ internal.register_layout(sample_layout2, default: true)
45
49
 
46
50
  assert_equal internal.default_layout.filename, sample_layout2
47
51
  end
48
-
52
+
49
53
  def test_register_layout_should_be_set_as_with_id_when_id_option_is_set
50
54
  internal = Report::Internal.new(report, {})
51
- internal.register_layout(sample_layout1, :id => :foo)
55
+ internal.register_layout(sample_layout1, id: :foo)
52
56
 
53
57
  assert_equal internal.layout_registry[:foo].filename, sample_layout1
54
58
  end
55
-
59
+
56
60
  def test_register_layout_should_raise_an_error_when_id_is_already_registered
57
61
  internal = Report::Internal.new(report, {})
58
- internal.register_layout(sample_layout2, :id => :foo)
59
-
62
+ internal.register_layout(sample_layout2, id: :foo)
63
+
60
64
  assert_raises ArgumentError do
61
- internal.register_layout(sample_layout1, :id => :foo)
65
+ internal.register_layout(sample_layout1, id: :foo)
62
66
  end
63
67
  end
64
-
68
+
65
69
  def test_register_layout_should_return_the_instance_of_LayoutConfiguration
66
70
  internal = Report::Internal.new(report, {})
67
71
 
68
- assert_instance_of ThinReports::Layout::Configuration,
72
+ assert_instance_of Thinreports::Layout::Configuration,
69
73
  internal.register_layout(sample_layout1)
70
74
  end
71
-
75
+
76
+ def test_register_layout_should_be_able_to_set_list_configuration_without_errors
77
+ internal = Report::Internal.new(report, {})
78
+ internal.register_layout(sample_list_layout) do |config|
79
+ config.list(:list).use_stores foo: 0
80
+ config.list(:list).use_stores bar: 1000
81
+ end
82
+ pass
83
+ end
84
+
72
85
  def test_add_page_should_finalize_the_current_page
73
- layout = ThinReports::Layout.new(sample_layout1)
86
+ layout = Thinreports::Layout.new(sample_layout1)
74
87
 
75
- internal = Report::Internal.new(report, :layout => sample_layout1)
76
- page = internal.add_page(ThinReports::Core::Page.new(report, layout))
77
- internal.add_page(ThinReports::Core::Page.new(report, layout))
88
+ internal = Report::Internal.new(report, layout: sample_layout1)
89
+ page = internal.add_page(Thinreports::Report::Page.new(report, layout))
90
+ internal.add_page(Thinreports::Report::Page.new(report, layout))
78
91
 
79
92
  assert_equal page.finalized?, true
80
93
  end
81
94
 
82
95
  def test_add_page_should_return_the_current_page
83
- layout = ThinReports::Layout.new(sample_layout1)
84
- new_page = ThinReports::Core::Page.new(report, layout)
96
+ layout = Thinreports::Layout.new(sample_layout1)
97
+ new_page = Thinreports::Report::Page.new(report, layout)
85
98
 
86
- internal = Report::Internal.new(report, :layout => sample_layout1)
99
+ internal = Report::Internal.new(report, layout: sample_layout1)
87
100
 
88
101
  assert_same new_page, internal.add_page(new_page)
89
102
  end
90
103
 
91
104
  def test_add_page_should_add_the_initialized_page
92
- layout = ThinReports::Layout.new(sample_layout1)
93
- new_page = ThinReports::Core::Page.new(report, layout)
105
+ layout = Thinreports::Layout.new(sample_layout1)
106
+ new_page = Thinreports::Report::Page.new(report, layout)
94
107
 
95
- internal = Report::Internal.new(report, :layout => sample_layout1)
108
+ internal = Report::Internal.new(report, layout: sample_layout1)
96
109
  internal.add_page(new_page)
97
110
 
98
111
  assert_same new_page, internal.pages.last
99
112
  end
100
113
 
101
114
  def test_add_page_should_count_up_the_total_page_count
102
- layout = ThinReports::Layout.new(sample_layout1)
103
-
104
- internal = Report::Internal.new(report, :layout => sample_layout1)
105
- internal.add_page(ThinReports::Core::Page.new(report, layout))
115
+ layout = Thinreports::Layout.new(sample_layout1)
116
+
117
+ internal = Report::Internal.new(report, layout: sample_layout1)
118
+ internal.add_page(Thinreports::Report::Page.new(report, layout))
106
119
 
107
120
  assert_equal internal.page_count, 1
108
121
  end
109
-
122
+
110
123
  def test_add_page_should_switch_to_a_reference_to_the_current_page
111
- layout = ThinReports::Layout.new(sample_layout1)
124
+ layout = Thinreports::Layout.new(sample_layout1)
112
125
  new_pages = (1..2).inject([]) do |pages, i|
113
- pages << ThinReports::Core::Page.new(report, layout)
126
+ pages << Thinreports::Report::Page.new(report, layout)
114
127
  end
115
128
 
116
- internal = Report::Internal.new(report, :layout => sample_layout1)
129
+ internal = Report::Internal.new(report, layout: sample_layout1)
117
130
  internal.add_page(new_pages[0])
118
131
 
119
132
  assert_same internal.page, new_pages[0]
@@ -122,51 +135,51 @@ class ThinReports::Report::TestInternal < MiniTest::Unit::TestCase
122
135
 
123
136
  assert_same internal.page, new_pages[1]
124
137
  end
125
-
138
+
126
139
  def test_add_page_should_dispatch_the_event_page_creation
127
140
  dispatched = false
128
- layout = ThinReports::Layout.new(sample_layout1)
141
+ layout = Thinreports::Layout.new(sample_layout1)
129
142
 
130
- internal = Report::Internal.new(report, :layout => sample_layout1)
143
+ internal = Report::Internal.new(report, layout: sample_layout1)
131
144
  internal.events.on(:page_create) {|e| dispatched = true }
132
- internal.add_page(ThinReports::Core::Page.new(report, layout))
145
+ internal.add_page(Thinreports::Report::Page.new(report, layout))
133
146
 
134
147
  assert dispatched
135
148
  end
136
149
 
137
150
  def test_add_blank_page_should_not_dispatch_the_event_page_creation
138
151
  dispatched = false
139
- layout = ThinReports::Layout.new(sample_layout1)
152
+ layout = Thinreports::Layout.new(sample_layout1)
140
153
 
141
- internal = Report::Internal.new(report, :layout => sample_layout1)
154
+ internal = Report::Internal.new(report, layout: sample_layout1)
142
155
  internal.events.on(:page_create) {|e| dispatched = true }
143
- internal.add_page(ThinReports::Core::BlankPage.new)
156
+ internal.add_page(Thinreports::Report::BlankPage.new)
144
157
 
145
158
  refute dispatched
146
159
  end
147
-
160
+
148
161
  def test_add_blank_page_should_not_count_up_the_total_page_count_when_count_is_disabled
149
- layout = ThinReports::Layout.new(sample_layout1)
162
+ layout = Thinreports::Layout.new(sample_layout1)
150
163
 
151
- internal = Report::Internal.new(report, :layout => sample_layout1)
152
- internal.add_page(ThinReports::Core::BlankPage.new(false))
164
+ internal = Report::Internal.new(report, layout: sample_layout1)
165
+ internal.add_page(Thinreports::Report::BlankPage.new(false))
153
166
 
154
167
  assert_equal internal.page_count, 0
155
168
  end
156
169
 
157
170
  def test_add_blank_page_should_count_up_the_total_page_count_when_count_is_enabled
158
- layout = ThinReports::Layout.new(sample_layout1)
171
+ layout = Thinreports::Layout.new(sample_layout1)
159
172
 
160
- internal = Report::Internal.new(report, :layout => sample_layout1)
161
- internal.add_page(ThinReports::Core::BlankPage.new)
173
+ internal = Report::Internal.new(report, layout: sample_layout1)
174
+ internal.add_page(Thinreports::Report::BlankPage.new)
162
175
 
163
176
  assert_equal internal.page_count, 1
164
177
  end
165
-
178
+
166
179
  def test_finalize_should_dispatch_the_event_report_generation
167
180
  dispatched = false
168
181
 
169
- internal = Report::Internal.new(report, :layout => sample_layout1)
182
+ internal = Report::Internal.new(report, layout: sample_layout1)
170
183
  internal.events.on(:generate) {|e| dispatched = true }
171
184
  internal.finalize
172
185
 
@@ -174,72 +187,79 @@ class ThinReports::Report::TestInternal < MiniTest::Unit::TestCase
174
187
  end
175
188
 
176
189
  def test_finalize_should_finalize_the_report
177
- internal = Report::Internal.new(report, :layout => sample_layout1)
190
+ internal = Report::Internal.new(report, layout: sample_layout1)
178
191
  internal.finalize
179
192
 
180
193
  assert internal.finalized?
181
194
  end
182
195
 
183
196
  def test_finalize_should_not_work_when_report_is_already_finalized
184
- internal = Report::Internal.new(report, :layout => sample_layout1)
185
-
186
- flexmock(internal).
187
- should_receive(:finalize_current_page).once
188
-
197
+ internal = Report::Internal.new(report, layout: sample_layout1)
189
198
  internal.finalize
199
+
200
+ # #finalize_current_page must never be called
201
+ internal.expects(:finalize_current_page).never
190
202
  internal.finalize
191
203
  end
192
204
 
193
205
  def test_finalized_should_return_true_when_report_is_already_finalized
194
- internal = Report::Internal.new(report, :layout => sample_layout1)
206
+ internal = Report::Internal.new(report, layout: sample_layout1)
195
207
  internal.finalize
196
208
 
197
209
  assert internal.finalized?
198
210
  end
199
-
211
+
200
212
  def test_load_layout_with_String
201
- internal = Report::Internal.new(report, :layout => sample_layout1)
202
-
203
- assert_equal internal.load_layout(sample_layout2).filename,
213
+ internal = Report::Internal.new(report, layout: sample_layout1)
214
+
215
+ assert_equal internal.load_layout(sample_layout2).filename,
204
216
  sample_layout2
205
217
  end
206
-
218
+
207
219
  def test_load_layout_with_id
208
220
  internal = Report::Internal.new(report, {})
209
- internal.register_layout(sample_layout1, :id => :sample)
221
+ internal.register_layout(sample_layout1, id: :sample)
210
222
 
211
- assert_equal internal.load_layout(:sample).filename,
223
+ assert_equal internal.load_layout(:sample).filename,
212
224
  sample_layout1
213
225
  end
214
-
226
+
215
227
  def test_load_layout_with_unknown_id
216
228
  internal = Report::Internal.new(report, {})
217
229
  assert_nil internal.load_layout(:unknown)
218
230
  end
219
-
231
+
232
+ def test_load_layout_should_set_default_layout_when_default_layout_is_nil
233
+ internal = Report::Internal.new(report, {})
234
+ internal.load_layout(sample_layout1)
235
+
236
+ assert_equal internal.default_layout.filename,
237
+ sample_layout1
238
+ end
239
+
220
240
  def test_load_layout_should_raise_error_when_invalid_value_set
221
241
  internal = Report::Internal.new(report, {})
222
242
 
223
- assert_raises ThinReports::Errors::LayoutFileNotFound do
243
+ assert_raises Thinreports::Errors::LayoutFileNotFound do
224
244
  internal.load_layout('/path/to/unkown.tlf')
225
245
  end
226
246
  end
227
-
247
+
228
248
  def test_copy_page_should_finalize_current_page
229
- layout = ThinReports::Layout.new(sample_layout1)
249
+ layout = Thinreports::Layout.new(sample_layout1)
230
250
 
231
- internal = Report::Internal.new(report, :layout => sample_layout1)
232
- internal.add_page(page = ThinReports::Core::Page.new(report, layout))
251
+ internal = Report::Internal.new(report, layout: sample_layout1)
252
+ internal.add_page(page = Thinreports::Report::Page.new(report, layout))
233
253
  internal.copy_page
234
254
 
235
255
  assert page.finalized?
236
256
  end
237
257
 
238
258
  def test_copy_page_should_add_the_copied_page
239
- layout = ThinReports::Layout.new(sample_layout1)
259
+ layout = Thinreports::Layout.new(sample_layout1)
240
260
 
241
- internal = Report::Internal.new(report, :layout => sample_layout1)
242
- internal.add_page(page = ThinReports::Core::Page.new(report, layout))
261
+ internal = Report::Internal.new(report, layout: sample_layout1)
262
+ internal.add_page(page = Thinreports::Report::Page.new(report, layout))
243
263
  internal.copy_page
244
264
 
245
265
  assert_equal internal.page_count, 2
@@ -1,22 +1,41 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::TestConfig < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::TestConfig < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  def test_generator_of_Configuration_should_return_configuration_of_generator
9
- config = ThinReports::Configuration.new
10
- assert_instance_of ThinReports::Generator::Configuration, config.generator
9
+ config = Thinreports::Configuration.new
10
+ assert_instance_of Thinreports::Generator::Configuration, config.generator
11
11
  end
12
-
12
+
13
13
  def test_config_should_return_configuration_of_thinreports
14
- assert_instance_of ThinReports::Configuration, ThinReports.config
14
+ assert_instance_of Thinreports::Configuration, Thinreports.config
15
15
  end
16
-
16
+
17
17
  def test_configure_should_exec_an_given_block_with_config_which_instance_of_Configuration
18
- ThinReports.configure do |config|
19
- assert_instance_of ThinReports::Configuration, config
18
+ Thinreports.configure do |config|
19
+ assert_instance_of Thinreports::Configuration, config
20
20
  end
21
21
  end
22
- end
22
+
23
+ def test_fallback_fonts
24
+ config = Thinreports::Configuration.new
25
+
26
+ # should be empty by default
27
+ assert_empty config.fallback_fonts
28
+
29
+ config.fallback_fonts = 'Helvetica'
30
+ assert_equal config.fallback_fonts, ['Helvetica']
31
+
32
+ config.fallback_fonts = ['/path/to/font.ttf', 'Courier New']
33
+ assert_equal config.fallback_fonts, ['/path/to/font.ttf', 'Courier New']
34
+
35
+ config.fallback_fonts = []
36
+ config.fallback_fonts << 'Helvetica'
37
+ config.fallback_fonts << 'IPAMincho'
38
+ config.fallback_fonts.unshift 'Times New Roman'
39
+ assert_equal config.fallback_fonts, ['Times New Roman', 'Helvetica', 'IPAMincho']
40
+ end
41
+ end
@@ -1,12 +1,12 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::TestLayout < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::TestLayout < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  def test_new
9
- flexmock(ThinReports::Layout::Base).should_receive(:new).once
10
- ThinReports::Layout.new('layout.tlf')
9
+ assert_instance_of Thinreports::Layout::Base,
10
+ Thinreports::Layout.new(data_file('layout_text1.tlf'))
11
11
  end
12
- end
12
+ end
@@ -1,30 +1,18 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::TestReport < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::TestReport < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- Report = ThinReports::Report
10
-
11
- def test_new_should_delegate_to_Base_new
12
- flexmock(Report::Base).should_receive(:new).once
13
- Report.new
14
- end
15
-
16
- def test_create_should_delegate_to_Base_create
17
- flexmock(Report::Base).should_receive(:create).once
18
- Report.create
19
- end
20
-
21
- def test_generate_should_delegate_to_Base_generate
22
- flexmock(Report::Base).should_receive(:generate).once
23
- Report.generate
9
+ Report = Thinreports::Report
10
+
11
+ def test_new
12
+ assert_instance_of Report::Base, Report.new
24
13
  end
25
-
26
- def test_generate_file_should_delegate_to_Base_generate_file
27
- flexmock(Report::Base).should_receive(:generate_file).once
28
- Report.generate_file
14
+
15
+ def test_create
16
+ assert_instance_of Report::Base, Report.create {}
29
17
  end
30
- end
18
+ end
data/thinreports.gemspec CHANGED
@@ -5,32 +5,29 @@ require 'thinreports/version'
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = 'thinreports'
8
- s.version = ThinReports::VERSION
8
+ s.version = Thinreports::VERSION
9
9
  s.author = 'Matsukei Co.,Ltd.'
10
- s.email = 'thinreports@matsukei.co.jp'
11
-
12
- s.summary = 'Reporting solution for Ruby and Rails.'
13
- s.description = 'ThinReports is Open Source Reporting Solution for Ruby. ' +
14
- 'It provides a GUI Designer and a Library for Ruby.'
15
- s.homepage = 'http://www.thinreports.org/'
16
-
17
- s.platform = Gem::Platform::RUBY
18
- s.required_ruby_version = '>= 1.8.7'
19
- s.required_rubygems_version = '>= 1.3.6'
20
-
21
- s.rdoc_options = ['--main', 'README.rdoc']
22
- s.extra_rdoc_files = ['README.rdoc']
23
-
10
+ s.email = 'thinreports@gmail.com'
11
+ s.summary = 'An open source report generation tool for Ruby.'
12
+ s.description = 'Thinreports is an open source report generation tool for Ruby.'
13
+ s.homepage = 'http://www.thinreports.org'
14
+ s.licenses = ['MIT']
15
+
16
+ s.platform = Gem::Platform::RUBY
17
+ s.required_ruby_version = '>= 1.9.3'
18
+
19
+ s.rdoc_options = ['--main', 'README.md']
20
+ s.extra_rdoc_files = ['README.md']
21
+
24
22
  s.files = `git ls-files`.split($\)
25
- s.test_files = s.files.grep(%r{^test/})
26
- s.require_path = 'lib'
27
-
28
- s.add_dependency('prawn', '>= 0.12.0', '<= 0.12.0')
29
-
30
- s.add_development_dependency('bundler', ['>= 1.0.0'])
31
- s.add_development_dependency('flexmock', ['~> 0.9.0'])
32
- s.add_development_dependency('yard', ['>= 0'])
33
- s.add_development_dependency('rake', ['>=0'])
34
- s.add_development_dependency('turn', ['>=0'])
35
- s.add_development_dependency('simplecov', ['>=0'])
23
+ s.test_files = s.files.grep %r{^test/}
24
+ s.require_paths = ['lib']
25
+
26
+ s.add_dependency 'prawn', '1.3.0'
27
+
28
+ s.add_development_dependency 'bundler', ['>= 1.0.0']
29
+ s.add_development_dependency 'minitest', ['>= 5.0.0']
30
+ s.add_development_dependency 'mocha', ['>= 0']
31
+ s.add_development_dependency 'rake', ['>= 0']
32
+ s.add_development_dependency 'yard'
36
33
  end