class ICU::TimeFormatting::BaseFormatter
Public Instance Methods
set_attributes(options)
click to toggle source
# File lib/ffi-icu/time_formatting.rb, line 61 def set_attributes(options) options.each { |key, value| Lib.unum_set_attribute(@f, key, value) } self end
Private Instance Methods
make_formatter(time_style, date_style, locale, time_zone_str, skeleton)
click to toggle source
# File lib/ffi-icu/time_formatting.rb, line 68 def make_formatter(time_style, date_style, locale, time_zone_str, skeleton) time_zone = nil tz_len = 0 pattern_len = -1 pattern_ptr = FFI::MemoryPointer.new(4) if time_zone_str time_zone = UCharPointer.from_string(time_zone_str) tz_len = time_zone_str.size else Lib.check_error { | error| i_len = 150 time_zone = UCharPointer.new(i_len) tz_len = Lib.ucal_getDefaultTimeZone(time_zone, i_len, error) } end if skeleton date_style = :pattern time_style = :pattern pattern_len, pattern_ptr = skeleton_format(skeleton, locale) end ptr = Lib.check_error { | error| Lib.udat_open(time_style, date_style, locale, time_zone, tz_len, pattern_ptr, pattern_len, error) } FFI::AutoPointer.new(ptr, Lib.method(:udat_close)) end