thinreports 0.9.1 → 0.10.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 (179) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +41 -0
  3. data/.travis.yml +4 -6
  4. data/CHANGELOG.md +21 -2
  5. data/Gemfile +2 -4
  6. data/README.md +4 -5
  7. data/Rakefile +7 -8
  8. data/examples/character_spacing/character_spacing.rb +1 -1
  9. data/examples/dynamic_image/dynamic_image.rb +3 -3
  10. data/examples/dynamic_style/dynamic_style.rb +1 -1
  11. data/examples/eudc/eudc.rb +1 -1
  12. data/examples/helper.rb +2 -2
  13. data/examples/hidden_shapes/hidden_shapes.rb +1 -1
  14. data/examples/list_events/list_events.rb +1 -1
  15. data/examples/list_manual_generation/list_manual_generation.rb +1 -1
  16. data/examples/list_page_number/list_page_number.rb +1 -1
  17. data/examples/page_number/page_number.rb +1 -1
  18. data/examples/palleted_png/palleted_png.rb +1 -3
  19. data/examples/password_setting/password_setting.rb +1 -1
  20. data/examples/report_callbacks/report_callbacks.rb +1 -1
  21. data/examples/single_line_tblock/single_line_tblock.rb +1 -1
  22. data/examples/tblock_overflow/tblock_overflow.rb +1 -1
  23. data/examples/tblock_styles/tblock_styles.rb +1 -1
  24. data/examples/text_align/text_align.rb +1 -1
  25. data/examples/typeB_page_size/typeB_page_size.rb +1 -1
  26. data/examples/word_wrap/word_wrap.rb +1 -1
  27. data/lib/thinreports.rb +16 -15
  28. data/lib/thinreports/config.rb +2 -24
  29. data/lib/thinreports/core/errors.rb +6 -17
  30. data/lib/thinreports/core/format/base.rb +62 -61
  31. data/lib/thinreports/core/shape.rb +13 -14
  32. data/lib/thinreports/core/shape/base.rb +3 -12
  33. data/lib/thinreports/core/shape/base/interface.rb +35 -32
  34. data/lib/thinreports/core/shape/base/internal.rb +45 -43
  35. data/lib/thinreports/core/shape/basic.rb +12 -12
  36. data/lib/thinreports/core/shape/basic/block_format.rb +8 -6
  37. data/lib/thinreports/core/shape/basic/block_interface.rb +24 -22
  38. data/lib/thinreports/core/shape/basic/block_internal.rb +28 -26
  39. data/lib/thinreports/core/shape/basic/format.rb +11 -9
  40. data/lib/thinreports/core/shape/basic/interface.rb +79 -77
  41. data/lib/thinreports/core/shape/basic/internal.rb +17 -14
  42. data/lib/thinreports/core/shape/image_block.rb +9 -9
  43. data/lib/thinreports/core/shape/image_block/format.rb +7 -5
  44. data/lib/thinreports/core/shape/image_block/interface.rb +15 -13
  45. data/lib/thinreports/core/shape/image_block/internal.rb +10 -8
  46. data/lib/thinreports/core/shape/list.rb +13 -13
  47. data/lib/thinreports/core/shape/list/format.rb +83 -77
  48. data/lib/thinreports/core/shape/list/manager.rb +182 -176
  49. data/lib/thinreports/core/shape/list/page.rb +94 -93
  50. data/lib/thinreports/core/shape/list/page_state.rb +42 -40
  51. data/lib/thinreports/core/shape/list/section_format.rb +28 -26
  52. data/lib/thinreports/core/shape/list/section_interface.rb +42 -40
  53. data/lib/thinreports/core/shape/list/section_internal.rb +21 -19
  54. data/lib/thinreports/core/shape/manager.rb +4 -13
  55. data/lib/thinreports/core/shape/manager/format.rb +21 -19
  56. data/lib/thinreports/core/shape/manager/internal.rb +88 -84
  57. data/lib/thinreports/core/shape/manager/target.rb +93 -95
  58. data/lib/thinreports/core/shape/page_number.rb +9 -9
  59. data/lib/thinreports/core/shape/page_number/format.rb +20 -18
  60. data/lib/thinreports/core/shape/page_number/interface.rb +20 -18
  61. data/lib/thinreports/core/shape/page_number/internal.rb +47 -44
  62. data/lib/thinreports/core/shape/style.rb +5 -14
  63. data/lib/thinreports/core/shape/style/base.rb +121 -120
  64. data/lib/thinreports/core/shape/style/basic.rb +12 -10
  65. data/lib/thinreports/core/shape/style/graphic.rb +35 -33
  66. data/lib/thinreports/core/shape/style/text.rb +113 -107
  67. data/lib/thinreports/core/shape/text.rb +9 -9
  68. data/lib/thinreports/core/shape/text/format.rb +10 -9
  69. data/lib/thinreports/core/shape/text/interface.rb +13 -11
  70. data/lib/thinreports/core/shape/text/internal.rb +14 -12
  71. data/lib/thinreports/core/shape/text_block.rb +10 -10
  72. data/lib/thinreports/core/shape/text_block/format.rb +35 -33
  73. data/lib/thinreports/core/shape/text_block/formatter.rb +26 -24
  74. data/lib/thinreports/core/shape/text_block/formatter/basic.rb +25 -25
  75. data/lib/thinreports/core/shape/text_block/formatter/datetime.rb +15 -12
  76. data/lib/thinreports/core/shape/text_block/formatter/number.rb +45 -39
  77. data/lib/thinreports/core/shape/text_block/formatter/padding.rb +17 -14
  78. data/lib/thinreports/core/shape/text_block/interface.rb +25 -23
  79. data/lib/thinreports/core/shape/text_block/internal.rb +68 -68
  80. data/lib/thinreports/core/utils.rb +4 -3
  81. data/lib/thinreports/generator/pdf.rb +24 -25
  82. data/lib/thinreports/generator/pdf/document.rb +109 -110
  83. data/lib/thinreports/generator/pdf/document/draw_shape.rb +58 -51
  84. data/lib/thinreports/generator/pdf/document/draw_template_items.rb +51 -47
  85. data/lib/thinreports/generator/pdf/document/font.rb +62 -59
  86. data/lib/thinreports/generator/pdf/document/graphics.rb +32 -33
  87. data/lib/thinreports/generator/pdf/document/graphics/attributes.rb +122 -121
  88. data/lib/thinreports/generator/pdf/document/graphics/basic.rb +113 -114
  89. data/lib/thinreports/generator/pdf/document/graphics/image.rb +58 -150
  90. data/lib/thinreports/generator/pdf/document/graphics/text.rb +152 -137
  91. data/lib/thinreports/generator/pdf/document/page.rb +63 -64
  92. data/lib/thinreports/generator/pdf/document/parse_color.rb +37 -37
  93. data/lib/thinreports/generator/pdf/drawer/base.rb +41 -41
  94. data/lib/thinreports/generator/pdf/drawer/list.rb +48 -45
  95. data/lib/thinreports/generator/pdf/drawer/list_section.rb +42 -40
  96. data/lib/thinreports/generator/pdf/drawer/page.rb +101 -96
  97. data/lib/thinreports/generator/pdf/prawn_ext.rb +4 -30
  98. data/lib/thinreports/generator/pdf/prawn_ext/calc_image_dimensions.rb +34 -0
  99. data/lib/thinreports/generator/pdf/prawn_ext/width_of.rb +29 -0
  100. data/lib/thinreports/layout.rb +5 -7
  101. data/lib/thinreports/layout/base.rb +5 -7
  102. data/lib/thinreports/layout/format.rb +18 -13
  103. data/lib/thinreports/layout/legacy_schema.rb +18 -10
  104. data/lib/thinreports/layout/version.rb +22 -25
  105. data/lib/thinreports/report.rb +4 -6
  106. data/lib/thinreports/report/base.rb +24 -51
  107. data/lib/thinreports/report/internal.rb +9 -11
  108. data/lib/thinreports/report/page.rb +5 -6
  109. data/lib/thinreports/version.rb +2 -2
  110. data/test/schema_helper.rb +4 -3
  111. data/test/test_helper.rb +9 -3
  112. data/test/unit/core/format/test_base.rb +1 -1
  113. data/test/unit/core/shape/base/test_internal.rb +1 -1
  114. data/test/unit/core/shape/basic/test_block_format.rb +1 -1
  115. data/test/unit/core/shape/basic/test_block_interface.rb +1 -1
  116. data/test/unit/core/shape/basic/test_block_internal.rb +1 -1
  117. data/test/unit/core/shape/basic/test_format.rb +1 -1
  118. data/test/unit/core/shape/basic/test_interface.rb +1 -1
  119. data/test/unit/core/shape/basic/test_internal.rb +1 -1
  120. data/test/unit/core/shape/image_block/test_interface.rb +1 -1
  121. data/test/unit/core/shape/image_block/test_internal.rb +1 -1
  122. data/test/unit/core/shape/list/test_format.rb +1 -1
  123. data/test/unit/core/shape/list/test_manager.rb +4 -4
  124. data/test/unit/core/shape/list/test_page.rb +1 -1
  125. data/test/unit/core/shape/list/test_page_state.rb +1 -1
  126. data/test/unit/core/shape/list/test_section_format.rb +1 -1
  127. data/test/unit/core/shape/list/test_section_interface.rb +2 -2
  128. data/test/unit/core/shape/list/test_section_internal.rb +1 -1
  129. data/test/unit/core/shape/manager/test_format.rb +2 -2
  130. data/test/unit/core/shape/manager/test_internal.rb +3 -3
  131. data/test/unit/core/shape/manager/test_target.rb +1 -1
  132. data/test/unit/core/shape/page_number/test_format.rb +1 -1
  133. data/test/unit/core/shape/page_number/test_interface.rb +1 -1
  134. data/test/unit/core/shape/page_number/test_internal.rb +1 -1
  135. data/test/unit/core/shape/styles/test_base.rb +1 -1
  136. data/test/unit/core/shape/styles/test_basic.rb +1 -1
  137. data/test/unit/core/shape/styles/test_graphic.rb +1 -1
  138. data/test/unit/core/shape/styles/test_text.rb +1 -1
  139. data/test/unit/core/shape/text/test_format.rb +1 -1
  140. data/test/unit/core/shape/text/test_internal.rb +1 -1
  141. data/test/unit/core/shape/text_block/formatter/test_basic.rb +1 -1
  142. data/test/unit/core/shape/text_block/formatter/test_datetime.rb +1 -1
  143. data/test/unit/core/shape/text_block/formatter/test_number.rb +1 -1
  144. data/test/unit/core/shape/text_block/formatter/test_padding.rb +2 -2
  145. data/test/unit/core/shape/text_block/test_format.rb +1 -1
  146. data/test/unit/core/shape/text_block/test_formatter.rb +1 -1
  147. data/test/unit/core/shape/text_block/test_interface.rb +1 -1
  148. data/test/unit/core/shape/text_block/test_internal.rb +3 -3
  149. data/test/unit/core/test_shape.rb +1 -1
  150. data/test/unit/core/test_utils.rb +2 -2
  151. data/test/unit/generator/pdf/document/graphics/test_attributes.rb +1 -1
  152. data/test/unit/generator/pdf/document/graphics/test_basic.rb +2 -1
  153. data/test/unit/generator/pdf/document/graphics/test_image.rb +27 -131
  154. data/test/unit/generator/pdf/document/graphics/test_text.rb +1 -1
  155. data/test/unit/generator/pdf/document/test_font.rb +2 -2
  156. data/test/unit/generator/pdf/document/test_graphics.rb +1 -1
  157. data/test/unit/generator/pdf/document/test_page.rb +7 -7
  158. data/test/unit/generator/pdf/document/test_parse_color.rb +1 -1
  159. data/test/unit/generator/pdf/prawn_ext/test_calc_image_dimensions.rb +41 -0
  160. data/test/unit/generator/pdf/prawn_ext/test_width_of.rb +22 -0
  161. data/test/unit/generator/pdf/test_document.rb +8 -6
  162. data/test/unit/generator/test_pdf.rb +12 -10
  163. data/test/unit/layout/test_base.rb +1 -1
  164. data/test/unit/layout/test_format.rb +2 -2
  165. data/test/unit/layout/test_legacy_schema.rb +4 -4
  166. data/test/unit/layout/test_version.rb +11 -80
  167. data/test/unit/report/test_base.rb +45 -59
  168. data/test/unit/report/test_internal.rb +1 -1
  169. data/test/unit/test_config.rb +1 -16
  170. data/test/unit/test_layout.rb +1 -1
  171. data/test/unit/test_report.rb +1 -1
  172. data/thinreports.gemspec +11 -14
  173. metadata +42 -103
  174. data/lib/thinreports/generator.rb +0 -29
  175. data/lib/thinreports/generator/base.rb +0 -40
  176. data/lib/thinreports/generator/configuration.rb +0 -31
  177. data/lib/thinreports/report/events.rb +0 -32
  178. data/test/unit/generator/test_base.rb +0 -40
  179. data/test/unit/generator/test_configuration.rb +0 -21
