Class: ICU::BreakIterator
- Inherits:
-
Object
- Object
- ICU::BreakIterator
- Includes:
- Enumerable
- Defined in:
- lib/ffi-icu/break_iterator.rb
Constant Summary collapse
- DONE =
-1
Instance Attribute Summary collapse
-
#text ⇒ Object
Returns the value of attribute text.
Class Method Summary collapse
Instance Method Summary collapse
- #boundary?(offset) ⇒ Boolean
- #current ⇒ Object
- #each(&blk) ⇒ Object
- #each_substring(&blk) ⇒ Object
- #first ⇒ Object
- #following(offset) ⇒ Object
-
#initialize(type, locale) ⇒ BreakIterator
constructor
A new instance of BreakIterator.
- #last ⇒ Object
- #next ⇒ Object
- #preceding(offset) ⇒ Object
- #previous ⇒ Object
- #substrings ⇒ Object
Constructor Details
#initialize(type, locale) ⇒ BreakIterator
Returns a new instance of BreakIterator.
15 16 17 18 |
# File 'lib/ffi-icu/break_iterator.rb', line 15 def initialize(type, locale) ptr = Lib.check_error { |err| Lib.ubrk_open(type, locale, nil, 0, err) } @iterator = FFI::AutoPointer.new(ptr, Lib.method(:ubrk_close)) end |
Instance Attribute Details
#text ⇒ Object
Returns the value of attribute text.
5 6 7 |
# File 'lib/ffi-icu/break_iterator.rb', line 5 def text @text end |
Class Method Details
Instance Method Details
#boundary?(offset) ⇒ Boolean
88 89 90 |
# File 'lib/ffi-icu/break_iterator.rb', line 88 def boundary?(offset) Lib.ubrk_isBoundary(@iterator, Integer(offset)) != 0 end |
#current ⇒ Object
84 85 86 |
# File 'lib/ffi-icu/break_iterator.rb', line 84 def current Lib.ubrk_current @iterator end |
#each(&blk) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/ffi-icu/break_iterator.rb', line 28 def each(&blk) return to_enum(:each) unless block_given? int = first while int != DONE yield int int = self.next end self end |
#each_substring(&blk) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/ffi-icu/break_iterator.rb', line 41 def each_substring(&blk) return to_enum(:each_substring) unless block_given? # each_char needed for 1.8, where String#[] works on bytes, not characters chars = text.each_char.to_a low = first while (high = self.next) != DONE yield chars[low...high].join low = high end self end |
#first ⇒ Object
68 69 70 |
# File 'lib/ffi-icu/break_iterator.rb', line 68 def first Lib.ubrk_first @iterator end |
#following(offset) ⇒ Object
80 81 82 |
# File 'lib/ffi-icu/break_iterator.rb', line 80 def following(offset) Lib.ubrk_following @iterator, Integer(offset) end |
#last ⇒ Object
72 73 74 |
# File 'lib/ffi-icu/break_iterator.rb', line 72 def last Lib.ubrk_last @iterator end |
#next ⇒ Object
60 61 62 |
# File 'lib/ffi-icu/break_iterator.rb', line 60 def next Lib.ubrk_next @iterator end |
#preceding(offset) ⇒ Object
76 77 78 |
# File 'lib/ffi-icu/break_iterator.rb', line 76 def preceding(offset) Lib.ubrk_preceding @iterator, Integer(offset) end |
#previous ⇒ Object
64 65 66 |
# File 'lib/ffi-icu/break_iterator.rb', line 64 def previous Lib.ubrk_next @iterator end |
#substrings ⇒ Object
56 57 58 |
# File 'lib/ffi-icu/break_iterator.rb', line 56 def substrings each_substring.to_a end |