Sha256: d2edcbaba67f0a3f4e493cd39bbedc528bc18bcda6bd14f41027065aab819fb7

Contents?: true

Size: 801 Bytes

Versions: 1

Compression:

Stored size: 801 Bytes

Contents

require 'systeme/international'
require 'systeme/localize'
require 'systeme/metric'
require 'systeme/imperial'
require 'systeme/length'
require 'systeme/conversions'
require 'systeme/registration'

module Systeme
  include Systeme::International
  include Systeme::Localize
  include Systeme::Metric
  include Systeme::Imperial
  include Systeme::Length
  include Systeme::Conversions

	def self.parse(string)
		return nil if (!string || !string.match(/\d/))
		
		string.gsub!(/ */,  '').gsub!(/([a-zA-Z])(\d)/, '\1 \2')
		parts = string.split(' ')
		total = parts.inject(0) do |total, part|
			value = part.to_f
			label = ((l = part.match(/([a-zA-Z]+)/)) ? l[1] : "m")			
			total += (value.respond_to?(label) ? value.send(label) : 0)
		end
		
		return total
	end
end

Numeric.send :include, Systeme

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
farski-systeme-0.4.1 lib/systeme.rb