@@ -1,114 +1,112 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Thinreports
4
- module Core::Shape
4
+ module Core
5
+ module Shape
6
+ module Manager
7
+ module Target
8
+ include Utils
5
9
 
6
- module Manager::Target
7
- include Utils
10
+ attr_reader :manager
8
11
 
9
- attr_reader :manager
12
+ # @example
13
+ # item(:title).value('Title').style(:fill, 'red')
14
+ #
15
+ # item(:title) do
16
+ # value('Title')
17
+ # style(:fill, 'red')
18
+ # end
19
+ #
20
+ # item(:title) do |t|
21
+ # t.value('Title')
22
+ # t.style(:fill, 'red')
23
+ # end
24
+ # item(:list) # => Error: UnknownItemId
25
+ # item(:unknown_id) # => Error: UnknownItemId
26
+ # @param [String, Symbol] id
27
+ # @yield [item,]
28
+ # @yieldparam [Thinreports::Core::Shape::Base::Interface] item
29
+ # @raise [Thinreports::Errors::UnknownItemId]
30
+ # @return [Thinreports::Core::Shape::Base::Interface]
31
+ def item(id, &block)
32
+ shape = find_item(id, except: Core::Shape::List::TYPE_NAME)
10
33
 
11
- # @example
12
- # item(:title).value('Title').style(:fill, 'red')
13
- #
14
- # item(:title) do
15
- # value('Title')
16
- # style(:fill, 'red')
17
- # end
18
- #
19
- # item(:title) do |t|
20
- # t.value('Title')
21
- # t.style(:fill, 'red')
22
- # end
23
- # item(:list) # => Error: UnknownItemId
24
- # item(:unknown_id) # => Error: UnknownItemId
25
- # @param [String, Symbol] id
26
- # @yield [item,]
27
- # @yieldparam [Thinreports::Core::Shape::Base::Interface] item
28
- # @raise [Thinreports::Errors::UnknownItemId]
29
- # @return [Thinreports::Core::Shape::Base::Interface]
30
- def item(id, &block)
31
- shape = find_item(id, except: Core::Shape::List::TYPE_NAME)
34
+ raise Thinreports::Errors::UnknownItemId, id unless shape
32
35
 
