class Fit::File::Type

Public Class Methods

get_type(name) click to toggle source
# File lib/fit/file/type.rb, line 7
def self.get_type(name)
  return @@types[name] if @@types.has_key? name
  type = Types.get_type_definition name
  @@types[name] = type ? new(type) : nil
end
new(type) click to toggle source
# File lib/fit/file/type.rb, line 13
def initialize(type)
  @type = type
end

Public Instance Methods

value(val) click to toggle source
# File lib/fit/file/type.rb, line 17
def value(val)
  return nil unless is_valid(val)
  if @type.has_key? :method
    Types.send(@type[:method], val, @type[:values], @type[:parameters])
  else
    values = @type[:values]
    value = values[val] if values
    return value unless value.nil?
    val
  end
end

Private Instance Methods

is_valid(val) click to toggle source
# File lib/fit/file/type.rb, line 30
def is_valid(val)
  if @type.has_key? :invalid
    invalid_value = @type[:invalid]
  else
    invalid_value = Types.get_type_definition(@type[:basic_type])[:invalid]
  end
  return false if val == invalid_value
  true
end