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.



305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
# File 'lib/oddb2xml/parslet_compositions.rb', line 305

def initialize(qty=nil, unit=nil)
  puts "ParseDose.new from #{qty.inspect} #{unit.inspect} #{unit.inspect}" if VERBOSE_MESSAGES
  if qty and (qty.is_a?(String) || qty.is_a?(Parslet::Slice))
    string = qty.to_s.gsub("'", '')
    if string.index('-') and (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.



303
304
305
# File 'lib/oddb2xml/parslet_compositions.rb', line 303

def qty
  @qty
end

#qty_rangeObject (readonly)

Returns the value of attribute qty_range.



303
304
305
# File 'lib/oddb2xml/parslet_compositions.rb', line 303

def qty_range
  @qty_range
end

#unitObject

Returns the value of attribute unit.



304
305
306
# File 'lib/oddb2xml/parslet_compositions.rb', line 304

def unit
  @unit
end

Instance Method Details

#evalObject



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

def eval
  self
end

#to_sObject



326
327
328
329
330
331
# File 'lib/oddb2xml/parslet_compositions.rb', line 326

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