Class: ThinReports::Report::Base
- Defined in:
- lib/thinreports/report/base.rb
Instance Attribute Summary collapse
- #internal ⇒ ThinReports::Report::Internal readonly
- #start_page_number ⇒ Integer readonly
Class Method Summary collapse
- .create(options = {}) {|report| ... } ⇒ ThinReports::Report::Base
- .generate(*args) {|report| ... } ⇒ String
-
.generate_file(*args) {|report| ... } ⇒ void
deprecated
Deprecated.
Please use the #generate method with :filename option instead.
Instance Method Summary collapse
- #add_blank_page(options = {}) ⇒ ThinReports::Core::BlankPage (also: #blank_page)
- #default_layout ⇒ ThinReports::Layout::Base
- #events ⇒ ThinReports::Report::Events
- #finalize ⇒ void
- #finalized? ⇒ Boolean
- #generate(*args) ⇒ Object
-
#generate_file(*args) ⇒ Object
deprecated
Deprecated.
Please use the #generate method with :filename option instead.
-
#initialize(options = {}) ⇒ Base
constructor
A new instance of Base.
- #layout(id = nil) ⇒ ThinReports::Layout::Base
- #list(id = nil, &block) ⇒ Object
- #page ⇒ ThinReports::Core::Page?
- #page_count ⇒ Integer
- #start_new_page(options = {}) {|page| ... } ⇒ ThinReports::Core::Page
- #start_page_number_from(page_number) ⇒ Object
- #use_layout(layout, options = {}) {|config| ... } ⇒ void
Constructor Details
Instance Attribute Details
#internal ⇒ ThinReports::Report::Internal (readonly)
9 10 11 |
# File 'lib/thinreports/report/base.rb', line 9 def internal @internal end |
#start_page_number ⇒ Integer (readonly)
12 13 14 |
# File 'lib/thinreports/report/base.rb', line 12 def start_page_number @start_page_number end |
Class Method Details
.create(options = {}) {|report| ... } ⇒ ThinReports::Report::Base
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/thinreports/report/base.rb', line 20 def create( = {}, &block) unless block_given? raise ArgumentError, '#create requires a block' end report = new() block_exec_on(report, &block) report.finalize report end |
.generate(type, options = {}, &block) ⇒ String .generate(options = {}, &block) ⇒ String
43 44 45 46 47 48 49 50 |
# File 'lib/thinreports/report/base.rb', line 43 def generate(*args, &block) raise ArgumentError, '#generate requires a block' unless block_given? report_opts, generator_opts = (args) report = create(report_opts, &block) report.generate(*args.push(generator_opts)) end |
.generate_file(type, filename, options = {}, &block) ⇒ void .generate_file(filename, options = {}, &block) ⇒ void
Deprecated.
Please use the #generate method with :filename option instead.
This method returns an undefined value.
60 61 62 63 64 65 66 67 |
# File 'lib/thinreports/report/base.rb', line 60 def generate_file(*args, &block) raise ArgumentError, '#generate_file requires a block' unless block_given? report_opts, generator_opts = (args) report = create(report_opts, &block) report.generate_file(*args.push(generator_opts)) end |
Instance Method Details
#add_blank_page(options = {}) ⇒ ThinReports::Core::BlankPage Also known as: blank_page
131 132 133 |
# File 'lib/thinreports/report/base.rb', line 131 def add_blank_page( = {}) internal.add_page(Core::BlankPage.new([:count])) end |
#default_layout ⇒ ThinReports::Layout::Base
149 150 151 |
# File 'lib/thinreports/report/base.rb', line 149 def default_layout internal.default_layout end |
#events ⇒ ThinReports::Report::Events
207 208 209 |
# File 'lib/thinreports/report/base.rb', line 207 def events internal.events end |
#finalize ⇒ void
This method returns an undefined value.
223 224 225 |
# File 'lib/thinreports/report/base.rb', line 223 def finalize internal.finalize end |
#finalized? ⇒ Boolean
229 230 231 |
# File 'lib/thinreports/report/base.rb', line 229 def finalized? internal.finalized? end |
#generate(type, options = {}) ⇒ String #generate(options = {}) ⇒ String
168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'lib/thinreports/report/base.rb', line 168 def generate(*args) = args.last.is_a?(::Hash) ? args.pop : {} type = args.first || ThinReports.config.generator.default filename = .delete(:filename) generator = ThinReports::Generator.new(type, self, ) if filename generator.generate_file(filename) else generator.generate end end |
#generate_file(type, filename, options = {}) ⇒ void #generate_file(filename, options = {}) ⇒ void
Deprecated.
Please use the #generate method with :filename option instead.
189 190 191 192 193 194 195 196 197 198 |
# File 'lib/thinreports/report/base.rb', line 189 def generate_file(*args) warn '[DEPRECATION] The #generate_file method is deprecated. ' + 'Please use the #generate(:filename => "filename") instead.' = args.last.is_a?(::Hash) ? args.pop : {} args.unshift(ThinReports.config.generator.default) if args.size == 1 type, filename = args generate(type, .merge(:filename => filename)) end |
#layout(id = nil) ⇒ ThinReports::Layout::Base
139 140 141 142 143 144 145 146 |
# File 'lib/thinreports/report/base.rb', line 139 def layout(id = nil) if id internal.layout_registry[id] || raise(ThinReports::Errors::UnknownLayoutId) else internal.default_layout end end |
#list(id = nil, &block) ⇒ Object
201 202 203 204 |
# File 'lib/thinreports/report/base.rb', line 201 def list(id = nil, &block) start_new_page if page.nil? || page.finalized? page.list(id, &block) end |
#page ⇒ ThinReports::Core::Page?
212 213 214 |
# File 'lib/thinreports/report/base.rb', line 212 def page internal.page end |
#page_count ⇒ Integer
217 218 219 |
# File 'lib/thinreports/report/base.rb', line 217 def page_count internal.page_count end |
#start_new_page(options = {}) {|page| ... } ⇒ ThinReports::Core::Page
119 120 121 122 123 124 125 126 |
# File 'lib/thinreports/report/base.rb', line 119 def start_new_page( = {}, &block) unless layout = internal.load_layout(.delete(:layout)) raise ThinReports::Errors::NoRegisteredLayoutFound end page = internal.add_page(layout.init_new_page(self, )) block_exec_on(page, &block) end |
#start_page_number_from(page_number) ⇒ Object
98 99 100 |
# File 'lib/thinreports/report/base.rb', line 98 def start_page_number_from(page_number) @start_page_number = page_number end |
#use_layout(layout, options = {}) {|config| ... } ⇒ void
This method returns an undefined value.
109 110 111 |
# File 'lib/thinreports/report/base.rb', line 109 def use_layout(layout, = {}, &block) internal.register_layout(layout, , &block) end |