thinreports 0.7.6 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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