Yet another site_ruby question

Hello all,

Here’s the LOAD_PATH for my desktop:
/usr/local/lib/ruby/site_ruby/1.8
/usr/local/lib/ruby/site_ruby/1.8/powerpc-darwin8.10.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/1.8
/usr/local/lib/ruby/1.8/powerpc-darwin8.10.0
.

Here’s the LOAD_PATH for my laptop:
/usr/local/lib/ruby/site_ruby/1.8
/usr/local/lib/ruby/site_ruby/1.8/i686-darwin8.9.1
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/1.8
/usr/local/lib/ruby/1.8/i686-darwin8.9.1
.

Installed gem ‘flacinfo-rb’ and the path looks like this on both
machines:
/usr/local/lib/ruby/gems/1.8/gems/flacinfo-rb-0.3/flacinfo.rb
(although I would have expected to find it here:
/usr/local/lib/ruby/site_ruby/1.8/flacinfo.rb)

On my laptop success with:
irb(main):001:0> require ‘flacinfo’
=> true

On my desktop this:
irb(main):001:0> require ‘flacinfo’
LoadError: no such file to load – flacinfo
from (irb):1:in `require’
from (irb):1

If I move the gem to site_ruby on my desktop, the load succeeds. My
question is why the inconsistency?
If the install location is incorrect why does require work on one
machine and not the other?

Here’s the result of the install command on both machines:
Successfully installed flacinfo-rb-0.3
Installing ri documentation for flacinfo-rb-0.3…
File not found: lib

Is that last bit significant?

Thanks for any info,
Dan J.

Daniel J. wrote:

If I move the gem to site_ruby on my desktop, the load succeeds. My
question is why the inconsistency?
If the install location is incorrect why does require work on one
machine and not the other?

Here’s the result of the install command on both machines:
Successfully installed flacinfo-rb-0.3
Installing ri documentation for flacinfo-rb-0.3…
File not found: lib

Is that last bit significant?

Thanks for any info,
Dan J.

Hi Daniel,

Did you tried by using “gem” command ?
(gem instead of require_gem, which is obsolete)
Maybe in one machine, by default, that lib is loaded and on the other
one, not?
I’m just guessing.

All the best,

Alin

On 7/12/07, Daniel J. [email protected] wrote:

Here’s the LOAD_PATH for my laptop:
(although I would have expected to find it here:
from (irb):1

Is that last bit significant?

Thanks for any info,
Dan J.

You need to require ‘rubygems’ first. This probably isn’t required
because you have RUBYOPT set on your desktop, but not your laptop

In article
[email protected], Chris
Carter [email protected] wrote:

/usr/local/lib/ruby/gems/1.8/gems/flacinfo-rb-0.3/flacinfo.rb
from (irb):1:in `require’
File not found: lib
because you have RUBYOPT set on your desktop, but not your laptop
Thanks Chris,
I did try that…

irb(main):001:0> require ‘rubygems’
=> true
irb(main):002:0> require ‘flacinfo’
LoadError: no such file to load – flacinfo
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in require’
from (irb):2

This isn’t necessarily a show stopper, because of course I can just
move the library, but I’m trying to understand the process.

Dan

On 7/12/07, Daniel J. [email protected] wrote:

/usr/local/lib/ruby/site_ruby
.

irb(main):002:0> require ‘flacinfo’
move the library, but I’m trying to understand the process.

Dan

How about:
require ‘rubygems’
require ‘flacinfo-rb’

?

In article [email protected], Alin P.
[email protected] wrote:

File not found: lib
Maybe in one machine, by default, that lib is loaded and on the other
one, not?
I’m just guessing.

All the best,

Alin

Thanks Alin,

Here’s the result of my experiment with the gem command:

