emoji_sub 0.1.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  # Specify which files should be added to the gem when it is released.
20
20
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
21
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|lib\/development)/}) }
23
23
  end
24
24
  spec.bindir = "exe"
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -0,0 +1,19 @@
1
+ module CoreExtensions
2
+ module EmojiSub
3
+ ##
4
+ # This monkey patches String so that it can receive emoji_sub directives
5
+ # cf. https://github.com/armahillo/emoji_sub/issues/2
6
+ # If you want to monkey patch your use of String, you should be able to include
7
+ # this module and that should do it.
8
+ ##
9
+ module String
10
+ def emoji_sub(options = {})
11
+ ::EmojiSub.emoji_sub(self, options)
12
+ end
13
+
14
+ def emoji_sub!(options = {})
15
+ replace emoji_sub(options)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,11 +1,11 @@
1
1
  require "emoji_sub/version"
2
- require 'YAML'
2
+ require 'yaml'
3
3
 
4
4
  module EmojiSub
5
5
  EMOJI_MAPPING_YAML = "data/emoji.yaml"
6
6
 
7
7
  def emoji_sub(text, additional_mappings = {})
8
- known_emoji = YAML.load(File.read(EMOJI_MAPPING_YAML)).merge(additional_mappings)
8
+ known_emoji = emoji_definitions.merge(additional_mappings)
9
9
 
10
10
  discovered_emoji = text.scan(/:([\w\d\-\_]+):/).flatten.map(&:to_sym).uniq
11
11
  found = discovered_emoji.each_with_object({}) do |emoji, found|
@@ -13,12 +13,15 @@ module EmojiSub
13
13
  end.compact
14
14
 
15
15
  found.each do |shortcode, unicode|
16
- text.gsub!(/:#{shortcode}:/, "&#x#{unicode}")
16
+ text.gsub!(/:#{shortcode}:/, Array(unicode).map { |u| "&#x#{u}" }.join(''))
17
17
  end
18
18
 
19
19
  text
20
20
  end
21
- module_function :emoji_sub
22
21
 
22
+ def emoji_definitions
23
+ @emoji_definitions ||= YAML.load(File.read(EMOJI_MAPPING_YAML))
24
+ end
23
25
 
26
+ module_function :emoji_sub, :emoji_definitions
24
27
  end
@@ -1,3 +1,3 @@
1
1
  module EmojiSub
2
- VERSION = "0.1.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emoji_sub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Hill
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-22 00:00:00.000000000 Z
11
+ date: 2020-10-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'EmojiSub allows you to use :short_code_emoji: in your text and quickly
14
14
  replace it with the natural Unicode versions via a bit of string parsing logic'
@@ -32,8 +32,8 @@ files:
32
32
  - bin/setup
33
33
  - data/emoji.yaml
34
34
  - emoji_sub.gemspec
35
+ - lib/core_extensions/string.rb
35
36
  - lib/emoji_sub.rb
36
- - lib/emoji_sub/emoji_parser.rb
37
37
  - lib/emoji_sub/version.rb
38
38
  homepage: https://github.com/armahillo/emoji_sub
39
39
  licenses:
@@ -1,25 +0,0 @@
1
- require 'YAML'
2
-
3
- def emoji_sub(text)
4
- known_emoji = load_emoji
5
- discovered_emoji = text.scan(/:([\w\d\-\_]+):/).flatten.map(&:to_sym).uniq
6
- found = discovered_emoji.each_with_object({}) do |emoji, found|
7
- found[emoji] = known_emoji.fetch(emoji,'')
8
- end
9
-
10
- found.each do |shortcode, unicode|
11
- text.gsub!(/:#{shortcode}:/, "&#x#{unicode}")
12
- end
13
-
14
- text
15
- end
16
-
17
- def load_emoji
18
- YAML.load(File.read('emoji.yaml'))
19
- end
20
-
21
-
22
-
23
- TEXT = 'This is testing text :100: :100: :100: :bad_dude: It is great :slightly_smiling_face:.'
24
-
25
- p emoji_sub(TEXT)