33
- unless shape
34
- raise Thinreports::Errors::UnknownItemId.new(id)
35
- else
36
- call_block_in(shape, &block)
37
- end
38
- end
36
+ call_block_in(shape, &block)
37
+ end
39
38
 
40
- # @example
41
- # page[:text_block].style(:bold, true)
42
- # page[:rect].style(:border_color, 'red')
43
- #
44
- # page[:list] # => Error: UnknownItemId
45
- # page[:unknown_id] # => Error: UnknownItemId
46
- # @param [String, Symbol] id
47
- # @return [Thinreports::Core::Shape::Base::Interface]
48
- def [](id)
49
- item(id)
50
- end
39
+ # @example
40
+ # page[:text_block].style(:bold, true)
41
+ # page[:rect].style(:border_color, 'red')
42
+ #
43
+ # page[:list] # => Error: UnknownItemId
44
+ # page[:unknown_id] # => Error: UnknownItemId
45
+ # @param [String, Symbol] id
46
+ # @return [Thinreports::Core::Shape::Base::Interface]
47
+ def [](id)
48
+ item(id)
49
+ end
51
50
 
52
- # @example
53
- # page[:text_block] = 'Title'
54
- # page[:image_block] = '/path/to/image.png'
55
- # page[:list] = 'value' # => Error: UnknownItemId
56
- # page[:ellipse] = 'value' # => Error: NoMethodError #value
57
- # page[:unknown_id] = 'value' # => Error: UnknownItemId
58
- # @param [String, Symbol] id
59
- # @param [Object] value
60
- def []=(id, value)
61
- item(id).value = value
62
- end
51
+ # @example
52
+ # page[:text_block] = 'Title'
53
+ # page[:image_block] = '/path/to/image.png'
54
+ # page[:list] = 'value' # => Error: UnknownItemId
55
+ # page[:ellipse] = 'value' # => Error: NoMethodError #value
56
+ # page[:unknown_id] = 'value' # => Error: UnknownItemId
57
+ # @param [String, Symbol] id
58
+ # @param [Object] value
59
+ def []=(id, value)
60
+ item(id).value = value
61
+ end
63
62
 
