prawn-emoji 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b7d56de903eb9de13dd85933c035fd10b80adf07e1884f59917d4531c01fc34
4
- data.tar.gz: b138d0eaafdbc6133b787a0af0ec02f53a036c2843cf5a0b58ccc729cdcc697d
3
+ metadata.gz: e24fc7c2a1d3c44a3ecf18bfa8b5124e574c1f60b9f9b7223acb82f2e37268f6
4
+ data.tar.gz: '0338e7946dca1bd17ab896df82b73d7d129ee7282543f71fe0c730911ebecddd'
5
5
  SHA512:
6
- metadata.gz: 2a5a68b72b5cf442101ef53fa9bbba86887286d752cbc7ecf1ebcb7e759a0b59939e25ea6a13841ddbc34e13a5bb6e9a0c9d6d3555f352c8501115456c4d3905
7
- data.tar.gz: '049e887b7f8cbc66343c4c8e683eae6268c564f5502ffe4058b4d4e072e24028f24b58918d22e6c1032cca5332c010e09e7a75072d68a17358ac9c5087f6f279'
6
+ metadata.gz: 716f0cbc65b97d8889c50ba2a46c15bed474ca5c110640b925b427cf9e05193acc5e0b57687ae5ce87018417e4984a4d43c3c669dbb4e7045e06f335beff3799
7
+ data.tar.gz: 3b9a3ba4e9640ceab0b0b1251731933946d02eb2ab6f9270f5cf1c8000b1a0281237d1ea07196687cea2b7efd662d5bc8bae2d42f3bdbd96de3d93b0af5c8af4
@@ -4,7 +4,7 @@ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
6
  test:
7
- name: Test on ruby ${{ matrix.ruby_version }}
7
+ name: Test on ruby ${{ matrix.ruby_version }} and prawn ${{ matrix.prawn_version }}
8
8
  runs-on: ubuntu-latest
9
9
  strategy:
10
10
  matrix:
@@ -12,8 +12,13 @@ jobs:
12
12
  - 2.5.x
13
13
  - 2.6.x
14
14
  - 2.7.x
15
+ prawn_version:
16
+ - 2.2
17
+ - 2.3
18
+
15
19
  steps:
16
20
  - uses: actions/checkout@v1
21
+
17
22
  - name: Set up diff-pdf
18
23
  run: |
19
24
  sudo apt-get update
@@ -21,12 +26,14 @@ jobs:
21
26
  git clone https://github.com/vslavik/diff-pdf.git -b v0.4.1 --depth 1 /tmp/diff-pdf-src
22
27
  cd /tmp/diff-pdf-src
23
28
  ./bootstrap && ./configure && make && sudo make install
29
+
24
30
  - name: Set up Ruby ${{ matrix.ruby_version }}
25
31
  uses: actions/setup-ruby@v1
26
32
  with:
27
33
  ruby-version: ${{ matrix.ruby_version }}
34
+
28
35
  - name: Build and test with Rake
29
36
  run: |
30
37
  gem install bundler
31
- bundle install --jobs 4 --retry 3
38
+ bundle install --gemfile test/gemfiles/prawn-${{ matrix.prawn_version }} --jobs 4 --retry 3
32
39
  bundle exec rake test
@@ -1,5 +1,11 @@
1
1
  ## Master (Unreleased)
2
2
 
3
+ ## 4.1.0
4
+
5
+ ### Minor Enhancements
6
+
7
+ * Add prawn 2.3.0 support #35
8
+
3
9
  ## 4.0.0
4
10
 
5
11
  ### Enhancements
@@ -9,7 +15,7 @@
9
15
  ### Breaking Changes
10
16
 
11
17
  * Drop ruby 2.4 support
12
- * The drawing results of emoji will be chnaged slightly due to the new emoji drawing process
18
+ * The drawing results of emoji will be changed slightly due to the new emoji drawing process
13
19
 
14
20
  ### Bug Fixes
15
21
 
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ gem 'rake', '>= 0'
6
+ gem 'minitest', '>= 5.12.2'
7
+ gem 'rr', '>= 0'
8
+ gem 'rubyzip', '>= 1.0.0'
data/README.md CHANGED
@@ -90,7 +90,7 @@ Prawn::Emoji.config.regex = ::Unicode::Emoji::REGEX_INCLUDE_TEXT
90
90
 
91
91
  ### Prawn
92
92
 
93
- 2.2+
93
+ 2.2, 2.3
94
94
 
95
95
  ## Contributing
96
96
 
@@ -11,10 +11,12 @@ module Prawn
11
11
  #
12
12
  # The following values are available (Default is `Unicode::Emoji::REGEX_VALID`):
