d-unsed / ruru

Native Ruby extensions written in Rust
MIT License
832 stars 40 forks source link

Ruby 2.5 Warnings on Data classes #96

Open grncdr opened 6 years ago

grncdr commented 6 years ago

The docs recommend inheriting from Data following this idiom:

let data_class = Class::from_existing("Data");
Class::new("MyClass", Some(&Data)).define(...)

On Ruby 2.5, this prints warning: constant ::Data is deprecated every time Data is accessed. I guess that there is some way to access this via the C extension API but I haven't found it yet.

danielpclark commented 6 years ago

This isn't a ruru issue unless you're specifically saying that ruru's docs are suggesting the use of Data.

As for using Data it is depricated. You can see the discussion on the Ruby Bug Tracker # 3072. That will also have the relevant information you're looking for on what you can use instead.

asppsa commented 6 years ago

As per https://github.com/d-unseductable/ruru/blob/master/src/dsl.rs#L392, the documentation actually currently says that Data must be used.

danielpclark commented 6 years ago

Thanks for pointing that out @asppsa . I haven't yet come across a need for using it so I'm not sure at the moment about implementing an alternative.

danielpclark commented 6 years ago

I tried switching everything over from Data to Object in ruru and that works (doc tests pass). That is what Ruby is officially doing:

Agreed. How about making Data alias to Object. It may be removed in the future (3.0?).

Matz.

source: https://bugs.ruby-lang.org/issues/3072#note-15