fitreader 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/Gemfile.lock +43 -0
- data/README.md +27 -38
- data/fitreader.gemspec +1 -3
- data/lib/fitreader.rb +3 -53
- data/lib/fitreader/data_field.rb +38 -0
- data/lib/fitreader/data_record.rb +14 -0
- data/lib/fitreader/definition_record.rb +28 -0
- data/lib/fitreader/field_definition.rb +8 -12
- data/lib/fitreader/file_header.rb +9 -14
- data/lib/fitreader/fit.rb +49 -0
- data/lib/fitreader/fit_object.rb +8 -0
- data/lib/fitreader/message.rb +82 -0
- data/lib/fitreader/record_header.rb +25 -26
- data/lib/fitreader/sdk/{constants.yml → enums.yml} +0 -81
- data/lib/fitreader/sdk/fields.yml +2476 -0
- data/lib/fitreader/sdk/messages.yml +82 -0
- data/lib/fitreader/sdk/sdk.rb +23 -0
- data/lib/fitreader/unpack.rb +41 -0
- data/lib/fitreader/version.rb +1 -1
- metadata +19 -24
- data/lib/fitreader/definition.rb +0 -34
- data/lib/fitreader/degraded_record.rb +0 -37
- data/lib/fitreader/errors.rb +0 -18
- data/lib/fitreader/field_data.rb +0 -58
- data/lib/fitreader/fitfile.rb +0 -63
- data/lib/fitreader/message_type.rb +0 -24
- data/lib/fitreader/record.rb +0 -170
- data/lib/fitreader/sdk/types.yml +0 -2551
- data/lib/fitreader/static.rb +0 -25
- data/schema +0 -37
- data/spec/fitreader_interfaces_spec.rb +0 -57
- data/spec/fitreader_readfile_spec.rb +0 -17
- data/spec/fitreader_static_spec.rb +0 -17
data/lib/fitreader/static.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
|
3
|
-
module Fitreader
|
4
|
-
class Static
|
5
|
-
@enums ||= YAML::load_file(File.join( File.dirname(__FILE__), 'sdk/constants.yml'))
|
6
|
-
@types ||= YAML::load_file(File.join( File.dirname(__FILE__), 'sdk/types.yml'))
|
7
|
-
@scope = [:ride, :lap, :interval]
|
8
|
-
|
9
|
-
def self.base
|
10
|
-
@types[:base_types]
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.message
|
14
|
-
@types[:message_fields]
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.enums
|
18
|
-
@enums
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.scope
|
22
|
-
@scope
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/schema
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
record
|
2
|
-
definition*
|
3
|
-
fields*
|
4
|
-
error_fields
|
5
|
-
record_type*
|
6
|
-
|
7
|
-
definition
|
8
|
-
name
|
9
|
-
global_num
|
10
|
-
local_num
|
11
|
-
fit_msg*
|
12
|
-
fields_definitions*
|
13
|
-
|
14
|
-
field
|
15
|
-
id
|
16
|
-
name
|
17
|
-
raw_val
|
18
|
-
proc_val
|
19
|
-
|
20
|
-
record_type
|
21
|
-
per_ride
|
22
|
-
per_lap
|
23
|
-
per_second
|
24
|
-
|
25
|
-
fit_msg
|
26
|
-
field_num
|
27
|
-
name
|
28
|
-
type
|
29
|
-
scale
|
30
|
-
ofset
|
31
|
-
|
32
|
-
field_definition
|
33
|
-
base_num
|
34
|
-
def_num
|
35
|
-
size
|
36
|
-
|
37
|
-
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'fitreader'
|
3
|
-
|
4
|
-
describe Fitreader do
|
5
|
-
describe 'has functioning interfaces' do
|
6
|
-
before do
|
7
|
-
# @path = File.join(File.dirname(__FILE__), '2016-04-09-13-19-18.fit')
|
8
|
-
@path = File.join(File.dirname(__FILE__), '1471568492.fit')
|
9
|
-
Fitreader.read(@path)
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'has a valid header' do
|
13
|
-
expect(Fitreader.header).not_to be_nil
|
14
|
-
expect(Fitreader.header.num_records).to be(191877)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'has valid records' do
|
18
|
-
expect(Fitreader.available_records).not_to be_nil
|
19
|
-
expect(Fitreader.available_records.length).to be(14)
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'can fetch an existing message by number' do
|
23
|
-
expect(Fitreader.get_message_type 18).to be_a(Array)
|
24
|
-
expect(Fitreader.get_message_type(18).first).to be_a(Fitreader::MessageType)
|
25
|
-
end
|
26
|
-
it 'can fetch an existing message by name' do
|
27
|
-
expect(Fitreader.get_message_type :session).to be_a(Array)
|
28
|
-
expect(Fitreader.get_message_type(:session).first).to be_a(Fitreader::MessageType)
|
29
|
-
end
|
30
|
-
it 'cannot fetch a non existing message by number' do
|
31
|
-
expect(Fitreader.get_message_type 1234).to be(nil)
|
32
|
-
end
|
33
|
-
it 'cannot fetch a non existing message by name' do
|
34
|
-
expect(Fitreader.get_message_type :non_existant).to be(nil)
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'has the right number of records' do
|
38
|
-
expect(Fitreader.record_values(:record).length).to be(4988)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'can return name-value data' do
|
42
|
-
expect(Fitreader.record_values :session).to be_a(Array)
|
43
|
-
end
|
44
|
-
it 'can return error-fields' do
|
45
|
-
expect(Fitreader.error_fields :record).to be_a(Array)
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'can return error-messages' do
|
49
|
-
expect(Fitreader.error_messages).to be_a(Hash)
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'can test something' do
|
53
|
-
# expect(Fitreader.record_values :activity).to be_a(Array)
|
54
|
-
# expect(Fitreader.record_values :session).to be_a(Array)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'fitreader'
|
2
|
-
|
3
|
-
describe Fitreader do
|
4
|
-
describe 'read fit file' do
|
5
|
-
before do
|
6
|
-
@path = File.join(File.dirname(__FILE__), '2016-04-09-13-19-18.fit')
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'test file exists' do
|
10
|
-
expect(File.exist?(@path)).to eql(true)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'parses file without exceptions' do
|
14
|
-
expect { Fitreader.read(@path) }.not_to raise_error
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'fitreader'
|
3
|
-
|
4
|
-
describe Fitreader::Static do
|
5
|
-
it 'const is loaded' do
|
6
|
-
expect(Fitreader::Static.enums.class).to eql(Hash)
|
7
|
-
end
|
8
|
-
|
9
|
-
it 'const has data' do
|
10
|
-
expect(Fitreader::Static.enums[:enum_file][1]).to eql(:device)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'scope is readable' do
|
14
|
-
expect(Fitreader::Static.scope).to include(:ride)
|
15
|
-
expect(Fitreader::Static.scope).not_to include(:bike)
|
16
|
-
end
|
17
|
-
end
|