13
13
  # https://github.com/janlelis/unicode-emoji#regex.
14
- :regex
14
+ :regex,
15
+
16
+ keyword_init: true
15
17
  )
16
18
  def self.config
17
- @config ||= Config.new(::Unicode::Emoji::REGEX_VALID)
19
+ @config ||= Config.new(regex: ::Unicode::Emoji::REGEX_VALID)
18
20
  end
19
21
 
20
22
  def self.regex
@@ -44,26 +44,23 @@ module Prawn
44
44
 
45
45
  def draw_text(text, at:, text_options:)
46
46
  draw_text!(text, at: at, text_options: text_options)
47
- document.width_of(text, text_options)
47
+
48
+ width = document.width_of(text, text_options)
49
+
50
+ if Prawn::VERSION >= '2.3.0'
51
+ # In prawn v2.3.0, the character spacing at the end of the text is not included in the calculated text width.
52
+ # https://github.com/prawnpdf/prawn/pull/1117
53
+ width > 0 ? width + document.character_spacing : width
54
+ else
55
+ width
56
+ end
48
57
  end
49
58
 
50
59
  def draw_emoji(emoji_char, at:)
51
60
  emoji_image = Emoji::Image.new(emoji_char)
61
+ emoji_image.render(document, at: at)
52
62
 
53
- x, y = at
54
-
55
- # Prawn 2.2 does not close the image file when Pathname is passed to Document#image method.
56
- #
57
- # FIXME: This issue has been fixed by https://github.com/prawnpdf/prawn/pull/1090 but not released.
58
- # Fix as follows after the PR released.
59
- #
60
- # @document.image(image_file.path, at: [x, y], width: image.width)
61
- #
62
- File.open(emoji_image.path, 'rb') do |image_file|
63
- @document.image(image_file, at: [x, y + emoji_char.height], width: emoji_char.width)
64
- end
65
-
66
- emoji_char.width + document.character_spacing
63
+ emoji_image.width + document.character_spacing
67
64
  end
68
65
  end
69
66
  end
@@ -1,14 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'forwardable'
4
+
3
5
  module Prawn
4
6
  module Emoji
5
7
  class Image
8
+ extend Forwardable
9
+
6
10
  STORE = Emoji.root.join 'emoji', 'images'
7
11
 
12
+ def_delegators :emoji_char, :width, :height
13
+
8
14
  def initialize(emoji_char)
9
15
  @emoji_char = emoji_char
10
16
  end
11
17
 
18
+ def render(document, at:)
19
+ x, y = at
20
+
21
+ position = [x, y + height]
22
+
23
+ if Prawn::VERSION >= '2.3.0'
24
+ document.image(path, at: position, width: width)
25
+ else
26
+ # Prawn 2.2 does not close the image file when Pathname is passed to Document#image method.
27
+ # https://github.com/prawnpdf/prawn/pull/1090
28
+ File.open(path, 'rb') do |image_file|
29
+ document.image(image_file, at: position, width: width)
30
+ end
31
+ end
32
+ end
33
+
12
34
  def path
13
35
  STORE.join("#{emoji_char.codepoint}.png").to_s
14
36
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Prawn
4
4
  module Emoji
5
- VERSION = '4.0.0'
5
+ VERSION = '4.1.0'
6
6
  end
7
7
  end
@@ -18,12 +18,6 @@ Gem::Specification.new do |spec|
18
18
  end
19
19
  spec.require_path = 'lib'
20
20
 
21
- spec.add_runtime_dependency 'prawn', '~> 2.2.0'
21
+ spec.add_runtime_dependency 'prawn', '~> 2.2'
22
22
  spec.add_runtime_dependency 'unicode-emoji', '~> 2.5.0'
23
-
24
- spec.add_development_dependency 'bundler', '>= 1.0.0'
25
- spec.add_development_dependency 'rake', '>= 0'
26
- spec.add_development_dependency 'minitest', '>= 5.12.2'
27
- spec.add_development_dependency 'rr', '>= 0'
28
- spec.add_development_dependency 'rubyzip', '>= 1.0.0'
29
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prawn-emoji
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katsuya HIDAKA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2020-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prawn
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.2.0
19
+ version: '2.2'
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
- version: 2.2.0
26
+ version: '2.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: unicode-emoji
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,76 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.5.0
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 1.0.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 1.0.0
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: minitest
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 5.12.2
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 5.12.2
83
- - !ruby/object:Gem::Dependency
84
- name: rr
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubyzip
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 1.0.0
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: 1.0.0
111
41
  description: Prawn::Emoji is an extention that adds Emoji support to Prawn
112
42
  email: hidakatsuya@gmail.com
113
43
  executables: []