scrapper / postrunner

Application to manage FIT files such as those produced by Garmin fitness devices
GNU General Public License v2.0
62 stars 14 forks source link

Problem with BinData module #12

Closed vdanjean closed 5 years ago

vdanjean commented 6 years ago

Hi,

I just tried your program. I checkout fit4ruby, perobs and postrunner from github and install all other required modules from my distribution (Debian unstable). In particular, bindata is version 2.3.5 (and ruby 2.5.1p57). When trying to import my first data, I get this:

$ bin/postrunner import /media/sde/GARMIN/ACTIVITY/
ERROR: Rename field 'type' in BinData::Struct, as it is a reserved name.
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:410:in `block in ensure_field_names_are_valid'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:404:in `each'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:404:in `ensure_field_names_are_valid'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:380:in `sanitize_fields'
/usr/lib/ruby/vendor_ruby/bindata/struct.rb:344:in `sanitize_parameters!'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:287:in `sanitize!'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:207:in `initialize'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:189:in `new'
/usr/lib/ruby/vendor_ruby/bindata/sanitize.rb:189:in `sanitize'
/usr/lib/ruby/vendor_ruby/bindata/base.rb:302:in `extract_args'
/usr/lib/ruby/vendor_ruby/bindata/base.rb:249:in `extract_args'
/usr/lib/ruby/vendor_ruby/bindata/base.rb:81:in `initialize'
/usr/lib/ruby/vendor_ruby/bindata/warnings.rb:21:in `initialize_with_warning'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitMessageRecord.rb:164:in `new'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitMessageRecord.rb:164:in `produce'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitMessageRecord.rb:41:in `initialize'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitRecord.rb:53:in `new'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitRecord.rb:53:in `read'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby/FitFile.rb:68:in `read'
/home/vdanjean/travail/perso/activités/Garmin/software/fit4ruby/lib/fit4ruby.rb:18:in `read'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:482:in `import_fit_file'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:464:in `process_file'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:446:in `block (2 levels) in process_files'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:445:in `each'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:445:in `block in process_files'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:443:in `each'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:443:in `process_files'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:347:in `execute_command'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner/Main.rb:77:in `main'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner.rb:24:in `<module:PostRunner>'
/home/vdanjean/travail/perso/activités/Garmin/software/postrunner/lib/postrunner.rb:22:in `<top (required)>'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
bin/postrunner:4:in `<main>'

*******************************************************************************
You have triggered a bug in PostRunner 0.10.1!

Is it really a bug? Do you know how to workaround it?

Regards, Vincent

scrapper commented 6 years ago

You are using the wrong version of bindata. You must use 2.3.0 as specified in the gemspec file. Newer versions have introduced symbols that pollute the class namespace and conflict with fit4ruby names.