emoji_data 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: f66433b3778b05bcc9534d6a15658b4f060bdcc4
4
- data.tar.gz: 1b41a37a76d7e0b01ac6eddb1af67fec59f16a55
3
+ metadata.gz: c7a2b01097e18162bdb426c05bfb76f871ca7f39
4
+ data.tar.gz: 5e75e18ab2252aab634cd17863a6b7cbb471119b
5
5
  SHA512:
6
- metadata.gz: 0b7ded0ce8a2a30a38fef2dcb7f6ceb4c663865d4027846550e5beb4957e646bb43cba9c7ea1cfb3f4a32dea82f808a2be98a14a034f567c3354b41850d77f9a
7
- data.tar.gz: f5fbf0d2639f0bd3e17bca053e9a6dec6f3d4b64f28fe15634e5155be6b2788b718853d70097b7d7a3e1fcf061fca67b3896ae1c72324e30dd7ac70efa96020f
6
+ metadata.gz: 23f834f7c47f8015bf14a80623cdaf95ebfd45a2d33f9eeeda0434232146311c439b895476ac7b65382e12c0a8b7038cd7508b6352871d643474acf20f32d838
7
+ data.tar.gz: 7a93b457a18d7bfec72cf3914527a9426abe03aab8b186812b6e7d8fd3cf3ee576cf57c1f88ba415862ce10dba388215e014e10f204ad625d52d6e1e2aeb6526
data/.travis.yml CHANGED
@@ -4,6 +4,7 @@ rvm:
4
4
  - 1.9.2
5
5
  - 1.9.3
6
6
  - 2.0.0
7
+ - 2.1.0
7
8
 
8
9
  matrix:
9
10
  allow_failures:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.3 (1 April 2013)
4
+
5
+ * On initialization, create hashmaps to cache lookups for `.find_by_unified()`.
6
+
7
+ In a quick benchmark in MRI 2.1.1, this reduces the time needed for one million lookups from `13.5s` to `0.3s`!
8
+
9
+ This is only for lookup by unified ID for now, since the other `find_by_*()` methods are actually searches that can return multiple values. I'll look at nested hashmaps for those if there is a pressing performance need later.
10
+
3
11
  ## 0.0.2 (3 December 2013)
4
12
 
5
13
  * Remove JSON gem dependency since no longer supporting Ruby 1.8.7 anyhow.
@@ -9,4 +17,4 @@
9
17
 
10
18
  ## 0.0.1 (7 June 2013)
11
19
 
12
- * Initial release
20
+ * Initial release
data/lib/emoji_data.rb CHANGED
@@ -8,6 +8,9 @@ module EmojiData
8
8
  EMOJI_MAP = JSON.parse( RAW_JSON )
9
9
  EMOJI_CHARS = EMOJI_MAP.map { |em| EmojiChar.new(em) }
10
10
 
11
+ # hashmap for fast unified lookups
12
+ EMOJICHAR_UNIFIED_MAP = Hash[EMOJI_CHARS.map { |u| [u.unified, u] }]
13
+
11
14
  def self.all
12
15
  EMOJI_CHARS
13
16
  end
@@ -29,7 +32,8 @@ module EmojiData
29
32
  end
30
33
 
31
34
  def self.find_by_unified(cp)
32
- EMOJI_CHARS.detect { |ec| ec.unified == cp.upcase }
35
+ # EMOJI_CHARS.detect { |ec| ec.unified == cp.upcase }
36
+ EMOJICHAR_UNIFIED_MAP[cp.upcase]
33
37
  end
34
38
 
35
39
  def self.find_by_str(str)
@@ -1,3 +1,3 @@
1
1
  module EmojiData
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emoji_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Rothenberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-04 00:00:00.000000000 Z
11
+ date: 2014-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
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: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
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: :development
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: rspec
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
  description: Provides classes and helpers for dealing with emoji character data as
@@ -61,8 +61,8 @@ executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
- - .gitignore
65
- - .travis.yml
64
+ - ".gitignore"
65
+ - ".travis.yml"
66
66
  - CHANGELOG.md
67
67
  - Gemfile
68
68
  - LICENSE.txt
@@ -86,17 +86,17 @@ require_paths:
86
86
  - lib
87
87
  required_ruby_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: 1.9.2
92
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
98
  rubyforge_project:
99
- rubygems_version: 2.0.14
99
+ rubygems_version: 2.2.2
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: Provides classes and methods for dealing with emoji character data as unicode.