rubyfit 0.0.2 → 0.0.3

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.
@@ -0,0 +1,203 @@
1
+ ////////////////////////////////////////////////////////////////////////////////
2
+ // The following FIT Protocol software provided may be used with FIT protocol
3
+ // devices only and remains the copyrighted property of Dynastream Innovations Inc.
4
+ // The software is being provided on an "as-is" basis and as an accommodation,
5
+ // and therefore all warranties, representations, or guarantees of any kind
6
+ // (whether express, implied or statutory) including, without limitation,
7
+ // warranties of merchantability, non-infringement, or fitness for a particular
8
+ // purpose, are specifically disclaimed.
9
+ //
10
+ // Copyright 2013 Dynastream Innovations Inc.
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+ // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13
+ // Profile Version = 8.10Release
14
+ // Tag = $Name: AKW8_100 $
15
+ // Product = EXAMPLE
16
+ // Alignment = 4 bytes, padding disabled.
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+
19
+
20
+ #include <string.h>
21
+
22
+ #include "fit_ram.h"
23
+ #include "fit_crc.h"
24
+ #include "fit_convert.h"
25
+
26
+ #if defined(FIT_RAM_INCLUDE)
27
+
28
+ ///////////////////////////////////////////////////////////////////////////////
29
+ // Private Variables
30
+ ///////////////////////////////////////////////////////////////////////////////
31
+
32
+ static FIT_UINT32 read_crc_offset;
33
+ static FIT_UINT16 read_crc;
34
+
35
+
36
+ ///////////////////////////////////////////////////////////////////////////////
37
+ // Public Functions
38
+ ///////////////////////////////////////////////////////////////////////////////
39
+
40
+ FIT_RAM_FILE FitRAM_LookupFile(FIT_FILE file)
41
+ {
42
+ FIT_RAM_FILE ram_file;
43
+
44
+ for (ram_file = (FIT_RAM_FILE)0; ram_file < FIT_RAM_FILES; ram_file++)
45
+ {
46
+ if (file == fit_ram_files[ram_file]->file_def->type)
47
+ return ram_file;
48
+ }
49
+
50
+ return FIT_RAM_FILES;
51
+ }
52
+
53
+ FIT_UINT32 FitRAM_GetFileSize(FIT_RAM_FILE file)
54
+ {
55
+ if (file >= FIT_RAM_FILES)
56
+ return 0;
57
+
58
+ return FIT_FILE_HDR_SIZE + fit_ram_files[file]->file_def->data_size + sizeof(FIT_UINT16);
59
+ }
60
+
61
+ void FitRAM_FileReadBytes(FIT_RAM_FILE file, FIT_UINT16 file_index, FIT_UINT32 file_offset, void *data, FIT_UINT32 data_size)
62
+ {
63
+ FIT_BYTE *data_ptr = (FIT_BYTE *) data;
64
+ const FIT_RAM_FILE_DATA *file_data = fit_ram_files[file]->data;
65
+ FIT_UINT16 data_index = 0;
66
+ FIT_UINT32 offset = file_offset;
67
+ FIT_UINT32 size;
68
+ FIT_UINT8 read_crc_size = 0;
69
+
70
+ if ((file_offset + data_size) > (FIT_FILE_HDR_SIZE + fit_ram_files[file]->file_def->data_size))
71
+ {
72
+ read_crc_size = (FIT_UINT8)((file_offset + data_size) - (FIT_FILE_HDR_SIZE + fit_ram_files[file]->file_def->data_size)); // Don't include file crc in copy.
73
+ data_size -= read_crc_size;
74
+
75
+ if (read_crc_size > 2)
76
+ read_crc_size = 2;
77
+ }
78
+
79
+ if (data_size > 0)
80
+ {
81
+ do
82
+ {
83
+ while ((data_index < fit_ram_files[file]->data_count) && ((file_data->file_offset + file_data->size) <= offset))
84
+ {
85
+ file_data++;
86
+ data_index++;
87
+ }
88
+
89
+ if ((data_index >= fit_ram_files[file]->data_count) || (file_data->file_offset >= (file_offset + data_size)))
90
+ {
91
+ size = file_offset + data_size - offset;
92
+ memcpy(&data_ptr[offset - file_offset], &fit_ram_files[file]->file[offset], size);
93
+ offset += size;
94
+ break; // Done.
95
+ }
96
+
97
+ if (offset < file_data->file_offset)
98
+ {
99
+ size = file_data->file_offset - offset;
100
+
101
+ if ((offset + size) > (file_offset + data_size))
102
+ size = file_offset + data_size - offset;
103
+
104
+ memcpy(&data_ptr[offset - file_offset], &fit_ram_files[file]->file[offset], size);
105
+ offset += size;
106
+ }
107
+
108
+ size = offset + file_data->size;
109
+
110
+ if (size > (file_offset + data_size))
111
+ size = file_offset + data_size;
112
+
113
+ size -= offset;
114
+ memcpy(&data_ptr[offset - file_offset], &((FIT_BYTE *)file_data->data)[offset - file_data->file_offset], size);
115
+ offset += size;
116
+ } while (offset < (file_offset + data_size));
117
+
118
+ if (file_offset == 0)
119
+ {
120
+ read_crc = 0;
121
+ read_crc_offset = 0;
122
+ }
123
+
124
+ if (file_offset > read_crc_offset)
125
+ read_crc_offset = file_offset; // Non-contiguous read. CRC will be invalid.
126
+
127
+ if ((file_offset + data_size) > read_crc_offset)
128
+ read_crc = FitCRC_Update16(read_crc, &data_ptr[read_crc_offset - file_offset], (FIT_UINT8)(file_offset + data_size - read_crc_offset));
129
+
130
+ read_crc_offset = file_offset + data_size;
131
+ }
132
+
133
+ if (read_crc_size > 0)
134
+ {
135
+ data_ptr[offset - file_offset] = (FIT_BYTE)read_crc;
136
+ offset++;
137
+
138
+ if (read_crc_size == 1)
139
+ return;
140
+
141
+ data_ptr[offset - file_offset] = (FIT_BYTE)(read_crc >> 8);
142
+ }
143
+ }
144
+
145
+ void FitRAM_FileWriteBytes(FIT_RAM_FILE file, FIT_UINT16 file_index, FIT_UINT32 file_offset, const void *data, FIT_UINT32 data_size)
146
+ {
147
+ const FIT_RAM_FILE_DATA *file_data;
148
+ FIT_UINT16 data_index;
149
+ FIT_BYTE *src;
150
+ FIT_BYTE *dest;
151
+ FIT_UINT32 size;
152
+
153
+ for (data_index = 0; data_index < fit_ram_files[file]->data_count; data_index++)
154
+ {
155
+ file_data = &fit_ram_files[file]->data[data_index];
156
+
157
+ if (file_data->file_offset >= (file_offset + data_size))
158
+ return; // Data start is after end of write so we are done.
159
+
160
+ if (file_offset >= (file_data->file_offset + file_data->size))
161
+ continue; // Data end is after write so continue to next data element.
162
+
163
+ src = (FIT_BYTE *) data;
164
+ dest = (FIT_BYTE *) file_data->data;
165
+ size = data_size;
166
+
167
+ if (file_offset < file_data->file_offset)
168
+ {
169
+ size -= file_data->file_offset - file_offset;
170
+ src += file_data->file_offset - file_offset;
171
+ }
172
+ else
173
+ {
174
+ dest += file_offset - file_data->file_offset;
175
+ }
176
+
177
+ if (size > file_data->size)
178
+ size = file_data->size;
179
+
180
+ memcpy(dest, src, size);
181
+ }
182
+ }
183
+
184
+ void FitRAM_FileWriteMesg(FIT_RAM_FILE file, FIT_UINT16 file_index, FIT_UINT16 mesg_num, const void *mesg_data, FIT_BOOL restore_fields)
185
+ {
186
+ FIT_UINT32 offset;
187
+ FIT_UINT8 size;
188
+ FIT_BYTE old_mesg[FIT_MESG_SIZE];
189
+
190
+ offset = Fit_GetFileMesgOffset(fit_ram_files[file]->file_def, mesg_num, 0);
191
+ size = Fit_GetMesgSize(mesg_num);
192
+
193
+ if (restore_fields)
194
+ {
195
+ FitRAM_FileReadBytes(file, file_index, offset, old_mesg, size);
196
+ FitConvert_RestoreFields(old_mesg);
197
+ }
198
+
199
+ FitRAM_FileWriteBytes(file, file_index, offset, mesg_data, size);
200
+ }
201
+
202
+ #endif // defined(FIT_RAM_INCLUDE)
203
+
@@ -0,0 +1,39 @@
1
+ ////////////////////////////////////////////////////////////////////////////////
2
+ // The following FIT Protocol software provided may be used with FIT protocol
3
+ // devices only and remains the copyrighted property of Dynastream Innovations Inc.
4
+ // The software is being provided on an "as-is" basis and as an accommodation,
5
+ // and therefore all warranties, representations, or guarantees of any kind
6
+ // (whether express, implied or statutory) including, without limitation,
7
+ // warranties of merchantability, non-infringement, or fitness for a particular
8
+ // purpose, are specifically disclaimed.
9
+ //
10
+ // Copyright 2013 Dynastream Innovations Inc.
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+ // ****WARNING**** This file is auto-generated! Do NOT edit this file.
13
+ // Profile Version = 8.10Release
14
+ // Tag = $Name: AKW8_100 $
15
+ // Product = EXAMPLE
16
+ // Alignment = 4 bytes, padding disabled.
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+
19
+
20
+ #if !defined(FIT_RAM_H)
21
+ #define FIT_RAM_H
22
+
23
+ #include "fit_example.h"
24
+
25
+ #if defined(FIT_RAM_INCLUDE)
26
+
27
+ ///////////////////////////////////////////////////////////////////////////////
28
+ // Public Function Prototypes
29
+ ///////////////////////////////////////////////////////////////////////////////
30
+
31
+ FIT_RAM_FILE FitRAM_LookupFile(FIT_FILE file);
32
+ FIT_UINT32 FitRAM_GetFileSize(FIT_RAM_FILE file);
33
+ void FitRAM_FileReadBytes(FIT_RAM_FILE file, FIT_UINT16 file_index, FIT_UINT32 file_offset, void *data, FIT_UINT32 data_size);
34
+ void FitRAM_FileWriteBytes(FIT_RAM_FILE file, FIT_UINT16 file_index, FIT_UINT32 file_offset, const void *data, FIT_UINT32 data_size);
35
+ void FitRAM_FileWriteMesg(FIT_RAM_FILE file, FIT_UINT16 file_index, FIT_UINT16 mesg_num, const void *mesg_data, FIT_BOOL restore_fields);
36
+
37
+ #endif // defined(FIT_RAM_INCLUDE)
38
+
39
+ #endif // !defined(FIT_RAM_H)
@@ -32,11 +32,13 @@ VALUE cFitHandlerUserProfileFun;
32
32
  VALUE cFitHandlerEventFun;
