Class: Stupidedi::Versions::FunctionalGroups::FortyTen::ElementTypes::TimeVal
Overview
Defined Under Namespace
Classes: Empty, Invalid, NonEmpty
Instance Attribute Summary
#position, #usage
Instance Method Summary
collapse
#allowed?, #component?, #copy, #date?, #definition, #id?, #initialize, #leaf?, #numeric?, #simple?, #string?, #to_x12
#element?, #size
#blank?, #characters, #component?, #composite?, #definition, #element?, #empty?, #functional_group?, #interchange?, #invalid?, #loop?, #present?, #repeated?, #segment?, #separator?, #simple?, #size, #table?, #transaction_set?, #transmission?, #valid?
Methods included from Color
ansi, #ansi
Methods included from Inspect
#inspect
Class Method Details
.empty(usage, position) ⇒ TimeVal
241
242
243
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb', line 241
def empty(usage, position)
self::Empty.new(usage, position)
end
|
.parse(string, usage, position) ⇒ TimeVal
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb', line 278
def parse(string, usage, position)
if string.blank?
self::Empty.new(usage, position)
else
hour = string.slice(0, 2).to_i
minute = string.slice(2, 2).try{|mm| mm.to_i unless mm.blank? }
second = string.slice(4, 2).try{|ss| ss.to_i unless ss.blank? }
if decimal = string.slice(6..-1)
second += "0.#{decimal}".to_d
end
self::NonEmpty.new(hour, minute, second, usage, position)
end
rescue Exceptions::InvalidElementError
self::Invalid.new(string, usage, position)
end
|
.value(object, usage, position) ⇒ TimeVal
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb', line 246
def value(object, usage, position)
if object.blank?
self::Empty.new(usage, position)
elsif object.is_a?(String) or object.is_a?(StringVal)
hour = object.to_s.slice(0, 2).to_i
minute = object.to_s.slice(2, 2).try{|mm| mm.to_i unless mm.blank? }
second = object.to_s.slice(4, 2).try{|ss| ss.to_i unless ss.blank? }
if decimal = object.to_s.slice(6..-1)
second += "0.#{decimal}".to_d
end
self::NonEmpty.new(hour, minute, second, usage, position)
elsif object.is_a?(Time)
self::NonEmpty.new(object.hour, object.min,
object.sec + (object.usec / 1000000.0),
usage, position)
elsif object.is_a?(DateTime)
self::NonEmpty.new(object.hour, object.min,
object.sec + object.sec_fraction.to_f,
usage, position)
else
self::Invalid.new(object, usage, position)
end
rescue Exceptions::InvalidElementError
self::Invalid.new(object, usage, position)
end
|
Instance Method Details
#time? ⇒ Boolean
32
33
34
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb', line 32
def time?
true
end
|
#too_long? ⇒ Boolean
40
41
42
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb', line 40
def too_long?
false
end
|
#too_short? ⇒ Boolean
36
37
38
|
# File 'lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb', line 36
def too_short?
false
end
|