lib/ffi-icu/time_formatting.rb in ffi-icu-0.4.0 vs lib/ffi-icu/time_formatting.rb in ffi-icu-0.4.1
- old
+ new
@@ -113,11 +113,11 @@
end
end
def parse(str)
str_u = UCharPointer.from_string(str)
- str_l = str_u.size
+ str_l = str.size
Lib.check_error do |error|
ret = Lib.udat_parse(@f, str_u, str_l, nil, error)
Time.at(ret / 1000.0)
end
end
@@ -188,12 +188,13 @@
Lib.check_error do |error|
needed_length = Lib.udat_applyPattern(@f, localized, pattern, pattern_len)
end
end
- def skeleton_format(pattern, locale)
- pattern = UCharPointer.from_string(pattern)
+ def skeleton_format(skeleton_pattern_str, locale)
+ skeleton_pattern_ptr = UCharPointer.from_string(skeleton_pattern_str)
+ skeleton_pattern_len = skeleton_pattern_str.size
needed_length = 0
pattern_ptr = UCharPointer.new(needed_length)
udatpg_ptr = Lib.check_error { |error| Lib.udatpg_open(locale, error) }
@@ -201,10 +202,10 @@
retried = false
begin
Lib.check_error do |error|
- needed_length = Lib.udatpg_getBestPattern(generator, pattern, pattern.size, pattern_ptr, needed_length, error)
+ needed_length = Lib.udatpg_getBestPattern(generator, skeleton_pattern_ptr, skeleton_pattern_len, pattern_ptr, needed_length, error)
end
return needed_length, pattern_ptr
rescue BufferOverflowError
raise BufferOverflowError, "needed: #{needed_length}" if retried