twemoji 1.0.1 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7564a6a19474323c5069351204db498569c2be3a
4
- data.tar.gz: ef601f04711fe56dba589eb779a7f57c005e6ec5
3
+ metadata.gz: 040b1375538c9592bbd3de7c69c124d528bf3b91
4
+ data.tar.gz: 10bd6f5853d5ce12ea28574527719b440b979e15
5
5
  SHA512:
6
- metadata.gz: 679c25687c003181ab06809a2a09c747f936741f42659bb3bd329f0ad8cf6fcfe078b159ad46a5c3e2f49f58105111ed409d0d6bbca422f503d74b005d92bc03
7
- data.tar.gz: 5aa6af458cc886a644627f0efee22338fd31908c10699e651a8f06ad692268832429cc991eeb039f0e6a2fc3306fadb4a02453947c29493eebc494b34ed36558
6
+ metadata.gz: 9f57702af7530e3c0216a664c99e727272891533eb7110c7a9b556fdb20a57ecebc3caf798e57fbabc7c71da39ac00d84557c0655505e5188f55a562748a97bc
7
+ data.tar.gz: 815d8f456aa191f9fe1721be68d460843def8754b4ad814f988f408b53c799835aa1b9343c619ab055cf4d60fd17090e7db43d53d68d84b9d51a74fba8a959e7
@@ -2,6 +2,26 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 1.1.0 - 2015.02.27
6
+
7
+ - Some more documentations @JuanitoFatas
8
+
9
+ - Behave more like twemoji.js. @bramswenson [#5](https://github.com/jollygoodcode/twemoji/pull/5)
10
+
11
+ **New Methods**:
12
+
13
+ * [`Twemoji.find_by`](https://github.com/jollygoodcode/twemoji/blob/fe2810ddbe1f2cfdb496bcdd9e1576ba1e05eb06/lib/twemoji.rb#L9-L35) now accepts `unicode` keyword argument (either a raw unicode or escaped-unicode string) to find emoji text
14
+
15
+ * Add [`Twemoji.find_by_unicode`](https://github.com/jollygoodcode/twemoji/blob/fe2810ddbe1f2cfdb496bcdd9e1576ba1e05eb06/lib/twemoji.rb#L61-L71) to find emoji text by raw emoji unicode or escaped-unicode string
16
+
17
+ * Add [`Twemoji.render_unicode`](https://github.com/jollygoodcode/twemoji/blob/fe2810ddbe1f2cfdb496bcdd9e1576ba1e05eb06/lib/twemoji.rb#L73-L86) to render raw emoji unicode from emoji text or emoji code
18
+
19
+ **Changes**:
20
+
21
+ * `img` tag's `alt` changes from emoji text like `:heart_eyes:` to actual unicode `"😍"`
22
+
23
+ - Restrict Nokogiri to (1.4..1.6.5). @JuanitoFatas [#3](https://github.com/jollygoodcode/twemoji/pull/3)
24
+
5
25
  ## 1.0.1 - 2015.01.13
6
26
 
7
27
  - Add ability to specify img tag attribute. @JuanitoFatas [#1](https://github.com/jollygoodcode/twemoji/pull/1).
data/LICENSE CHANGED
@@ -1,22 +1,21 @@
1
- Copyright (c) 2015 Juanito Fatas
1
+ The MIT License (MIT)
2
2
 
3
- MIT License
3
+ Copyright (c) 2015 Jolly Good Code
4
4
 
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
12
11
 
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
15
14
 
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  [![Gem Version](http://img.shields.io/gem/v/twemoji.svg)][gem]
4
4
  [![Build Status](https://travis-ci.org/jollygoodcode/twemoji.svg)][travis]
5
+ [![Inline docs](http://inch-ci.org/github/jollygoodcode/twemoji.svg?branch=master)][inch-doc]
5
6
 
6
7
  [gem]: https://rubygems.org/gems/twemoji
7
8
  [travis]: https://travis-ci.org/jollygoodcode/twemoji
9
+ [inch-doc]: http://inch-ci.org/github/jollygoodcode/twemoji
8
10
 
9
11
  Twitter Emoji has a official JavaScript implementation of [twemoji](https://github.com/twitter/twemoji). This RubyGem Twemoji is a minimum implementation in Ruby, does not implement all its features.
10
12
 
@@ -13,7 +15,7 @@ Twitter Emoji has a official JavaScript implementation of [twemoji](https://gith
13
15
  Add this line to your application's Gemfile:
14
16
 
15
17
  ```ruby
16
- gem 'twemoji'
18
+ gem "twemoji"
17
19
  ```
18
20
 
19
21
  And then execute:
@@ -24,82 +26,126 @@ Or install it yourself as:
24
26
 
25
27
  $ gem install twemoji
26
28
 
29
+ ### Ruby 1.9.3 Support
30
+
31
+ @bramswenson has put an effeort to support Ruby 1.9.3, please use [his forked branch](https://github.com/bramswenson/twemoji/tree/ruby-1.9.3):
32
+
33
+ ```ruby
34
+ gem "twemoji", github: "bramswenson/twemoji", branch: "ruby-1.9.3"
35
+ ```
36
+
37
+ ## Integration
38
+
39
+ - [Integration with html-pipeline](https://github.com/jollygoodcode/twemoji/wiki/Integrate-with-html-pipeline)
40
+
27
41
  ## Usage
28
42
 
29
43
  ### API
30
44
 
31
- #### `.find_by_text`
45
+ #### `Twemoji.find_by` text or code or unicode
46
+
47
+ ```ruby
48
+ > Twemoji.find_by(text: ":heart_eyes:")
49
+ => "1f60d"
50
+
51
+ > Twemoji.find_by(code: "1f60d")
52
+ => ":heart_eyes:"
53
+
54
+ > Twemoji.find_by(unicode: "😍")
55
+ => ":heart_eyes:"
56
+
57
+ > Twemoji.find_by(unicode: "\u{1f60d}")
58
+ => ":heart_eyes:"
59
+ ```
60
+
61
+ #### `Twemoji.find_by_text`
32
62
 
33
63
  ```ruby
34
64
  > Twemoji.find_by_text(":heart_eyes:")
35
65
  => "1f60d"
36
66
  ```
37
67
 
38
- #### `.find_by_code`
68
+ #### `Twemoji.find_by_code`
39
69
 
40
70
  ```ruby
41
71
  > Twemoji.find_by_code("1f60d")
42
72
  => ":heart_eyes:"
43
73
  ```
44
74
 
45
- #### `.find_by` text or code
75
+ #### `Twemoji.find_by_unicode`
46
76
 
47
77
  ```ruby
48
- > Twemoji.find_by(text: ":heart_eyes:")
49
- => 1f60d
78
+ > Twemoji.find_by(unicode: "😍")
79
+ => ":heart_eyes:"
80
+ ```
50
81
 
51
- > Twemoji.find_by(code: "1f60d")
52
- => :heart_eyes:
82
+ #### `Twemoji.render_unicode`
83
+
84
+ ```ruby
85
+ > Twemoji.render_unicode ":heart_eyes:"
86
+ => "😍"
87
+
88
+ > Twemoji.render_unicode "1f60d"
89
+ => "😍"
53
90
  ```
54
91
 
55
- #### `.parse`
92
+ #### `Twemoji.parse`
56
93
 
57
94
  ```ruby
58
95
  > Twemoji.parse "I like chocolate :heart_eyes:!"
59
- => 'I like chololate <img class="emoji" draggable="false" alt=":heart_eyes:" src="https://twemoji.maxcdn.com/16x16/1f60d.png">'
96
+ => "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
60
97
  ```
61
98
 
62
- ##### asset_root
99
+ ##### `Twemoji.parse` options
100
+
101
+ ##### `asset_root`
63
102
 
64
103
  Default assets root url, by default will be `https://twemoji.maxcdn.com/`:
65
104
 
66
105
  ```ruby
67
106
  > Twemoji.parse 'I like chocolate :heart_eyes:!', asset_root: "foocdn.com"
68
- => 'I like chololate <img class="emoji" draggable="false" alt=":heart_eyes:" src="https://foocdn.com/16x16/1f60d.png">'
107
+ => "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='foocdn.com/16x16/1f60d.png'>!"
69
108
  ```
70
109
 
71
- ##### file_ext
110
+ ##### `file_ext`
72
111
 
73
112
  Default assets file extensions, by default `.png`.
74
113
 
75
114
  ```ruby
76
115
  > Twemoji.parse 'I like chocolate :heart_eyes:!', file_ext: ".svg"
77
- => 'I like chololate <img class="emoji" draggable="false" alt=":heart_eyes:" src="https://twemoji.maxcdn.com/svg/1f60d.svg">'
116
+ => "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/svg/1f60d.svg'>!"
78
117
  ```
79
118
 
80
- ##### image_size
119
+ ##### `image_size`
81
120
 
82
121
  Default assets/folder size, by default `"16x16"`. Available via Twitter CDN: `16`, `36`, `72`.
83
122
 
84
123
  ```ruby
85
124
  > Twemoji.parse 'I like chocolate :heart_eyes:!', image_size: "72x72"
86
- => 'I like chololate <img class="emoji" draggable="false" alt=":heart_eyes:" src="https://twemoji.maxcdn.com/72x72/1f60d.png">'
125
+ => "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/72x72/1f60d.png'>!"
87
126
  ```
88
127
 
89
- ##### class_name
128
+ ##### `class_name`
90
129
 
91
130
  Default img css class name, by default `"emoji"`.
92
131
 
93
132
  ```ruby
94
133
  > Twemoji.parse 'I like chocolate :heart_eyes:!', class_name: "superemoji"
95
- => 'I like chololate <img class="superemoji" draggable="false" alt=":heart_eyes:" src="https://twemoji.maxcdn.com/16x16/1f60d.png">'
134
+ => "I like chocolate <img class='superemoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
96
135
  ```
97
136
 
98
- ##### img_attr
137
+ ##### `img_attr`
99
138
 
100
139
  ```ruby
101
- Twemoji.parse("I like chocolate :heart_eyes:!", class_name: 'twemoji', img_attr: "style='height: 1.3em;'")
102
- => "I like chocolate <img class='twemoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' style='height: 1.3em;' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
140
+ > Twemoji.parse("I like chocolate :heart_eyes:!", class_name: 'twemoji', img_attr: "style='height: 1.3em;'")
141
+ => "I like chocolate <img class='twemoji' draggable='false' title=':heart_eyes:' alt='😍' style='height: 1.3em;' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
142
+ ```
143
+
144
+ #### `Twemoji.emoji_pattern`
145
+
146
+ ```ruby
147
+ > Twemoji.emoji_pattern
148
+ => /(:smile:|:laughing:| ... |:womens:|:x:|:zero:)/
103
149
  ```
104
150
 
105
151
  ## Contributing
@@ -109,3 +155,13 @@ Twemoji.parse("I like chocolate :heart_eyes:!", class_name: 'twemoji', img_attr:
109
155
  3. Commit your changes (`git commit -am 'Add some feature'`)
110
156
  4. Push to the branch (`git push origin my-new-feature`)
111
157
  5. Create a new Pull Request
158
+
159
+ ## Credits
160
+
161
+ A huge THANK YOU to all our [contributors] (https://github.com/jollygoodcode/twemoji/graphs/contributors)! :heart:
162
+
163
+ This project is maintained by [Jolly Good Code](http://www.jollygoodcode.com).
164
+
165
+ ## License
166
+
167
+ MIT License. See [LICENSE](LICENSE) for details.
data/Rakefile CHANGED
@@ -8,4 +8,4 @@ Rake::TestTask.new do |t|
8
8
  t.verbose = true
9
9
  end
10
10
 
11
- task :default => :test
11
+ task default: :test
@@ -6,29 +6,35 @@ require "twemoji/map"
6
6
  # Twemoji is a Ruby implementation, parses your text, replace emoji text
7
7
  # with corresponding emoji image. Default emoji images are from Twiiter CDN.
8
8
  module Twemoji
9
- # Find code by text and find text by code.
9
+ # Find code by text, find text by code, and find text by unicode.
10
10
  #
11
11
  # @example Usage
12
- # Twemoji.find_by(text: :heart_eyes:) # => "1f60d"
13
- # Twemoji.find_by(code: :1f60d:) # => ":heart_eyes:"
12
+ # Twemoji.find_by(text: ":heart_eyes:") # => "1f60d"
13
+ # Twemoji.find_by(code: ":1f60d:") # => ":heart_eyes:"
14
+ # Twemoji.find_by(unicode: "😍") # => ":heart_eyes:"
15
+ # Twemoji.find_by(unicode: "\u{1f60d}") # => ":heart_eyes:"
14
16
  #
15
17
  # @option options [String] (optional) :text
16
18
  # @option options [String] (optional) :code
19
+ # @option options [String] (optional) :unicode
17
20
  #
18
- # @return [String] Text or Code.
19
- def self.find_by(*args, text: nil, code: nil)
20
- if text && code
21
- raise ArgumentError, "Can only specify text or code one at a time"
21
+ # @return [String] Emoji text or code.
22
+ def self.find_by(text: nil, code: nil, unicode: nil)
23
+ if [ text, code, unicode ].compact!.size > 1
24
+ fail ArgumentError, "Can only specify text, code or unicode one at a time"
22
25
  end
23
26
 
24
- if text
27
+ case
28
+ when text
25
29
  find_by_text text
30
+ when unicode
31
+ find_by_unicode unicode
26
32
  else
27
33
  find_by_code code
28
34
  end
29
35
  end
30
36
 
31
- # Find emoji code by emoji text
37
+ # Find emoji code by emoji text.
32
38
  #
33
39
  # @example Usage
34
40
  # Twemoji.find_by_text ":heart_eyes:"
@@ -52,11 +58,39 @@ module Twemoji
52
58
  ICODES[must_str(code)]
53
59
  end
54
60
 
55
- # Parse text, replace emoji text with image.
61
+ # Find emoji text by raw emoji unicode.
62
+ #
63
+ # @example Usage
64
+ # Twemoji.find_by_unicode "😍"
65
+ # => ":heart_eyes:"
66
+ #
67
+ # @param unicode [String] Emoji raw unicode to find text.
68
+ # @return [String] Emoji Text.
69
+ def self.find_by_unicode(raw)
70
+ ICODES[must_str("%4.4x" % raw.ord)]
71
+ end
72
+
73
+ # Render raw emoji unicode from emoji text or emoji code.
74
+ #
75
+ # @example Usage
76
+ # Twemoji.render_unicode ":heart_eyes:"
77
+ # => "😍"
78
+ # Twemoji.render_unicode "1f60d"
79
+ # => "😍"
80
+ #
81
+ # @param text_or_code [String] Emoji text or code to render as unicode.
82
+ # @return [String] Emoji UTF-8 Text.
83
+ def self.render_unicode(text_or_code)
84
+ text_or_code = find_by_text(text_or_code) if text_or_code[0] == ":"
85
+ [text_or_code.hex].pack("U")
86
+ end
87
+
88
+ # Parse string, replace emoji text with image.
89
+ # Parse DOM, replace emoji with image.
56
90
  #
57
91
  # @example Usage
58
92
  # Twemoji.parse("I like chocolate :heart_eyes:!")
59
- # => => 'I like chololate <img class="emoji" draggable="false" alt=":heart_eyes:" src="https://twemoji.maxcdn.com/svg/1f60d.svg">'
93
+ # => "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
60
94
  #
61
95
  # @param text [String] Source text to parse.
62
96
  #
@@ -80,7 +114,7 @@ module Twemoji
80
114
  options[:class_name] = class_name
81
115
  options[:img_attr] = img_attr
82
116
 
83
- if text.kind_of?(Nokogiri::HTML::DocumentFragment)
117
+ if text.is_a?(Nokogiri::HTML::DocumentFragment)
84
118
  parse_document(text)
85
119
  else
86
120
  parse_html(text)
@@ -102,7 +136,7 @@ module Twemoji
102
136
  # @return [String] A String.
103
137
  # @private
104
138
  def self.must_str(text)
105
- text = text.respond_to?(:to_str) ? text.to_str : text.to_s
139
+ text.respond_to?(:to_str) ? text.to_str : text.to_s
106
140
  end
107
141
 
108
142
  # Options hash for Twemoji.
@@ -172,10 +206,11 @@ module Twemoji
172
206
  # @return [String] Emoji image tag generated by name and options.
173
207
  # @private
174
208
  def self.img_tag(name)
209
+ unicode = render_unicode(name)
175
210
  if options[:img_attr]
176
- "<img class='#{options[:class_name]}' draggable='false' title='#{name}' alt='#{name}' #{options[:img_attr]} src='#{emoji_url(name)}'>"
211
+ "<img class='#{options[:class_name]}' draggable='false' title='#{name}' alt='#{unicode}' #{options[:img_attr]} src='#{emoji_url(name)}'>"
177
212
  else
178
- "<img class='#{options[:class_name]}' draggable='false' title='#{name}' alt='#{name}' src='#{emoji_url(name)}'>"
213
+ "<img class='#{options[:class_name]}' draggable='false' title='#{name}' alt='#{unicode}' src='#{emoji_url(name)}'>"
179
214
  end
180
215
  end
181
216
 
@@ -192,7 +227,7 @@ module Twemoji
192
227
  elsif options[:file_ext] == ".svg"
193
228
  File.join(options[:asset_root], "svg", "#{code}.svg")
194
229
  else
195
- raise RuntimeError, "Unspported file extension: #{options[:file_ext]}"
230
+ fail "Unspported file extension: #{options[:file_ext]}"
196
231
  end
197
232
  end
198
233
  end
@@ -1,3 +1,3 @@
1
1
  module Twemoji
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -5,12 +5,12 @@ class TwemojiTest < Minitest::Test
5
5
  @option = {}
6
6
  end
7
7
 
8
- def test_find_by_text
9
- assert_equal "1f60d", Twemoji.find_by_text(":heart_eyes:")
10
- end
8
+ def test_finder_methods_cannot_find_by_more_than_one
9
+ exception = assert_raises ArgumentError do
10
+ Twemoji.find_by(text: ":heart_eyes:", code: "1f60d")
11
+ end
11
12
 
12
- def test_find_by_code
13
- assert_equal ":heart_eyes:", Twemoji.find_by_code("1f60d")
13
+ assert_equal "Can only specify text, code or unicode one at a time", exception.message
14
14
  end
15
15
 
16
16
  def test_finder_methods_find_by_text
@@ -21,35 +21,47 @@ class TwemojiTest < Minitest::Test
21
21
  assert_equal ":heart_eyes:", Twemoji.find_by(code: "1f60d")
22
22
  end
23
23
 
24
- def test_finder_methods_cannot_find_by_both
25
- exception = assert_raises ArgumentError do
26
- Twemoji.find_by(text: ":heart_eyes:", code: "1f60d")
27
- end
24
+ def test_finder_methods_find_by_unicode
25
+ assert_equal ":heart_eyes:", Twemoji.find_by(unicode: "😍")
26
+ end
27
+
28
+ def test_find_by_text
29
+ assert_equal "1f60d", Twemoji.find_by_text(":heart_eyes:")
30
+ end
31
+
32
+ def test_find_by_code
33
+ assert_equal ":heart_eyes:", Twemoji.find_by_code("1f60d")
34
+ end
35
+
36
+ def test_find_by_unicode
37
+ assert_equal ":heart_eyes:", Twemoji.find_by_unicode("😍")
38
+ end
28
39
 
29
- assert_equal "Can only specify text or code one at a time", exception.message
40
+ def test_find_by_escaped_unicode
41
+ assert_equal ":heart_eyes:", Twemoji.find_by_unicode("\u{1f60d}")
30
42
  end
31
43
 
32
44
  def test_parse_html_string
33
- expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
45
+ expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
34
46
 
35
47
  assert_equal expected, Twemoji.parse("I like chocolate :heart_eyes:!")
36
48
  end
37
49
 
38
50
  def test_parse_document
39
51
  doc = Nokogiri::HTML::DocumentFragment.parse("<p>I like chocolate :heart_eyes:!</p>")
40
- expected = '<p>I like chocolate <img class="emoji" draggable="false" title=":heart_eyes:" alt=":heart_eyes:" src="https://twemoji.maxcdn.com/16x16/1f60d.png">!</p>'
52
+ expected = '<p>I like chocolate <img class="emoji" draggable="false" title=":heart_eyes:" alt="😍" src="https://twemoji.maxcdn.com/16x16/1f60d.png">!</p>'
41
53
 
42
54
  assert_equal expected, Twemoji.parse(doc).to_html
43
55
  end
44
56
 
45
57
  def test_parse_option_asset_root
46
- expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' src='https://emoji.bestcdn.com/16x16/1f60d.png'>!"
58
+ expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://emoji.bestcdn.com/16x16/1f60d.png'>!"
47
59
 
48
60
  assert_equal expected, Twemoji.parse("I like chocolate :heart_eyes:!", asset_root: 'https://emoji.bestcdn.com')
49
61
  end
50
62
 
51
63
  def test_parse_option_file_ext_svg
52
- expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' src='https://twemoji.maxcdn.com/svg/1f60d.svg'>!"
64
+ expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/svg/1f60d.svg'>!"
53
65
 
54
66
  assert_equal expected, Twemoji.parse("I like chocolate :heart_eyes:!", file_ext: '.svg')
55
67
  end
@@ -63,19 +75,19 @@ class TwemojiTest < Minitest::Test
63
75
  end
64
76
 
65
77
  def test_parse_option_image_size
66
- expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' src='https://twemoji.maxcdn.com/72x72/1f60d.png'>!"
78
+ expected = "I like chocolate <img class='emoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/72x72/1f60d.png'>!"
67
79
 
68
80
  assert_equal expected, Twemoji.parse("I like chocolate :heart_eyes:!", file_ext: ".png", image_size: "72x72")
69
81
  end
70
82
 
71
83
  def test_parse_option_class_name
72
- expected = "I like chocolate <img class='twemoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
84
+ expected = "I like chocolate <img class='twemoji' draggable='false' title=':heart_eyes:' alt='😍' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
73
85
 
74
86
  assert_equal expected, Twemoji.parse("I like chocolate :heart_eyes:!", class_name: 'twemoji')
75
87
  end
76
88
 
77
89
  def test_parse_option_img_attr
78
- expected = "I like chocolate <img class='twemoji' draggable='false' title=':heart_eyes:' alt=':heart_eyes:' style='height: 1.3em;' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
90
+ expected = "I like chocolate <img class='twemoji' draggable='false' title=':heart_eyes:' alt='😍' style='height: 1.3em;' src='https://twemoji.maxcdn.com/16x16/1f60d.png'>!"
79
91
 
80
92
  assert_equal expected, Twemoji.parse("I like chocolate :heart_eyes:!", class_name: 'twemoji', img_attr: "style='height: 1.3em;'")
81
93
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Twemoji::VERSION
9
9
  spec.authors = %w(Juanito Fatas)
10
10
  spec.email = %w(katehuang0320@gmail.com)
11
- spec.summary = %q{A RubyGem to convert :heart: to Twitter cdn url}
11
+ spec.summary = %(A RubyGem to convert :heart: to Twitter cdn url)
12
12
  spec.description = spec.summary
13
13
  spec.homepage = "https://github.com/jollygoodcode/twemoji"
14
14
  spec.license = "MIT"
@@ -16,5 +16,5 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.require_paths = %w(lib)
18
18
 
19
- spec.add_dependency "nokogiri", "~> 1.6"
19
+ spec.add_dependency "nokogiri", [">= 1.4", "<= 1.6.5"]
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twemoji
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juanito
@@ -9,22 +9,28 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-13 00:00:00.000000000 Z
12
+ date: 2015-02-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '1.6'
20
+ version: '1.4'
21
+ - - "<="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.6.5
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - "~>"
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: '1.4'
31
+ - - "<="
26
32
  - !ruby/object:Gem::Version
27
- version: '1.6'
33
+ version: 1.6.5
28
34
  description: 'A RubyGem to convert :heart: to Twitter cdn url'
29
35
  email:
30
36
  - katehuang0320@gmail.com