module Unitwise::Standard class DerivedUnit < Base def self.remote_key "unit" end def self.local_key "derived_unit" end def property attributes["property"].to_s end def scale Scale.new(attributes["value"]) unless special? end def function Function.new(attributes["value"]) if special? end def classification attributes["@class"] end def metric? attributes["@isMetric"] == 'yes' end def special? attributes["@isSpecial"] == 'yes' end def arbitrary? attributes["@isArbitrary"] == 'yes' end def to_hash hash = super() hash[:scale] = (special? ? function.to_hash : scale.to_hash) hash.merge({classification: classification, property: property, metric: metric?, special: special?, arbitrary: arbitrary?}) end end end