33
33
  VALUE cFitHandlerWeightScaleInfoFun;
34
34
  static ID HANDLER_ATTR;
35
- //garmin/dynastream, in their infinite wisdom, decided to pinch pennies on bits
36
- //by tinkering with well established time offsets. This is the magic number of
37
- //seconds needed to add to their number to get the true number of seconds since
38
- //the epoch. For those math challenged, this is 20 years of seconds.
39
- const GARMIN_SUCKS_OFFSET = 631065600;
35
+ /*
36
+ * garmin/dynastream, decided to pinch pennies on bits by tinkering with well
37
+ * established time offsets. This is the magic number of seconds needed to add
38
+ * to their number to get the true number of seconds since the epoch.
39
+ * This is 20 years of seconds.
40
+ */
41
+ const long GARMIN_TIME_OFFSET = 631065600;
40
42
 
41
43
 
42
44
  void pass_message(char *msg) {
@@ -68,15 +70,15 @@ static VALUE init(VALUE self, VALUE handler) {
68
70
  return Qnil;
69
71
  }
70
72
 
71
- static pass_activity(const FIT_ACTIVITY_MESG *mesg) {
73
+ static void pass_activity(const FIT_ACTIVITY_MESG *mesg) {
72
74
  VALUE rh = rb_hash_new();
73
75
 
74
76
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
75
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
77
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
76
78
  if(mesg->total_timer_time != FIT_UINT32_INVALID)
77
79
  rb_hash_aset(rh, rb_str_new2("total_timer_time"), rb_float_new(mesg->total_timer_time / 1000.0));
78
80
  if(mesg->local_timestamp != FIT_DATE_TIME_INVALID)
79
- rb_hash_aset(rh, rb_str_new2("local_timestamp"), rb_float_new(mesg->local_timestamp + GARMIN_SUCKS_OFFSET));
81
+ rb_hash_aset(rh, rb_str_new2("local_timestamp"), rb_float_new(mesg->local_timestamp + GARMIN_TIME_OFFSET));
80
82
  if(mesg->num_sessions != FIT_UINT16_INVALID)
81
83
  rb_hash_aset(rh, rb_str_new2("num_sessions"), UINT2NUM(mesg->num_sessions));
82
84
  if(mesg->type != FIT_ENUM_INVALID)
@@ -91,11 +93,11 @@ static pass_activity(const FIT_ACTIVITY_MESG *mesg) {
91
93
  rb_funcall(cFitHandler, cFitHandlerActivityFun, 1, rh);
92
94
  }
93
95
 
94
- static pass_record(const FIT_RECORD_MESG *mesg) {
96
+ static void pass_record(const FIT_RECORD_MESG *mesg) {
95
97
  VALUE rh = rb_hash_new();
96
98
 
97
99
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
98
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
100
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
99
101
  if(mesg->position_lat != FIT_SINT32_INVALID)
100
102
  rb_hash_aset(rh, rb_str_new2("position_lat"), fit_pos_to_rb(mesg->position_lat));
101
103
  if(mesg->position_long != FIT_SINT32_INVALID)
@@ -126,13 +128,13 @@ static pass_record(const FIT_RECORD_MESG *mesg) {
126
128
  rb_funcall(cFitHandler, cFitHandlerRecordFun, 1, rh);
127
129
  }
128
130
 
129
- static pass_lap(const FIT_LAP_MESG *mesg) {
131
+ static void pass_lap(const FIT_LAP_MESG *mesg) {
130
132
  VALUE rh = rb_hash_new();
131
133
 
132
134
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
133
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
135
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
134
136
  if(mesg->start_time != FIT_DATE_TIME_INVALID)
135
- rb_hash_aset(rh, rb_str_new2("start_time"), UINT2NUM(mesg->start_time + GARMIN_SUCKS_OFFSET));
137
+ rb_hash_aset(rh, rb_str_new2("start_time"), UINT2NUM(mesg->start_time + GARMIN_TIME_OFFSET));
136
138
  if(mesg->start_position_lat != FIT_SINT32_INVALID)
137
139
  rb_hash_aset(rh, rb_str_new2("start_position_lat"), fit_pos_to_rb(mesg->start_position_lat));
138
140
  if(mesg->start_position_long != FIT_SINT32_INVALID)
@@ -149,14 +151,6 @@ static pass_lap(const FIT_LAP_MESG *mesg) {
149
151
  rb_hash_aset(rh, rb_str_new2("total_distance"), rb_float_new(mesg->total_distance / 100.0));
150
152
  if(mesg->total_cycles != FIT_UINT32_INVALID)
151
153
  rb_hash_aset(rh, rb_str_new2("total_cycles"), UINT2NUM(mesg->total_cycles));
152
- if(mesg->nec_lat != FIT_SINT32_INVALID)
153
- rb_hash_aset(rh, rb_str_new2("nec_lat"), fit_pos_to_rb(mesg->nec_lat));
154
- if(mesg->nec_long != FIT_SINT32_INVALID)
155
- rb_hash_aset(rh, rb_str_new2("nec_long"), fit_pos_to_rb(mesg->nec_long));
156
- if(mesg->swc_lat != FIT_SINT32_INVALID)
157
- rb_hash_aset(rh, rb_str_new2("swc_lat"), fit_pos_to_rb(mesg->swc_lat));
158
- if(mesg->swc_long != FIT_SINT32_INVALID)
159
- rb_hash_aset(rh, rb_str_new2("swc_long"), fit_pos_to_rb(mesg->swc_long));
160
154
  if(mesg->message_index != FIT_UINT16_INVALID)
161
155
  rb_hash_aset(rh, rb_str_new2("message_index"), UINT2NUM(mesg->message_index));
162
156
  if(mesg->total_calories != FIT_UINT16_INVALID)
@@ -199,13 +193,13 @@ static pass_lap(const FIT_LAP_MESG *mesg) {
199
193
  rb_funcall(cFitHandler, cFitHandlerLapFun, 1, rh);
200
194
  }
201
195
 
202
- static pass_session(const FIT_SESSION_MESG *mesg) {
196
+ static void pass_session(const FIT_SESSION_MESG *mesg) {
203
197
  VALUE rh = rb_hash_new();
204
198
 
205
199
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
206
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
200
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
207
201
  if(mesg->start_time != FIT_DATE_TIME_INVALID)
208
- rb_hash_aset(rh, rb_str_new2("start_time"), UINT2NUM(mesg->start_time + GARMIN_SUCKS_OFFSET));
202
+ rb_hash_aset(rh, rb_str_new2("start_time"), UINT2NUM(mesg->start_time + GARMIN_TIME_OFFSET));
209
203
  if(mesg->start_position_lat != FIT_SINT32_INVALID)
210
204
  rb_hash_aset(rh, rb_str_new2("start_position_lat"), fit_pos_to_rb(mesg->start_position_lat));
211
205
  if(mesg->start_position_long != FIT_SINT32_INVALID)
@@ -272,7 +266,7 @@ static pass_session(const FIT_SESSION_MESG *mesg) {
272
266
  rb_funcall(cFitHandler, cFitHandlerSessionFun, 1, rh);
273
267
  }
274
268
 
275
- static pass_user_profile(const FIT_USER_PROFILE_MESG *mesg) {
269
+ static void pass_user_profile(const FIT_USER_PROFILE_MESG *mesg) {
276
270
  VALUE rh = rb_hash_new();
277
271
 
278
272
  if(mesg->friendly_name != FIT_STRING_INVALID)
@@ -317,11 +311,11 @@ static pass_user_profile(const FIT_USER_PROFILE_MESG *mesg) {
317
311
  rb_funcall(cFitHandler, cFitHandlerUserProfileFun, 1, rh);
318
312
  }
319
313
 
320
- static pass_event(const FIT_EVENT_MESG *mesg) {
314
+ static void pass_event(const FIT_EVENT_MESG *mesg) {
321
315
  VALUE rh = rb_hash_new();
322
316
 
323
317
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
324
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
318
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
325
319
  if(mesg->data != FIT_UINT32_INVALID)
326
320
  rb_hash_aset(rh, rb_str_new2("data"), UINT2NUM(mesg->data));
327
321
  if(mesg->data16 != FIT_UINT16_INVALID)
@@ -336,11 +330,11 @@ static pass_event(const FIT_EVENT_MESG *mesg) {
336
330
  rb_funcall(cFitHandler, cFitHandlerEventFun, 1, rh);
337
331
  }
338
332
 
339
- static pass_device_info(const FIT_DEVICE_INFO_MESG *mesg) {
333
+ static void pass_device_info(const FIT_DEVICE_INFO_MESG *mesg) {
340
334
  VALUE rh = rb_hash_new();
341
335
 
342
336
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
343
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
337
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
344
338
  if(mesg->serial_number != FIT_UINT32Z_INVALID)
345
339
  rb_hash_aset(rh, rb_str_new2("serial_number"), UINT2NUM(mesg->serial_number));
346
340
  if(mesg->manufacturer != FIT_MANUFACTURER_INVALID)
@@ -363,11 +357,11 @@ static pass_device_info(const FIT_DEVICE_INFO_MESG *mesg) {
363
357
  rb_funcall(cFitHandler, cFitHandlerDeviceInfoFun, 1, rh);
364
358
  }
365
359
 
366
- static pass_weight_scale_info(const FIT_WEIGHT_SCALE_MESG *mesg) {
360
+ static void pass_weight_scale_info(const FIT_WEIGHT_SCALE_MESG *mesg) {
367
361
  VALUE rh = rb_hash_new();
368
362
 
369
363
  if(mesg->timestamp != FIT_DATE_TIME_INVALID)
370
- rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_SUCKS_OFFSET));
364
+ rb_hash_aset(rh, rb_str_new2("timestamp"), UINT2NUM(mesg->timestamp + GARMIN_TIME_OFFSET));
371
365
  if(mesg->weight != FIT_WEIGHT_INVALID)
372
366
  rb_hash_aset(rh, rb_str_new2("weight"), rb_float_new(mesg->weight / 100.0));
373
367
  if(mesg->percent_fat != FIT_UINT16_INVALID)
@@ -403,7 +397,6 @@ static VALUE parse(VALUE self, VALUE original_str) {
403
397
  FIT_UINT8 buf[8];
404
398
  FIT_CONVERT_RETURN convert_return = FIT_CONVERT_CONTINUE;
405
399
  FIT_UINT32 buf_size;
406
- FIT_UINT32 mesg_index = 0;
407
400
  #if defined(FIT_CONVERT_MULTI_THREAD)
408
401
  FIT_CONVERT_STATE state;
409
402
  #endif
@@ -444,13 +437,10 @@ static VALUE parse(VALUE self, VALUE original_str) {
444
437
  FIT_UINT16 mesg_num = FitConvert_GetMessageNumber();
445
438
  #endif
446
439
 
447
- //sprintf(err_msg, "Mesg %d (%d) - ", mesg_index++, mesg_num);
448
440
  //pass_message(err_msg);
449
441
 
450
442
  switch(mesg_num) {
451
443
  case FIT_MESG_NUM_FILE_ID: {
452
- const FIT_FILE_ID_MESG *id = (FIT_FILE_ID_MESG *) mesg;
453
- //sprintf(err_msg, "File ID: type=%u, number=%u\n", id->type, id->number);
454
444
  //pass_message(err_msg);
455
445
  break;
456
446
  }
@@ -578,7 +568,6 @@ static VALUE parse(VALUE self, VALUE original_str) {
578
568
  void Init_rubyfit() {
579
569
  mRubyFit = rb_define_module("RubyFit");
580
570
  cFitParser = rb_define_class_under(mRubyFit, "FitParser", rb_cObject);
581
- //cFitParser = rb_define_class("FitParser", rb_cObject);
582
571
 
583
572
  //instance methods
584
573
  rb_define_method(cFitParser, "initialize", init, 1);
@@ -1,3 +1,3 @@
1
1
  module Rubyfit
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyfit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Cullen King
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-23 00:00:00.000000000 Z
11
+ date: 2013-10-02 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: FIT files are binary, and as a result, are a pain to parse. This is
15
14
  a wrapper around the FIT SDK, which makes creating a stream based parser simple.
@@ -22,42 +21,41 @@ extra_rdoc_files: []
22
21
  files:
23
22
  - lib/rubyfit/version.rb
24
23
  - lib/rubyfit.rb
25
- - ext/rubyfit/fit_convert.c
26
- - ext/rubyfit/rubyfit.c
27
24
  - ext/rubyfit/fit.c
25
+ - ext/rubyfit/fit_convert.c
28
26
  - ext/rubyfit/fit_crc.c
29
- - ext/rubyfit/fit_sdk.c
30
- - ext/rubyfit/fit_product.c
27
+ - ext/rubyfit/fit_example.c
28
+ - ext/rubyfit/fit_ram.c
29
+ - ext/rubyfit/rubyfit.c
31
30
  - ext/rubyfit/fit.h
31
+ - ext/rubyfit/fit_config.h
32
32
  - ext/rubyfit/fit_convert.h
33
33
  - ext/rubyfit/fit_crc.h
34
- - ext/rubyfit/fit_config.h
35
- - ext/rubyfit/fit_sdk.h
36
- - ext/rubyfit/fit_product.h
34
+ - ext/rubyfit/fit_example.h
35
+ - ext/rubyfit/fit_ram.h
37
36
  - ext/rubyfit/extconf.rb
38
37
  homepage: http://cullenking.com
39
38
  licenses: []
39
+ metadata: {}
40
40
  post_install_message:
41
41
  rdoc_options: []
42
42
  require_paths:
43
43
  - lib
44
44
  - ext
45
45
  required_ruby_version: !ruby/object:Gem::Requirement
46
- none: false
47
46
  requirements:
48
- - - ! '>='
47
+ - - '>='
49
48
  - !ruby/object:Gem::Version
50
49
  version: '0'
51
50
  required_rubygems_version: !ruby/object:Gem::Requirement
52
- none: false
53
51
  requirements:
54
- - - ! '>='
52
+ - - '>='
55
53
  - !ruby/object:Gem::Version
56
54
  version: '0'
57
55
  requirements: []
58
56
  rubyforge_project: rubyfit
59
- rubygems_version: 1.8.10
57
+ rubygems_version: 2.0.5
60
58
  signing_key:
61
- specification_version: 3
59
+ specification_version: 4
62
60
  summary: A stream based parser for FIT files.
63
61
  test_files: []