Skip to content

Commit a581a46

Browse files
authored
Merge pull request #127 from thinreports/fix-unknown-keyword-argument-error
allow title argument to be specified in Report.generate method
2 parents 9c55f23 + 5d672a2 commit a581a46

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

lib/thinreports/basic_report/report/base.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ def create(options = {}, &block)
2626
# @param layout (see #initialize)
2727
# @param filename (see #generate)
2828
# @param security (see #generate)
29+
# @param title (see #generate)
2930
# @param [Hash] report ({}) DEPRECATED. Options for Report.
3031
# @param [Hash] generator ({}) DEPRECATED. Options for Generator.
3132
# @yield (see .create)
3233
# @yieldparam (see .create)
3334
# @return [String]
34-
def generate(layout: nil, filename: nil, security: nil, report: {}, generator: {}, &block)
35+
def generate(layout: nil, filename: nil, security: nil, title: nil, report: {}, generator: {}, &block)
3536
raise ArgumentError, '#generate requires a block' unless block_given?
3637

3738
if report.any? || generator.any?
@@ -44,7 +45,7 @@ def generate(layout: nil, filename: nil, security: nil, report: {}, generator: {
4445
security ||= generator[:security]
4546

4647
report = create(layout: layout, &block)
47-
report.generate(filename: filename, security: security)
48+
report.generate(filename: filename, security: security, title: title)
4849
end
4950
end
5051

test/basic_report/units/report/test_base.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,8 @@ def test_Base_generate_with_deprecated_arguments
222222
Report::Base.expects(:create).with(layout: '/path/to/layout.tlf').returns(@report)
223223
@report.expects(:generate).with(
224224
filename: 'result.pdf',
225-
security: { owner_password: 'pass' }
225+
security: { owner_password: 'pass' },
226+
title: nil
226227
)
227228

228229
Report::Base.generate(
@@ -238,7 +239,8 @@ def test_Base_generate_argument_priority
238239
Report::Base.expects(:create).with(layout: '/path/to/layout.tlf').returns(@report)
239240
@report.expects(:generate).with(
240241
filename: 'result.pdf',
241-
security: { owner_password: 'pass' }
242+
security: { owner_password: 'pass' },
243+
title: nil
242244
)
243245

244246
Report::Base.generate(
@@ -252,4 +254,10 @@ def test_Base_generate_argument_priority
252254
}
253255
) { |_| }
254256
end
257+
258+
def test_Base_generate_when_title_argument_is_specified
259+
pdf = Report::Base.generate(layout: @layout_file.path, title: 'Custom title') { start_new_page }
260+
261+
assert_equal 'Custom title', PDF::Reader.new(StringIO.new(pdf)).info[:Title]
262+
end
255263
end

0 commit comments

Comments
 (0)