Module: UniProp::Alias
- Included in:
- Property, PropertyValue
- Defined in:
- lib/uniprop/inspects.rb,
lib/uniprop/unicode_elements.rb
Instance Attribute Summary collapse
-
#longest_alias ⇒ Object
readonly
Returns the value of attribute longest_alias.
Class Method Summary collapse
-
.canonical(str) ⇒ String
文字列を正規化.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Self.aliasesとother.aliasesが完全に同じ場合にtrue.
-
#add_alias(new_alias) ⇒ Object
aliasを追加.
-
#aliases ⇒ Array<String>
:nocov:.
- #eql?(other) ⇒ Boolean
-
#has_alias?(alias_str) ⇒ Boolean
:nocov:.
- #hash ⇒ Object
- #initialize(*new_aliases) ⇒ Object
- #inspect ⇒ Object
-
#uncanonicaled_aliases ⇒ Array<String>
追加済みのalias.
Instance Attribute Details
#longest_alias ⇒ Object (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
文字列を正規化
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.
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を追加
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 |
#aliases ⇒ Array<String>
:nocov:
33 34 35 |
# File 'lib/uniprop/unicode_elements.rb', line 33 def aliases @aliases ||= [] end |
#eql?(other) ⇒ Boolean
53 |
# File 'lib/uniprop/unicode_elements.rb', line 53 def eql?(other); self==other end |
#has_alias?(alias_str) ⇒ Boolean
:nocov:
43 44 45 |
# File 'lib/uniprop/unicode_elements.rb', line 43 def has_alias?(alias_str) return aliases.include?(Alias.canonical(alias_str)) end |
#hash ⇒ Object
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を使用する事でも追加可能
14 15 16 |
# File 'lib/uniprop/unicode_elements.rb', line 14 def initialize(*new_aliases) new_aliases.each { add_alias _1 } end |
#inspect ⇒ Object
84 85 86 |
# File 'lib/uniprop/inspects.rb', line 84 def inspect "#<#{self.class.name} #{longest_alias}>" end |
#uncanonicaled_aliases ⇒ Array<String>
Returns 追加済みのalias.
38 39 40 |
# File 'lib/uniprop/unicode_elements.rb', line 38 def uncanonicaled_aliases @uncanonicaled_aliases ||= [] end |