Module: FitParser::File::Types

Defined in:
lib/fit_parser/file/types.rb

Class Method Summary collapse

Class Method Details

.add_type(name, type, option = {}) ⇒ Object



12
13
14
# File 'lib/fit_parser/file/types.rb', line 12

def self.add_type(name, type, option = {})
  Types.types[name] = option.merge(basic_type: type)
end

.bitfield_value(bitfield, values, parameters = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/fit_parser/file/types.rb', line 36

def self.bitfield_value(bitfield, values, parameters = nil)
  res = ''
  values.each do |key, val|
    if key & bitfield != 0
      res << '/' unless res.empty?
      res << val
    end
  end
  res
end

.date_time_value(time, values, parameters) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/fit_parser/file/types.rb', line 21

def self.date_time_value(time, values, parameters)
  val = values.invert
  if time < val['min']
    time.to_s
  else
    res= parameters[:utc] ? Time.utc(1989, 12, 31) + time : Time.local(1989, 12, 31) + time
    res.to_s
  end
end

.get_type_definition(name) ⇒ Object



16
17
18
19
# File 'lib/fit_parser/file/types.rb', line 16

def self.get_type_definition(name)
  return Types.types[name] if Types.types.has_key?(name)
  nil
end

.message_index_value(msg_index, values, parameters = nil) ⇒ Object



31
32
33
34
# File 'lib/fit_parser/file/types.rb', line 31

def self.message_index_value(msg_index, values, parameters = nil)
  val = values.invert
  msg_index & val['mask']
end

.typesObject



8
9
10
# File 'lib/fit_parser/file/types.rb', line 8

def self.types
  @types ||= {}
end

.types=(value) ⇒ Object



4
5
6
# File 'lib/fit_parser/file/types.rb', line 4

def self.types=(value)
  @types = value
end