Sha256: 2579572e0251f678826ef08f469c70351a41e580408b1c17291c47f395b02610

Contents?: true

Size: 1.45 KB

Versions: 4

Compression:

Stored size: 1.45 KB

Contents

require_relative '../../defaults'
require_relative 'component_set'

module Emojidex
  module Data
    # Combination information for emoji
    module EmojiComponentSetInformation
      attr_accessor :combinations, :customizations

      def init_combination_info(details)
        _check_and_init_combinations
        fill_combinations(details[:combinations]) if details.include? :combinations
      end

      def fill_combinations(combinations)
        _check_and_init_combinations
        combinations.each do |combination|
          add_combination(combination)
        end
      end

      def add_combination(combination_info)
        _check_and_init_combinations
        @combinations << ComponentSet.new(@code, combination_info) 
      end

      def add_customization(combo)
        _check_and_init_combinations
        added = false
        @customizations.each do |customization|
          if (customization.base == combo.base) &&
              (customization.component_layer_order == combo.component_layer_order)
            customization.components.each_with_index do |components, i|
              customization.components[i] = components | combo.components[i]
            end
            added = true
          end
        end

        @customizations << combo unless added
      end

      private
      def _check_and_init_combinations
        @combinations = [] if @combinations.nil?
        @customizations = [] if @customizations.nil?
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
emojidex-0.5.3 lib/emojidex/data/emoji/component_set_information.rb
emojidex-0.5.2 lib/emojidex/data/emoji/component_set_information.rb
emojidex-0.5.1 lib/emojidex/data/emoji/component_set_information.rb
emojidex-0.5.0 lib/emojidex/data/emoji/component_set_information.rb