rubyworks / radix

Base Conversions
http://rubyworks.github.com/radix
Other
54 stars 9 forks source link

collision String method name "b" with Ruby 2.1 #10

Open JokerCatz opened 10 years ago

JokerCatz commented 10 years ago

sorry for my poor english...

Ruby 2.1.0 String.b #=> http://www.ruby-doc.org/core-2.1.0/String.html#method-i-b

& I tried require(gemfile) radix in rails & use will be fail ~/.rvm/gems/ruby-2.1.0/gems/radix-2.2.0/lib/radix/operator.rb:51:in 'b': wrong number of arguments (0 for 1) (ArgumentError) from ~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/erb.rb:600:in 'compile' from ~/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/erb.rb:800:in 'initialize'

hlascelles commented 10 years ago

Agreed. The radix gem and Ruby 2.1 are not compatible. Same stacktrace.

hlascelles commented 10 years ago

What is the best course of action here? Probably to not add that method at all if Ruby is > 2.

hlascelles commented 10 years ago

I've forked this project, removed the operator.rb, and cut a gem:

gem 'radix-firstbanco'

There's no pull request, as the solution would break all pre Ruby 2.1.0 installations, and Ruby 2.1.0 is broken anyway.

Hopefully the gem authors have a better idea of how to solve this - thank you rubyworks!

hlascelles commented 10 years ago

Ruby 2.1.1 released.... My forked gem is still required to make Radix work correctly. Hope rubyworks have a plan to resolve the problem?

maksar commented 10 years ago

just fixed this problem by doing: gem 'radix', require: 'radix/integer' and then using Radix::Integer.new(@seed, @alphabet.length).to_s @alphabet instead of @seed.b(@alphabet.length).to_s(@alphabet)

travisbell commented 9 years ago

Just adding a vote for this to finally get fixed in a official release. In the meantime, I'm using the 'radix-firstbanco' gem.

trans commented 9 years ago

Been busy with other work this last year (android development) and just learned about this (unfortunately I don't always get issue emails, not sure why). So I just put in an issue at bugs.ruby-lang.org (https://bugs.ruby-lang.org/issues/10924), asking that the method name be changed. Seems to me an awful name for ascii 8-bit conversion anyway. The obvious choice being #ascii. Of course, I don't have high hopes for my request. They never give me much credence over there. So barring a minor miracle, what is the next best fix? Any ideas?