64
- # @example
65
- # page.values text_block: 'value',
66
- # image_block: '/path/to/image.png'
67
- # @param [Hash] item_values
68
- def values(item_values)
69
- item_values.each {|id, val| item(id).value(val)}
70
- end
63
+ # @example
64
+ # page.values text_block: 'value',
65
+ # image_block: '/path/to/image.png'
66
+ # @param [Hash] item_values
67
+ def values(item_values)
68
+ item_values.each { |id, val| item(id).value(val) }
69
+ end
71
70
 
72
- # @param [Symbol, String] id
73
- # @return [Boolean]
74
- def item_exists?(id)
75
- !!manager.find_format(id)
76
- end
77
- alias_method :exists?, :item_exists?
71
+ # @param [Symbol, String] id
72
+ # @return [Boolean]
73
+ def item_exists?(id)
74
+ !manager.find_format(id).nil?
75
+ end
76
+ alias exists? item_exists?
78
77
 
79
- # @example
80
- # report.list.add_row do |row|
81
- # row.item(:price).value(1000)
82
- # end
83
- #
84
- # report.list(:list_id) # => List
85
- # report.list(:text_block_id) # => raises UnknownItemId
86
- # @see #item
87
- def list(id = nil, &block)
88
- shape = find_item(id ||= :default, only: Core::Shape::List::TYPE_NAME)
78
+ # @example
79
+ # report.list.add_row do |row|
80
+ # row.item(:price).value(1000)
81
+ # end
82
+ #
83
+ # report.list(:list_id) # => List
84
+ # report.list(:text_block_id) # => raises UnknownItemId
85
+ # @see #item
86
+ def list(id = nil, &block)
87
+ shape = find_item(id ||= :default, only: Core::Shape::List::TYPE_NAME)
89
88
 
