Sha256: 23b32a45957d053fc80bd927baed75e371c04253695ee97ee02a54505c40a185

Contents?: true

Size: 841 Bytes

Versions: 2

Compression:

Stored size: 841 Bytes

Contents

class DataBase
  # Format:
  # codepoint(s) ; property=Yes # [count] (character(s)) name
  DATA_REGEXP = %r{
    (?<codepoints>.+);
    \s{1}
    (?<property>(Emoji_Modifier_Base|Emoji_Presentation|Emoji_Modifier|Emoji))
    \s+
    \#
    \s+
    \[
      (?<count>\d+)
    \]
    \s{1}
    \((?<characters>.+)\)
    \s+
    (?<name>.+)
  }x.freeze

  attr_reader :raw, :codepoints, :property, :count, :characters, :name

  def initialize(raw)
    @raw = raw
    matched = raw.match(DATA_REGEXP)

    @codepoints = matched[:codepoints].rstrip
    @property = matched[:property]
    @count = matched[:count]
    @characters = matched[:characters]
    @name = matched[:name]
  end

  def to_h
    Hash(
      codepoints: codepoints,
      property: property,
      count: count,
      characters: characters,
      name: name
    )
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
emoji-data-1.0.0 lib/emoji/data/data_base.rb
emoji-data-0.1.0 lib/emoji/data/data_base.rb