emoji_sub 0.2.1 → 0.5.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 +4 -4
- data/.gitignore +3 -0
- data/CHANGELOG.md +30 -0
- data/Gemfile +3 -1
- data/Gemfile.lock +11 -1
- data/README.md +12 -2
- data/Rakefile +8 -14
- data/data/emoji.yaml +9034 -9125
- data/emoji_sub.gemspec +3 -3
- data/lib/core_extensions/string.rb +19 -0
- data/lib/emoji_sub.rb +6 -28
- data/lib/emoji_sub/definitions.rb +10 -0
- data/lib/emoji_sub/emoji_sub.rb +19 -0
- data/lib/emoji_sub/version.rb +1 -1
- metadata +6 -3
    
        data/emoji_sub.gemspec
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            require_relative 'lib/emoji_sub | 
| 1 | 
            +
            require_relative 'lib/emoji_sub'
         | 
| 2 2 |  | 
| 3 3 | 
             
            Gem::Specification.new do |spec|
         | 
| 4 4 | 
             
              spec.name          = "emoji_sub"
         | 
| @@ -21,8 +21,8 @@ Gem::Specification.new do |spec| | |
| 21 21 | 
             
              spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do
         | 
| 22 22 | 
             
                `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|lib\/development)/}) }
         | 
| 23 23 | 
             
              end
         | 
| 24 | 
            -
              spec.bindir        = "exe"
         | 
| 25 | 
            -
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 26 24 | 
             
              spec.require_paths = ["lib"]
         | 
| 27 25 |  | 
| 28 26 | 
             
            end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
             | 
| @@ -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
         | 
    
        data/lib/emoji_sub.rb
    CHANGED
    
    | @@ -1,30 +1,8 @@ | |
| 1 | 
            -
            require "emoji_sub/version"
         | 
| 2 | 
            -
            require 'yaml'
         | 
| 3 | 
            -
             | 
| 4 1 | 
             
            module EmojiSub
         | 
| 5 | 
            -
               | 
| 6 | 
            -
              
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                known_emoji = emoji_definitions.merge(additional_mappings)
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                discovered_emoji = text.scan(/:([\w\d\-\_]+):/).flatten.map(&:to_sym).uniq
         | 
| 11 | 
            -
                found = discovered_emoji.each_with_object({}) do |emoji, found|
         | 
| 12 | 
            -
                  found[emoji] = known_emoji.fetch(emoji,nil)
         | 
| 13 | 
            -
                end.compact
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                found.each do |shortcode, unicode|
         | 
| 16 | 
            -
                  text.gsub!(/:#{shortcode}:/, Array(unicode).map { |u| "&#x#{u}" }.join(''))
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
                
         | 
| 19 | 
            -
                text
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
              def emoji_definitions
         | 
| 23 | 
            -
                m = YAML.load(File.read(EMOJI_MAPPING_YAML)).values
         | 
| 24 | 
            -
                @emoji_definitions ||= m.inject({}) { |a,memo| memo.merge(a) }
         | 
| 25 | 
            -
                
         | 
| 26 | 
            -
                #@emoji_definitions ||= m.collect(&:values).flatten
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
              module_function :emoji_sub, :emoji_definitions
         | 
| 2 | 
            +
              GEM_ROOT = File.dirname(__FILE__) + "/.."
         | 
| 3 | 
            +
              EMOJI_MAPPING_YAML = GEM_ROOT + "/data/emoji.yaml"
         | 
| 4 | 
            +
            end
         | 
| 29 5 |  | 
| 30 | 
            -
             | 
| 6 | 
            +
            require_relative 'emoji_sub/version'
         | 
| 7 | 
            +
            require_relative 'emoji_sub/definitions'
         | 
| 8 | 
            +
            require_relative 'emoji_sub/emoji_sub'
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            module EmojiSub
         | 
| 2 | 
            +
              extend self
         | 
| 3 | 
            +
              def emoji_sub(text, additional_mappings = {})
         | 
| 4 | 
            +
                known_emoji = definitions.merge(additional_mappings)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                discovered_emoji = text.scan(/:([\w\d\-\_]+):/).flatten.map(&:to_sym).uniq
         | 
| 7 | 
            +
                found = discovered_emoji.each_with_object({}) do |emoji, found|
         | 
| 8 | 
            +
                  found[emoji] = known_emoji.fetch(emoji,nil)
         | 
| 9 | 
            +
                end.compact
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                found.each do |shortcode, unicode|
         | 
| 12 | 
            +
                  text.gsub!(/:#{shortcode}:/, Array(unicode).map { |u| "&#x#{u}" }.join(''))
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                text
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              module_function :emoji_sub
         | 
| 19 | 
            +
            end
         | 
    
        data/lib/emoji_sub/version.rb
    CHANGED
    
    
    
        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. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Aaron Hill
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 | 
            -
            bindir:  | 
| 9 | 
            +
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-08-17 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,7 +32,10 @@ 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
         | 
| 37 | 
            +
            - lib/emoji_sub/definitions.rb
         | 
| 38 | 
            +
            - lib/emoji_sub/emoji_sub.rb
         | 
| 36 39 | 
             
            - lib/emoji_sub/version.rb
         | 
| 37 40 | 
             
            homepage: https://github.com/armahillo/emoji_sub
         | 
| 38 41 | 
             
            licenses:
         |