prawn_cocktail 0.7.1 → 0.8.1
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.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +26 -0
- data/.rubocop.yml +5 -0
- data/Gemfile +6 -1
- data/README.md +1 -3
- data/Rakefile +1 -1
- data/lib/prawn_cocktail/document.rb +1 -1
- data/lib/prawn_cocktail/renderer.rb +2 -1
- data/lib/prawn_cocktail/utils/recursive_closed_struct.rb +2 -2
- data/lib/prawn_cocktail/version.rb +1 -1
- data/prawn_cocktail.gemspec +7 -6
- data/spec/integration_spec.rb +4 -4
- data/spec/recursive_closed_struct_spec.rb +14 -14
- data/spec/renderer_spec.rb +14 -0
- metadata +20 -18
- data/.travis.yml +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 61d84eedd5dfe30a88044ffc489cb3045888cdc2d55ce2418ee1f7c1a8069034
|
4
|
+
data.tar.gz: 64c8bf00e8398dbf2f66c545c0c287633104b7fa9087694fb24ad3cabae60a90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75f3e9779418238920e385563ec5b451e7dfd23d1be4379973ef6ac4f30eebbccdce798cae7a8116c3d33de7a1e8a5a52d093f2e385a39278ebddecf9b4e7824
|
7
|
+
data.tar.gz: be55301fdc96c7cc719a8a5f79b38de2a456c191f668a91fd14f8c24f75424de45712c5ab904e264ddf04b10943cf9a5f90c2e63ce20792c200b9d30ec6d8878
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Ruby CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby-version: ["3.0", "2.7", "2.6", "2.5"]
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
21
|
+
uses: ruby/setup-ruby@ae9cb3b565e36682a2c6045e4f664388da4c73aa
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
24
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
25
|
+
- name: Run tests
|
26
|
+
run: bundle exec rake
|
data/.rubocop.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# PrawnCocktail
|
2
2
|
|
3
|
-
[](https://github.com/barsoom/prawn_cocktail/actions/workflows/ci.yml)
|
4
4
|
|
5
5
|
Simple documents, templates and helpers on top of Prawn.
|
6
6
|
|
@@ -8,8 +8,6 @@ Because writing Prawn documents PHP 4 style is no fun.
|
|
8
8
|
|
9
9
|
If you're using this with Ruby on Rails, get [`PrawnCocktailRails`](http://github.com/barsoom/prawn_cocktail_rails).
|
10
10
|
|
11
|
-
Ruby 1.9 only since we use and love instance\_exec.
|
12
|
-
|
13
11
|

|
14
12
|
|
15
13
|
## Usage
|
data/Rakefile
CHANGED
@@ -5,13 +5,14 @@ require_relative "utils/recursive_closed_struct"
|
|
5
5
|
module PrawnCocktail
|
6
6
|
class Renderer
|
7
7
|
def initialize(template_name, data, initializers)
|
8
|
+
@prawn_document_options = {}
|
8
9
|
@template_name = template_name
|
9
10
|
@data = data
|
10
11
|
@initializers = initializers
|
11
12
|
end
|
12
13
|
|
13
14
|
def meta(opts)
|
14
|
-
@prawn_document_options
|
15
|
+
@prawn_document_options.merge!(opts)
|
15
16
|
end
|
16
17
|
|
17
18
|
def content(&block)
|
data/prawn_cocktail.gemspec
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require "prawn_cocktail/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "prawn_cocktail"
|
8
8
|
gem.version = PrawnCocktail::VERSION
|
9
|
-
gem.authors = ["Henrik Nyh"]
|
10
|
-
gem.email = ["henrik@barsoom.se"]
|
9
|
+
gem.authors = [ "Henrik Nyh" ]
|
10
|
+
gem.email = [ "henrik@barsoom.se" ]
|
11
11
|
gem.summary = "Simple documents, templates and helpers on top of Prawn."
|
12
12
|
gem.homepage = ""
|
13
|
+
gem.metadata = { "rubygems_mfa_required" => "true" }
|
14
|
+
|
13
15
|
|
14
16
|
gem.files = `git ls-files`.split($/)
|
15
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
|
-
gem.require_paths = ["lib"]
|
18
|
+
gem.require_paths = [ "lib" ]
|
18
19
|
|
19
20
|
gem.add_dependency "prawn"
|
20
21
|
gem.add_dependency "activesupport"
|
data/spec/integration_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe PrawnCocktail do
|
|
15
15
|
it "has the right contents" do
|
16
16
|
assert_equal(
|
17
17
|
[ "Init works.", "Test document", "Status: success" ],
|
18
|
-
parse_strings(data)
|
18
|
+
parse_strings(data),
|
19
19
|
)
|
20
20
|
end
|
21
21
|
|
@@ -33,7 +33,7 @@ describe PrawnCocktail do
|
|
33
33
|
it "has the right contents" do
|
34
34
|
assert_equal(
|
35
35
|
[ "Init works.", "Test document", "Status: success" ],
|
36
|
-
parse_strings(data)
|
36
|
+
parse_strings(data),
|
37
37
|
)
|
38
38
|
end
|
39
39
|
|
@@ -50,7 +50,7 @@ describe PrawnCocktail do
|
|
50
50
|
it "inherits initializers and helpers" do
|
51
51
|
assert_equal(
|
52
52
|
[ "Init works.", "Sub-init works.", "Sub test document", "Status: success" ],
|
53
|
-
parse_strings(data)
|
53
|
+
parse_strings(data),
|
54
54
|
)
|
55
55
|
end
|
56
56
|
end
|
@@ -65,5 +65,5 @@ def parse_geometry(pdf_data)
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def expected_geometry(name)
|
68
|
-
|
68
|
+
PDF::Core::PageGeometry::SIZES[name]
|
69
69
|
end
|
@@ -17,25 +17,25 @@ describe RecursiveClosedStruct do
|
|
17
17
|
|
18
18
|
it "recurses through hashes" do
|
19
19
|
subject = RecursiveClosedStruct.new({
|
20
|
-
one: { two: { three: "four" } }
|
20
|
+
one: { two: { three: "four" } },
|
21
21
|
})
|
22
22
|
assert_equal "four", subject.one.two.three
|
23
23
|
end
|
24
24
|
|
25
|
+
describe "#include?" do
|
26
|
+
it "is true if that key exists" do
|
27
|
+
subject = RecursiveClosedStruct.new(real: true)
|
28
|
+
assert subject.include?(:real)
|
29
|
+
end
|
25
30
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
assert subject.has_key?(:real)
|
32
|
-
end
|
33
|
-
|
34
|
-
it "lets a user check if the key does not exist without throwing an error" do
|
35
|
-
subject = RecursiveClosedStruct.new({
|
36
|
-
real: true
|
37
|
-
})
|
31
|
+
it "is false if that key does not exist" do
|
32
|
+
subject = RecursiveClosedStruct.new(real: true)
|
33
|
+
refute subject.include?(:imaginary)
|
34
|
+
end
|
38
35
|
|
39
|
-
|
36
|
+
it "recurses" do
|
37
|
+
subject = RecursiveClosedStruct.new(one: { two: "three" })
|
38
|
+
assert subject.one.include?(:two)
|
39
|
+
end
|
40
40
|
end
|
41
41
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative "spec_helper"
|
2
|
+
|
3
|
+
describe PrawnCocktail::Renderer do
|
4
|
+
describe "#meta" do
|
5
|
+
it "merges options if run multiple times" do
|
6
|
+
subject = PrawnCocktail::Renderer.new(nil, nil, nil)
|
7
|
+
subject.meta one: nil, two: 2
|
8
|
+
subject.meta one: 1, three: 3
|
9
|
+
|
10
|
+
expected = { one: 1, two: 2, three: 3 }
|
11
|
+
assert_equal expected, subject.send(:prawn_document_options)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prawn_cocktail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrik Nyh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prawn
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pdf-inspector
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description:
|
@@ -73,8 +73,9 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- .
|
77
|
-
- .
|
76
|
+
- ".github/workflows/ci.yml"
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rubocop.yml"
|
78
79
|
- Gemfile
|
79
80
|
- README.md
|
80
81
|
- Rakefile
|
@@ -91,27 +92,28 @@ files:
|
|
91
92
|
- spec/fixtures/test_document.pdf.rb
|
92
93
|
- spec/integration_spec.rb
|
93
94
|
- spec/recursive_closed_struct_spec.rb
|
95
|
+
- spec/renderer_spec.rb
|
94
96
|
- spec/spec_helper.rb
|
95
97
|
homepage: ''
|
96
98
|
licenses: []
|
97
|
-
metadata:
|
99
|
+
metadata:
|
100
|
+
rubygems_mfa_required: 'true'
|
98
101
|
post_install_message:
|
99
102
|
rdoc_options: []
|
100
103
|
require_paths:
|
101
104
|
- lib
|
102
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
103
106
|
requirements:
|
104
|
-
- -
|
107
|
+
- - ">="
|
105
108
|
- !ruby/object:Gem::Version
|
106
109
|
version: '0'
|
107
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
111
|
requirements:
|
109
|
-
- -
|
112
|
+
- - ">="
|
110
113
|
- !ruby/object:Gem::Version
|
111
114
|
version: '0'
|
112
115
|
requirements: []
|
113
|
-
|
114
|
-
rubygems_version: 2.0.3
|
116
|
+
rubygems_version: 3.2.31
|
115
117
|
signing_key:
|
116
118
|
specification_version: 4
|
117
119
|
summary: Simple documents, templates and helpers on top of Prawn.
|
@@ -121,5 +123,5 @@ test_files:
|
|
121
123
|
- spec/fixtures/test_document.pdf.rb
|
122
124
|
- spec/integration_spec.rb
|
123
125
|
- spec/recursive_closed_struct_spec.rb
|
126
|
+
- spec/renderer_spec.rb
|
124
127
|
- spec/spec_helper.rb
|
125
|
-
has_rdoc:
|