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.4'

Class Method Summary collapse

Class Method Details

.available_recordsObject



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

def self.available_records
  @f.messages
    .select { |_,v| !v.any? { |z| z.definition.name.nil? } }
    .select { |_,v| !v.any? { |z| z.records.length.zero? } }
    .collect { |x| [x[0], x[1].first.definition.name, x[1].collect(&:records).flatten.length] }
    .sort
end

.error_fields(filter) ⇒ Object



42
43
44
45
# File 'lib/fitreader.rb', line 42

def self.error_fields(filter)
  message = get_message_type filter
  message.collect(&:error_fields).flatten
end

.error_messagesObject



38
39
40
# File 'lib/fitreader.rb', line 38

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

.get_message_type(filter) ⇒ Object



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

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

.headerObject



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

def self.header
  @f.header
end

.read(path) ⇒ Object



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

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

.record_values(filter) ⇒ Object



33
34
35
36
# File 'lib/fitreader.rb', line 33

def self.record_values(filter)
  message = get_message_type filter
  message.collect(&:record_values).flatten
end