Module: Fitreader

Defined in:
lib/fitreader.rb,
lib/fitreader/errors.rb,
lib/fitreader/record.rb,
lib/fitreader/static.rb,
lib/fitreader/fitfile.rb,
lib/fitreader/version.rb,
lib/fitreader/definition.rb,
lib/fitreader/field_data.rb,
lib/fitreader/message_type.rb,
lib/fitreader/record_header.rb,
lib/fitreader/degraded_record.rb,
lib/fitreader/field_definition.rb

Defined Under Namespace

Classes: Definition, DegradedRecord, FieldData, FieldDefinition, FitFile, MessageType, Record, RecordHeader, Static, UnknownFieldTypeError, UnknownMessageTypeError

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.available_recordsObject



15
16
17
18
19
20
21
# File 'lib/fitreader.rb', line 15

def self.available_records
  @f.messages
    .select { |x,y| !y.definition.name.nil? }
    .select { |x,y| !y.records.length.zero? }
    .collect { |x| [x[0], x[1].definition.name, x[1].records.length] }
    .sort
end

.error_fields(filter) ⇒ Object



44
45
46
47
# File 'lib/fitreader.rb', line 44

def self.error_fields(filter)
  message = get_message_type filter
  message.records.select{|x| !x.error_fields.empty?}.collect{|y| y.error_fields}
end

.error_messagesObject



40
41
42
# File 'lib/fitreader.rb', line 40

def self.error_messages
  @f.messages.select { |_,v| !v.undefined_records.empty? }
end

.get_message_type(filter) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/fitreader.rb', line 23

def self.get_message_type(filter)
  if filter.is_a?(Symbol)
    res = @f.messages.find { |_,y| y.definition.name == filter}
    res[1] unless res.nil?
    binding.pry
  elsif filter.is_a?(Integer)
    @f.messages[filter]
  else
    raise ArgumentError, "needs a string or a symbol"
  end
end

.headerObject



11
12
13
# File 'lib/fitreader.rb', line 11

def self.header
  @f.header
end

.read(path) ⇒ Object



7
8
9
# File 'lib/fitreader.rb', line 7

def self.read(path)
  @f = FitFile.new(path)
end

.record_values(filter) ⇒ Object



35
36
37
38
# File 'lib/fitreader.rb', line 35

def self.record_values(filter)
  message = get_message_type filter
  message.records.collect {|x| x.fields.values.collect{|z| [z.name, z.value]}}.collect{|y| y.to_h}
end