90
- unless shape
91
- raise Thinreports::Errors::UnknownItemId.new(id, 'List')
92
- else
93
- manager.lists[id.to_sym] ||= shape
94
- call_block_in(shape, &block)
95
- end
96
- end
89
+ raise Thinreports::Errors::UnknownItemId.new(id, 'List') unless shape
97
90
 
98
- private
91
+ manager.lists[id.to_sym] ||= shape
92
+ call_block_in(shape, &block)
93
+ end
99
94
 
100
- # @param format (see Thinreports::Core::Shape::Manager::Internal#initialize)
101
- # @yield [format] Handler for initialize item.
102
- # @yieldparam [Thinreports::Core::Shape::Basic::Format] format
103
- def initialize_manager(format, &block)
104
- @manager = Manager::Internal.new(format, block)
105
- end
95
+ private
106
96
 
107
- # @see Thinreports::Core::Shape::Manager::Internal#find_item
108
- def find_item(id, limit = {})
109
- manager.find_item(id, limit)
97
+ # @param format (see Thinreports::Core::Shape::Manager::Internal#initialize)
98
+ # @yield [format] Handler for initialize item.
99
+ # @yieldparam [Thinreports::Core::Shape::Basic::Format] format
100
+ def initialize_manager(format, &block)
101
+ @manager = Manager::Internal.new(format, block)
102
+ end
103
+
104
+ # @see Thinreports::Core::Shape::Manager::Internal#find_item
105
+ def find_item(id, limit = {})
106
+ manager.find_item(id, limit)
107
+ end
108
+ end
110
109
  end
