class AwesomeXML::Duration::ChunkParser
Attributes
duration[R]
duration_string_chunk[R]
format_chunk[R]
Public Class Methods
new(duration_string_chunk, format_chunk)
click to toggle source
Parses a string given as ‘duration_string_chunk` according to the rules of the passed in `format_chunk`. The latter being either a `AwesomeXML::Duration::Format::StaticChunk` or a `AwesomeXML::Duration::Format::DynamicChunk`. Saves the resulting duration in the attribute `duration`.
# File lib/awesome_xml/duration/chunk_parser.rb, line 15 def initialize(duration_string_chunk, format_chunk) @duration_string_chunk = duration_string_chunk @format_chunk = format_chunk parse end
Private Instance Methods
format_mismatch()
click to toggle source
# File lib/awesome_xml/duration/chunk_parser.rb, line 41 def format_mismatch FormatMismatch.new(duration_string_chunk, format_chunk.to_s) end
number()
click to toggle source
# File lib/awesome_xml/duration/chunk_parser.rb, line 32 def number fail format_mismatch unless valid_number? duration_string_chunk.to_i end
parse()
click to toggle source
# File lib/awesome_xml/duration/chunk_parser.rb, line 23 def parse if format_chunk.dynamic? @duration = number.public_send(format_chunk.unit) else fail format_mismatch unless duration_string_chunk == format_chunk.to_s @duration = 0.seconds end end
valid_number?()
click to toggle source
# File lib/awesome_xml/duration/chunk_parser.rb, line 37 def valid_number? duration_string_chunk =~ /^[0-9]*$/ end