Module: Mitie::Utils
- Defined in:
- lib/mitie/utils.rb
Class Method Summary collapse
- .array_to_pointer(text) ⇒ Object
- .check_range(range, num_tokens) ⇒ Object
- .read_double(ptr) ⇒ Object
Class Method Details
.array_to_pointer(text) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/mitie/utils.rb', line 3 def self.array_to_pointer(text) # malloc uses memset to set all bytes to 0 tokens_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP * (text.size + 1), Fiddle::RUBY_FREE) text_ptrs = text.map { |v| Fiddle::Pointer[v] } text.size.times do |i| tokens_ptr[i * Fiddle::SIZEOF_VOIDP, Fiddle::SIZEOF_VOIDP] = text_ptrs[i].ref end tokens_ptr.instance_variable_set(:@mitie_refs, text_ptrs) tokens_ptr end |
.check_range(range, num_tokens) ⇒ Object
14 15 16 17 18 |
# File 'lib/mitie/utils.rb', line 14 def self.check_range(range, num_tokens) if range.none? || !(0..(num_tokens - 1)).cover?(range) raise ArgumentError, "Invalid range" end end |
.read_double(ptr) ⇒ Object
20 21 22 |
# File 'lib/mitie/utils.rb', line 20 def self.read_double(ptr) ptr.to_str(Fiddle::SIZEOF_DOUBLE).unpack1("d") end |