111
110
  end
112
-
113
111
  end
114
112
  end
@@ -1,15 +1,15 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Thinreports
4
- module Core::Shape
5
-
6
- module PageNumber
7
- TYPE_NAME = 'page-number'
4
+ module Core
5
+ module Shape
6
+ module PageNumber
7
+ TYPE_NAME = 'page-number'.freeze
8
+ end
8
9
  end
9
-
10
10
  end
11
11
  end
12
12
 
13
- require 'thinreports/core/shape/page_number/format'
14
- require 'thinreports/core/shape/page_number/internal'
15
- require 'thinreports/core/shape/page_number/interface'
13
+ require_relative 'page_number/format'
14
+ require_relative 'page_number/internal'
15
+ require_relative 'page_number/interface'
@@ -1,28 +1,30 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Thinreports
4
- module Core::Shape
4
+ module Core
5
+ module Shape
6
+ module PageNumber
7
+ class Format < Basic::Format
8
+ config_reader :target
9
+ config_reader default_format: %w[format]
5
10
 
6
- class PageNumber::Format < Basic::Format
7
- config_reader :target
8
- config_reader default_format: %w( format )
11
+ # For saving compatible 0.8.x format API
12
+ config_reader overflow: %w[style overflow]
9
13
 
10
- # For saving compatible 0.8.x format API
11
- config_reader overflow: %w( style overflow )
14
+ def id
15
+ @id ||= blank_value?(read('id')) ? self.class.next_default_id : read('id')
16
+ end
12
17
 
13
- def id
14
- @id ||= blank_value?(read('id')) ? self.class.next_default_id : read('id')
15
- end
16
-
17
- def for_report?
18
- blank_value?(target)
19
- end
18
+ def for_report?
19
+ blank_value?(target)
20
+ end
20
21
 
21
- def self.next_default_id
22
- @id_counter ||= 0
23
- "__pageno#{@id_counter += 1}"
22
+ def self.next_default_id
23
+ @id_counter ||= 0
24
+ "__pageno#{@id_counter += 1}"
25
+ end
26
+ end
24
27
  end
25
28
  end
26
-
27
29
  end
28
30
  end
@@ -1,27 +1,29 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Thinreports
4
- module Core::Shape
4
+ module Core
5
+ module Shape
6
+ module PageNumber
7
+ class Interface < Basic::Interface
8
+ internal_delegators :reset_format
5
9
 
6
- class PageNumber::Interface < Basic::Interface
7
- internal_delegators :reset_format
10
+ def format(*args)
11
+ if args.empty?
12
+ internal.read_format
13
+ else
14
+ internal.write_format(args.first)
15
+ self
16
+ end
17
+ end
8
18
 
