[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Where is Fixnum#power! coming from?

Berger, Daniel

3/29/2006 7:22:00 PM

Hi all,

Ruby 1.8.4

I realize there's a Fixnum#power! method defined in rational.rb, but it appears
that Fixnum has that method available to it whether or not I require
rational.rb. I looked through the Ruby source and didn't see anything.

djberge@~-710>irb
irb(main):001:0> Fixnum.instance_methods(false).grep(/power/)
=> ["rpower", "power!"]

So, where the heck is it coming from?

Thanks,

Dan



4 Answers

Daniel Harple

3/29/2006 7:35:00 PM

0

On Mar 29, 2006, at 9:22 PM, Daniel Berger wrote:

> I realize there's a Fixnum#power! method defined in rational.rb,
> but it appears that Fixnum has that method available to it whether
> or not I require rational.rb. I looked through the Ruby source and
> didn't see anything.
>
> djberge@~-710>irb
> irb(main):001:0> Fixnum.instance_methods(false).grep(/power/)
> => ["rpower", "power!"]
>
> So, where the heck is it coming from?

$ irb -rubygems
> 2.power!(3)
=> 8
> exit
$ irb
> 2.power!(3)
NoMethodError: undefined method `power!' for 2:Fixnum
from (irb):1
from :0

Are you requiring rubygems?

-- Daniel


Berger, Daniel

3/29/2006 7:39:00 PM

0

Daniel Harple wrote:
> On Mar 29, 2006, at 9:22 PM, Daniel Berger wrote:
>
>> I realize there's a Fixnum#power! method defined in rational.rb, but
>> it appears that Fixnum has that method available to it whether or not
>> I require rational.rb. I looked through the Ruby source and didn't
>> see anything.
>>
>> djberge@~-710>irb
>> irb(main):001:0> Fixnum.instance_methods(false).grep(/power/)
>> => ["rpower", "power!"]
>>
>> So, where the heck is it coming from?
>
> $ irb -rubygems
> > 2.power!(3)
> => 8
> > exit
> $ irb
> > 2.power!(3)
> NoMethodError: undefined method `power!' for 2:Fixnum
> from (irb):1
> from :0
>
> Are you requiring rubygems?
>
> -- Daniel

Aha! I'm not explicitly require'ing it, but my $RUBYOPT was set. Once I unset
it, I got the expected error.

Thanks,

Dan



Marcin Mielzynski

3/29/2006 7:42:00 PM

0

Daniel Berger wrote:
> Hi all,
>
> Ruby 1.8.4
>
> I realize there's a Fixnum#power! method defined in rational.rb, but it
> appears that Fixnum has that method available to it whether or not I
> require rational.rb. I looked through the Ruby source and didn't see
> anything.
>


numeric.c:
flo_pow(x, y)...
fix_pow(x, y)...

and then:
rb_define_method(rb_cFixnum, "**", fix_pow, 1);
rb_define_method(rb_cFloat, "**", flo_pow, 1);

and then in rational.rb:

class Fixnum
alias power! **
end

are You sure irb doesnt use rational.rb ?

lopex


Jim Weirich

3/29/2006 9:51:00 PM

0

Daniel Berger wrote:
> Daniel Harple wrote:
>>>
>> from :0
>>
>> Are you requiring rubygems?
>>
>> -- Daniel
>
> Aha! I'm not explicitly require'ing it, but my $RUBYOPT was set. Once
> I unset
> it, I got the expected error.

FYI:

RubyGems uses time.rb
time.rb uses parsedate.rb
parsedate.rb uses date/format.rb
date/format.rb uses rational.rb

--
-- Jim Weirich

--
Posted via http://www.ruby-....