I am using Ruby22-x64 just to let you know, but I successfully installed RedCloth-4.2.9 using gem install RedCloth within the command prompt. When I try to require 'rubygems' I get =>false which is normal because it's already loaded, but when I try require 'RedCloth this is the following error code I get:
irb(main):001:0> require 'RedCloth'
LoadError: cannot load such file -- 2.2/redcloth_scan
Couldn't load 2.2/redcloth_scan
The $LOAD_PATH was:
C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0/RedCloth- 4.2.9
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/RedCloth-4.2.9/lib
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/RedCloth- 4.2.9/lib/case_sensitive_require
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/RedCloth-4.2.9/ext
C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0
C:/Ruby22-x64/lib/ruby/site_ruby/2.2.0/x64-msvcrt
C:/Ruby22-x64/lib/ruby/site_ruby
C:/Ruby22-x64/lib/ruby/vendor_ruby/2.2.0
C:/Ruby22-x64/lib/ruby/vendor_ruby/2.2.0/x64-msvcrt
C:/Ruby22-x64/lib/ruby/vendor_ruby
C:/Ruby22-x64/lib/ruby/2.2.0
C:/Ruby22-x64/lib/ruby/2.2.0/x64-mingw32
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54
:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54
:in `require'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/RedCloth- 4.2.9/lib/RedCloth.
rb:13:in `<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:12
8:in `require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:12
8:in `rescue in require'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39
:in `require'
from (irb):1
from C:/Ruby22-x64/bin/irb:11:in `<main>'
irb(main):002:0>
I don't know if it is the versions of RedCloth that may be doing this? Or some sort of path error? I really am looking for some help here though! Please!
I had to change the path by creating a 2.2 folder to include redcloth_scan.so and I got it to work!
Thanks for the link #Casper
Related
I'm new to Ruby coding. I'm just learning gem/bundle and require. At first, I think the gem should be like jar in Java and pip in Python. So I searched a very simple package named "haha" on rubygems.org -- https://rubygems.org/search?query=haha -- to have a test. But soon I found there always be error and I don't know why. Here's the details --
gem install "haha" -- it runs fine and I found it in the lib folder --
C:\Ruby31-x64\lib\ruby\gems\3.1.0\gems>dir |findstr haha
2022-04-25 17:34 <DIR> haha-1.1.0
2022-04-25 17:34 <DIR> haha-1.2.0
So I think this gem "haha" has been installed successfully.
Then in irb, I tried "require" to include it, then it failes --
irb(main):002:0> require "haha"
C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/haha-1.2.0/lib/haha/translator.rb:1:in `<top (required)>': uninitialized constant Haha (NameError)
class Haha::Translator
^^^^
Did you mean? Hash
from <internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/haha-1.2.0/lib/haha.rb:1:in `<top (required)>'
from <internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:160:in `require'
from <internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'
from <internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:149:in `require'
from (irb):2:in `<main>'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/irb-1.4.1/exe/irb:11:in `<top (required)>'
from C:/Ruby31-x64/bin/irb:33:in `load'
from C:/Ruby31-x64/bin/irb:33:in `<main>'
<internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- haha (LoadError)
from <internal:C:/Ruby31-x64/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from (irb):2:in `<main>'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/irb-1.4.1/exe/irb:11:in `<top (required)>'
from C:/Ruby31-x64/bin/irb:33:in `load'
from C:/Ruby31-x64/bin/irb:33:in `<main>'
I checked the $LOAD_PATH and it looks correct --
irb(main):003:0> pp $LOAD_PATH
["C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/haha-1.2.0/lib",
"C:/Ruby31-x64/lib/ruby/site_ruby/3.1.0",
"C:/Ruby31-x64/lib/ruby/site_ruby/3.1.0/x64-ucrt",
"C:/Ruby31-x64/lib/ruby/site_ruby",
"C:/Ruby31-x64/lib/ruby/vendor_ruby/3.1.0",
"C:/Ruby31-x64/lib/ruby/vendor_ruby/3.1.0/x64-ucrt",
"C:/Ruby31-x64/lib/ruby/vendor_ruby",
"C:/Ruby31-x64/lib/ruby/3.1.0",
"C:/Ruby31-x64/lib/ruby/3.1.0/x64-mingw-ucrt"]
I think being a package on rubygems this "haha" should be a correct one and it must be my fault somewhere so that I can't "require" it in irb. But I really don't know what's my mistake.
Please kind help.
My step is,
Execute RubyInstaller.exe file
install ruby
installed Path: c:\ruby193
install DevKit
gem install libxml-ruby --platform x86-mswin32-60
make test.rb file
require 'rubygems'
require 'xml'
ruby test.rb
print error msg
Error message:
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require':
126: The specified module could not be found - C:/Ruby193/lib/ruby/gems/1.9.1/gems/lib
xml-ruby-1.1.3-x86-mswin32-60/lib/libxml_ruby.so (LoadError)
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/libxml-ruby-1.1.3-x86-mswin32-6 0/lib/libxml.rb:9:in `<top (required)>'
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/libxml-ruby-1.1.3-x86-mswin32-6 0/lib/xml.rb:11:in `<top (required)>'
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from test.rb:2:in `<main>'
i want solution in this problem
plz. help me.
Had similar problem on Windows 7x64 with libxml-ruby 2.3.3 (Ruby 2, 1.9.3 and 1.9.2). As per this solution:
https://github.com/xml4r/libxml-ruby/issues/42#issuecomment-7040881
I managed my problem was also solved. Solution (thanks to the original author):
Locate 'libxml.rb' in libxml-ruby gem folder (something like 'C:\Ruby\Ruby192\lib\ruby\gems\1.9.1\gems\libxml-ruby-2.3.3-x86-mingw32\lib')
Add the following on top of the file:
ENV['PATH'] = ENV['PATH'] + ';' + File.expand_path(File.dirname(__FILE__) + '/libs')
Save and enjoy
Because of a bug with Float#round in Ruby 1.8.6, I was forced to upgrade to 1.9.3 and boy was that awful. After install, irb didn't work, complaining of a lack of psych. So I tried to install the gem, but it was angry that libyaml didn't exist, so I installed that. Not sure why they weren't included if they were so important.
Now when I use require 'Location.rb' (after having to specify that I actually do want to look in the current folder... using $LOAD_PATH), I get this error:
LoadError: cannot load such file -- crack/xml
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/ap-0.1.1/lib/ap.rb:2:in `<top (required)>'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from /Users/tyre77/Dropbox/Aurora/GMap.rb:4:in `<top (required)>'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):3
from /usr/local/bin/irb:12:in `<main>'
What does this mean? Also, when I execute ruby -v, it lists my version as 1.9.3p0 but this is dicking around in 1.9.1? All I want is my irb back and working!
It turned out that Ruby was looking for an XML parser called 'crack'. I don't know why it is referencing 2 versions of Ruby or why these dependencies aren't included in the Ruby build (since irb won't work without them) but to fix I installed the crack gem. sudo gem install crack
you can use
require_relative 'Location.rb'
or
require './Location.rb'
I scheduled this cronjob:
ruby twitter_bots/tweet_bots.rb
tweet_bots.rb:
#!/usr/bin/ruby
require 'rubygems'
require '/home/david/twitter_bots/twitterbot.rb'
mcnulty = TwitterBot.new('jamesmcnulty')
mcnulty.tweet
mcnulty.reply
mcnulty.close
twitterbot.rb:
require 'dbi'
require 'twitter'
class TwitterBot
...
The cron has these environmental variables:
SHELL=/bin/sh
PATH=/home/david/.rvm/gems/ruby-1.9.2-p290/bin:/home/david/.rvm/gems/ruby-1.9.2-p290#global/bin:/home/david/.rvm/rubies/ruby-1.9.2-p290/bin:/home/david/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
HOME=/home/david
LOGNAME=david
But it throws this error:
/home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- deprecated (LoadError)
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/dbi.rb:48:in `<top (required)>'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/twitter_bots/twitterbot.rb:1:in `<top (required)>'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from twitter_bots/tweet_bots.rb:5:in `<main>'
I can see that the error comes from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/dbi.rb:48 where it has require "deprecated"
But I have the deprecated gem v 2.0.1 installed. I also tried it with version 3.0.0.
When I run it manually, it works. What's wrong with the cron?
I am guessing you need the deprecated Gem.
try:
[sudo] gem install deprecated
I am trying to use FakeFS but keep getting an uninitialized constant error when I require 'fakefs':
C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:26:in `<class:File>': uninitialized constant File::NOCTTY (NameError)
I was originally working in RubyMine, but to isolate the problem I wrote a simple hello world script and ran it from the command line, and still get the same error. Here is that script:
require 'rubygems'
gem 'fakefs'
require 'fakefs'
puts "Hello Cleveland!"
And here is the error and accompanying stacktrace:
>ruby foo.rb
C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:26:in `<class:File>': uninitialized constant File::NOCTTY (NameError)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:4:in `<module:FakeFS>'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:3:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/safe.rb:9:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs.rb:1:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from foo.rb:3:in `<main>'
I installed the fakefs gem via RubyMine. I'm working on Windows with Ruby 1.9. Any ideas?
It's because Windows doesn't have NOCTTY and SYNC flags. You can add this method to the base.rb file:
def RealFile.const_missing const
const_set const, 42
end
Really, I don't know it cause any problems or not in the future but you'll be able to run your script at least. And I think you should write about this at github
There is a fork with some windows fixes (this guy commented all flags at all): https://github.com/vertiginous/fakefs