9
- def format(*args)
10
- if args.empty?
11
- internal.read_format
12
- else
13
- internal.write_format(args.first)
14
- self
15
- end
16
- end
17
-
18
- private
19
+ private
19
20
 
20
- # @see Thinreports::Core::Shape::Base::Interface#init_internal
21
- def init_internal(parent, format)
22
- PageNumber::Internal.new(parent, format)
21
+ # @see Thinreports::Core::Shape::Base::Interface#init_internal
22
+ def init_internal(parent, format)
23
+ PageNumber::Internal.new(parent, format)
24
+ end
25
+ end
23
26
  end
24
27
  end
25
-
26
28
  end
27
29
  end
@@ -1,53 +1,56 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Thinreports
4
- module Core::Shape
5
-
6
- class PageNumber::Internal < Basic::Internal
7
- format_delegators :box, :for_report?
8
-
9
- def read_format
10
- states.key?(:format) ? states[:format] : format.default_format.dup
11
- end
12
-
13
- def reset_format
14
- states.delete(:format)
15
- end
16
-
17
- def write_format(format)
18
- states[:format] = format.to_s
19
- end
20
-
21
- def build_format(page_no, page_count)
22
- return '' if blank_value?(read_format)
23
-
24
- if start_page_number > 1
25
- page_no += start_page_number - 1
26
- page_count += start_page_number - 1
4
+ module Core
5
+ module Shape
6
+ module PageNumber
7
+ class Internal < Basic::Internal
8
+ format_delegators :box, :for_report?
9
+
10
+ def read_format
11
+ states.key?(:format) ? states[:format] : format.default_format.dup
12
+ end
13
+
14
+ def reset_format
15
+ states.delete(:format)
16
+ end
17
+
18
+ def write_format(format)
19
+ states[:format] = format.to_s
20
+ end
21
+
22
+ # rubocop:disable Metrics/AbcSize
23
+ def build_format(page_no, page_count)
24
+ return '' if blank_value?(read_format)
25
+
26
+ if start_page_number > 1
27
+ page_no += start_page_number - 1
28
+ page_count += start_page_number - 1
29
+ end
30
+
31
+ read_format.dup.tap do |f|
32
+ f.gsub! '{page}', page_no.to_s
33
+ f.gsub! '{total}', page_count.to_s
34
+ end
35
+ end
36
+
37
+ def style
38
+ @style ||= PageNumber::Style.new(format)
39
+ end
40
+
41
+ def type_of?(type_name)
42
+ type_name == PageNumber::TYPE_NAME
43
+ end
44
+
45
+ def start_page_number
46
+ for_report? ? parent.report.start_page_number : 1
47
+ end
27
48
  end
28
49
 
29
- read_format.dup.tap do |f|
30
- f.gsub! '{page}', page_no.to_s
31
- f.gsub! '{total}', page_count.to_s
50
+ class Style < Style::Text
51
+ accessible_styles.delete :valign
32
52
  end
33
53
  end
34
-
35
- def style
36
- @style ||= PageNumber::Style.new(format)
37
- end
38
-
39
- def type_of?(type_name)
40
- type_name == PageNumber::TYPE_NAME
41
- end
42
-
43
- def start_page_number
44
- for_report? ? parent.report.start_page_number : 1
45
- end
46
- end
47
-
48
- class PageNumber::Style < Style::Text
49
- accessible_styles.delete :valign
50
54
  end
51
-
52
55
  end
53
56
  end
@@ -1,15 +1,6 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- module Thinreports
4
- module Core::Shape
5
-
6
- module Style
7
- end
8
-
9
- end
10
- end
11
-
12
- require 'thinreports/core/shape/style/base'
13
- require 'thinreports/core/shape/style/basic'
14
- require 'thinreports/core/shape/style/graphic'
15
- require 'thinreports/core/shape/style/text'
3
+ require_relative 'style/base'
4
+ require_relative 'style/basic'
5
+ require_relative 'style/graphic'
6
+ require_relative 'style/text'