Module: UniProp::Alias

Included in:
Property, PropertyValue
Defined in:
lib/uniprop/inspects.rb,
lib/uniprop/unicode_elements.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#longest_aliasObject (readonly)

Returns the value of attribute longest_alias.



3
4
5
# File 'lib/uniprop/unicode_elements.rb', line 3

def longest_alias
  @longest_alias
end

Class Method Details

.canonical(str) ⇒ String

文字列を正規化

Parameters:

  • str (String)

    正規化前の文字列

Returns:

  • (String)

    strを正規化したもの



8
9
10
# File 'lib/uniprop/unicode_elements.rb', line 8

def self.canonical(str)
  str.gsub(/[-_ ]/, '').downcase
end

Instance Method Details

#==(other) ⇒ Boolean

Returns self.aliasesとother.aliasesが完全に同じ場合にtrue.

Returns:

  • (Boolean)

    self.aliasesとother.aliasesが完全に同じ場合にtrue



48
49
50
# File 'lib/uniprop/unicode_elements.rb', line 48

def ==(other)
  aliases==other.aliases
end

#add_alias(new_alias) ⇒ Object

Note:

aliasはcanonicalを使用して正規化されて追加される

aliasを追加

Parameters:

  • new_alias (String)

    追加するalias



21
22
23
24
25
26
27
28
29
# File 'lib/uniprop/unicode_elements.rb', line 21

def add_alias(new_alias)
  if new_alias.class == String
    if new_alias.size > @longest_alias.to_s.size
      @longest_alias = new_alias
    end
    aliases << Alias.canonical(new_alias)
    uncanonicaled_aliases << new_alias
  end
end

#aliasesArray<String>

:nocov:

Returns:

  • (Array<String>)

    追加済みの正規化済みのalias



33
34
35
# File 'lib/uniprop/unicode_elements.rb', line 33

def aliases
  @aliases ||= []
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


53
# File 'lib/uniprop/unicode_elements.rb', line 53

def eql?(other); self==other end

#has_alias?(alias_str) ⇒ Boolean

:nocov:

Returns:

  • (Boolean)


43
44
45
# File 'lib/uniprop/unicode_elements.rb', line 43

def has_alias?(alias_str)
  return aliases.include?(Alias.canonical(alias_str))
end

#hashObject



56
57
58
# File 'lib/uniprop/unicode_elements.rb', line 56

def hash
  aliases.sort.join.hash
end

#initialize(*new_aliases) ⇒ Object

Note:

aliasはインスタンス化時にも追加可能だが、add_aliasを使用する事でも追加可能

Parameters:

  • new_aliases (*String)

    追加するalias(個数任意)



14
15
16
# File 'lib/uniprop/unicode_elements.rb', line 14

def initialize(*new_aliases)
  new_aliases.each { add_alias _1 }
end

#inspectObject



84
85
86
# File 'lib/uniprop/inspects.rb', line 84

def inspect
  "#<#{self.class.name} #{longest_alias}>"
end

#uncanonicaled_aliasesArray<String>

Returns 追加済みのalias.

Returns:

  • (Array<String>)

    追加済みのalias



38
39
40
# File 'lib/uniprop/unicode_elements.rb', line 38

def uncanonicaled_aliases
  @uncanonicaled_aliases ||= []
end