Class: ParseDose

Inherits:
Object
  • Object
show all
Defined in:
lib/oddb2xml/parslet_compositions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(qty = nil, unit = nil) ⇒ ParseDose

Returns a new instance of ParseDose.



298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
# File 'lib/oddb2xml/parslet_compositions.rb', line 298

def initialize(qty = nil, unit = nil)
  puts "ParseDose.new from #{qty.inspect} #{unit.inspect} #{unit.inspect}" if VERBOSE_MESSAGES
  if qty && (qty.is_a?(String) || qty.is_a?(Parslet::Slice))
    string = qty.to_s.delete("'")
    if string.index("-") && (string.index("-") > 0)
      @qty_range = string
    elsif string.index(/\^|\*|\//)
      @qty = string
    else
      @qty = string.index(".") ? string.to_f : string.to_i
    end
  elsif qty
    @qty = qty.eval
  else
    @qty = 1
  end
  @unit = unit ? unit.to_s : nil
end

Instance Attribute Details

#qtyObject (readonly)

Returns the value of attribute qty.



296
297
298
# File 'lib/oddb2xml/parslet_compositions.rb', line 296

def qty
  @qty
end

#qty_rangeObject (readonly)

Returns the value of attribute qty_range.



296
297
298
# File 'lib/oddb2xml/parslet_compositions.rb', line 296

def qty_range
  @qty_range
end

#unitObject

Returns the value of attribute unit.



297
298
299
# File 'lib/oddb2xml/parslet_compositions.rb', line 297

def unit
  @unit
end

Instance Method Details

#evalObject



317
318
319
# File 'lib/oddb2xml/parslet_compositions.rb', line 317

def eval
  self
end

#to_sObject



321
322
323
324
325
326
# File 'lib/oddb2xml/parslet_compositions.rb', line 321

def to_s
  return @unit unless @qty || @qty_range
  res = "#{@qty}#{@qty_range}"
  res = "#{res} #{@unit}" if @unit
  res
end