Module: ICU::Collation
- Defined in:
- lib/ffi-icu/collation.rb
Defined Under Namespace
Classes: Collator
Constant Summary collapse
- ATTRIBUTES =
{ :french_collation => 0, :alternate_handling => 1, :case_first => 2, :case_level => 3, :normalization_mode => 4, :strength => 5, :hiragana_quaternary_mode => 6, :numeric_collation => 7 }.freeze
- ATTRIBUTE_VALUES =
{ nil => -1, :primary => 0, :secondary => 1, :default_strength => 2, :tertiary => 2, :quaternary => 3, :identical => 15, false => 16, true => 17, :shifted => 20, :non_ignorable => 21, :lower_first => 24, :upper_first => 25 }.freeze
- ATTRIBUTE_VALUES_INVERSE =
ATTRIBUTE_VALUES.to_h { |k, v| [v, k] }.freeze
Class Method Summary collapse
Class Method Details
.available_locales ⇒ Object
56 57 58 59 60 |
# File 'lib/ffi-icu/collation.rb', line 56 def self.available_locales (0...Lib.ucol_countAvailable).map do |idx| Lib.ucol_getAvailable(idx) end end |
.collate(locale, arr) ⇒ Object
37 38 39 |
# File 'lib/ffi-icu/collation.rb', line 37 def self.collate(locale, arr) Collator.new(locale).collate(arr) end |
.keywords ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/ffi-icu/collation.rb', line 41 def self.keywords enum_ptr = Lib.check_error { |error| Lib.ucol_getKeywords(error) } keywords = Lib.enum_ptr_to_array(enum_ptr) Lib.uenum_close(enum_ptr) hash = {} keywords.each do |keyword| enum_ptr = Lib.check_error { |error| Lib.ucol_getKeywordValues(keyword, error) } hash[keyword] = Lib.enum_ptr_to_array(enum_ptr) Lib.uenum_close(enum_ptr) end hash end |