class Somemoji::Emoji

Attributes

aliases[R]

@return [Array<String>]

ascii_arts[R]

@return [Array<String>]

category[R]

@return [String, nil]

code[R]

@return [String, nil]

code_points[R]

@return [Array<String>, nil]

keywords[R]

@return [Array<String>, nil]

name[R]

@return [String, nil]

Public Class Methods

new( aliases: nil, ascii_arts: nil, category: nil, code:, code_points: nil, keywords: nil, name: nil ) click to toggle source

@param aliases [Array<String>, nil] @param ascii_arts [Array<String>, nil] @param category [String, nil] @param code_points [Array<String>, nil] @param code [String] a unique emoji code (required) @param keywords [Array<String>, nil] @param name [String, nil] @example

emoji = Somemoji::Emoji.new(
  aliases: [],
  ascii_arts: [],
  category: "symbols",
  code: "100",
  code_points: [
    "1F4AF"
  ],
  keywords: [
    "100",
    "a",
    "exam",
    "numbers",
    "parties",
    "percent",
    "perfect",
    "plus",
    "quiz",
    "school",
    "score",
    "symbol",
    "test",
    "win",
    "wow"
  ],
  name: "hundred points symbol"
)
emoji.character #=> "💯"
# File lib/somemoji/emoji.rb, line 60
def initialize(
  aliases: nil,
  ascii_arts: nil,
  category: nil,
  code:,
  code_points: nil,
  keywords: nil,
  name: nil
)
  @aliases = aliases || []
  @ascii_arts = ascii_arts || []
  @category = category
  @code = code
  @code_points = code_points || []
  @keywords = keywords || []
  @name = name
end

Public Instance Methods

abbreviated_code_points() click to toggle source

@return [Array<String>]

# File lib/somemoji/emoji.rb, line 79
def abbreviated_code_points
  code_points.reject do |code_point|
    %w(200d fe0f).include?(code_point.downcase)
  end
end
base_path() click to toggle source

@return [String]

# File lib/somemoji/emoji.rb, line 86
def base_path
  if code_points.empty?
    code
  else
    "unicode/#{code_points.join('-')}"
  end
end
character() click to toggle source

@return [String, nil] a String representation from its code points

# File lib/somemoji/emoji.rb, line 95
def character
  unless code_points.empty?
    code_points.map do |code_point|
      code_point.to_i(16)
    end.pack("U*")
  end
end
to_hash() click to toggle source

@return [Hash{Symbol => Object}]

# File lib/somemoji/emoji.rb, line 104
def to_hash
  {
    aliases: aliases,
    ascii_arts: ascii_arts,
    category: category,
    code: code,
    code_points: code_points,
    keywords: keywords,
    name: name,
  }
end