$ irb
irb(main):001:0> gem ‘flacinfo’
NoMethodError: undefined method `gem’ for main:Object
from (irb):1
irb(main):002:0> require ‘rubygems’
=> true
irb(main):003:0> gem ‘flacinfo’
Gem::LoadError: Could not find RubyGem flacinfo (>= 0.0.0)

    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:304:in

report_activate_error' from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:238:in activate’
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:76:in
active_gem_with_options' from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:50:in gem’
from (irb):3
irb(main):004:0> gem ‘flacinfo-rb’
=> true
irb(main):005:0> song = FlacInfo.new(“dread.flac”)
NameError: uninitialized constant FlacInfo
from (irb):5

‘require’ and ‘gem’ really want to find the library under ‘site_ruby.’
If I move it there, everything works. I just still can’t figure out why
it works without being in ‘site_ruby.’ on my other machine. :frowning: The
installations of ruby, rubygems, etc. where exactly the same on both.

Dan J.

In article
[email protected], Chris
Carter [email protected] wrote:

/usr/local/lib/ruby/site_ruby/1.8/powerpc-darwin8.10.0
/usr/local/lib/ruby/1.8/i686-darwin8.9.1
=> true
machine and not the other?

=> true
This isn’t necessarily a show stopper, because of course I can just
?
Yeah, I tried that too. The load succeeds but then the methods fail:
Should work like this:

irb(main):001:0> require ‘flacinfo’
=> true
irb(main):002:0> song = FlacInfo.new(“dread.flac”)
=> #<FlacInfo:0x19208 (STREAMINFO size=34 offset=8) (SEEKTABLE size=486
offset=46) (VORBIS_COMMENT size=235 offset=536) (PADDING size=4065
offset=775)>
irb(main):003:0> song.print_tags
ARTIST: 10cc
TRACKNUMBER: 01
DATE: 1978
vendor_tag: reference libFLAC 1.1.2 20050205
ALBUM: Bloody Tourists
TOTALTRACKS: 13
TITLE: Dreadlock Holiday
YEAR: 1978
GENRE: Rock
offset: 536
block_size: 235
COMMENT: High Quality, EAC secure, Lossless flac
=> nil

But instead I get:

irb(main):001:0> require ‘rubygems’
=> true
irb(main):002:0> gem ‘flacinfo-rb’
=> true
irb(main):003:0> song = FlacInfo.new(“dread.flac”)
NameError: uninitialized constant FlacInfo
from (irb):3

On 7/12/07, Chris C. [email protected] wrote:

/usr/local/lib/ruby/site_ruby/1.8/powerpc-darwin8.10.0
/usr/local/lib/ruby/1.8/i686-darwin8.9.1
=> true
machine and not the other?

=> true
This isn’t necessarily a show stopper, because of course I can just
?


Chris C.
concentrationstudios.com
brynmawrcs.com

Or even:
require ‘rubygems’
gem ‘flacinfo-rb’
require ‘flacinfo’

In article
[email protected], Chris
Carter [email protected] wrote:

On 7/12/07, Daniel J. [email protected] wrote:

Here’s the LOAD_PATH for my laptop:
(although I would have expected to find it here:
from (irb):1

    from

=> true
TOTALTRACKS: 13
irb(main):001:0> require ‘rubygems’
activates the gem, you still need to require it.
Alas, no joy.

irb(main):001:0> require ‘rubygems’
=> true
irb(main):002:0> gem ‘flacinfo-rb’
=> true
irb(main):003:0> require ‘flacinfo’
LoadError: no such file to load – flacinfo
from
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in require’

same result for require ‘flacinfo-rb’

Weird. Last night I did a near clean install of ruby, et al. on both
machines to try and narrow down the possibilities. Didn’t seem to make
a difference. My MacBook Pro doesn’t care if flacinfo.rb is under
site_ruby but my destop does. ??

Thanks again for your help.
Dan J.

quoth the Daniel J.:

gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
from (irb):2

This isn’t necessarily a show stopper, because of course I can just
move the library, but I’m trying to understand the process.

Dan

Hi Daniel,

As the author of flacinfo, and as one who is not overly familiar with
the
inner workings of gems, would not overlook that this may be a problem
with
the gem itself. It does seem to work fine on the (Linux) system that I
tested
it on.

Does your problem occur with all gems or just flacinfo?

Thanks,
-d

On 7/12/07, Daniel J. [email protected] wrote:

Hello all,
/usr/local/lib/ruby/site_ruby/1.8
/usr/local/lib/ruby/site_ruby/1.8/flacinfo.rb)

Is that last bit significant?
Thanks Chris,
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
How about:
irb(main):002:0> song = FlacInfo.new(“dread.flac”)
TITLE: Dreadlock Holiday
=> true
irb(main):002:0> gem ‘flacinfo-rb’
=> true
irb(main):003:0> song = FlacInfo.new(“dread.flac”)
NameError: uninitialized constant FlacInfo
from (irb):3

require ‘flacinfo’ (or ‘flacinfo-rb’) after the gem line. ‘gem’ just
activates the gem, you still need to require it.

On 7/12/07, Daniel J. [email protected] wrote:My MacBook Pro
doesn’t care if flacinfo.rb is under

site_ruby but my destop does. ??

Thanks again for your help.
Dan J.

This is a long shot, but is there a significant difference between the
environment variables on each OSX installation?

In article
[email protected], Todd
Benson [email protected] wrote:

This is a long shot, but is there a significant difference between the
environment variables on each OSX installation?

They are identical.

In article [email protected], darren kirby
[email protected] wrote:

-d
Hi Darren,
It did actually occur to me along the way that I should ask you about
this. :wink:

I haven’t had this problem with other gems that I know of. One thing I
wonder about is whether the gem is correctly placed during the install,
because I believe that 3rd-party gems are supposed to go under
site_ruby. (On my machine: /usr/local/lib/ruby/site_ruby/1.8)

Here’s the install:

sudo gem install -r flacinfo-rb
Successfully installed flacinfo-rb-0.3
Installing ri documentation for flacinfo-rb-0.3…
File not found: lib

Which puts it here:
/usr/local/lib/ruby/gems/1.8/gems/flacinfo-rb-0.3

I can move flacinfo.rb to site_ruby/1.8 and everything works fine.

The odd thing is that on one machine (my Intel Mac), require ‘flacinfo’
works without being moved, but on my desktop machine it doesn’t.

And finally, the REAL problem is me making a mountain out of a molehill!

Regards,
Dan J.

quoth the Daniel J.:

Does your problem occur with all gems or just flacinfo?
because I believe that 3rd-party gems are supposed to go under
/usr/local/lib/ruby/gems/1.8/gems/flacinfo-rb-0.3

I can move flacinfo.rb to site_ruby/1.8 and everything works fine.

The odd thing is that on one machine (my Intel Mac), require ‘flacinfo’
works without being moved, but on my desktop machine it doesn’t.

And finally, the REAL problem is me making a mountain out of a molehill!

Nope. It’s a bug…

Regards,
Dan J.

After a bit of poking around I can say this is certainly a problem with
the
gem itself. In the latest version (0.3) I have forgotten to place the
source
file itself in a ‘lib’ subdirectory as recommended by the ‘Creating your
own
gems’ example in the pickaxe book.

I am going to build a 0.3.1 gem release which will address this bug (but
not
change any functionality of the library itself) and will try to get it
up on
Rubyforge in the next hour or so.

Thanks for bringing this to my attention :wink:

-d

In article [email protected], darren kirby
[email protected] wrote:

Thanks for bringing this to my attention :wink:

Darren, I’m glad I helped (if rather unwittingly). I’ll look for the
new version.

Dan J.