gjtorikian / commonmarker

Ruby wrapper for the comrak (CommonMark parser) Rust crate
MIT License
416 stars 80 forks source link

Am I stupid #239

Closed 9mm closed 1 year ago

9mm commented 1 year ago

I have tried different combinations of following to readme...

require 'commonmarker' #=> false
Commonmarker
NameError: uninitialized constant Commonmarker

I looked in the source to make sure it wasnt CommonMarker

What am I doing wrong?

kivikakk commented 1 year ago

Could you show us what the value of $: is after? For example, I get this:

$ irb
irb(main):001:0> require 'commonmarker'
=> true
irb(main):002:0> Commonmarker
=> Commonmarker
irb(main):003:0> $:
=>
["/Users/kivikakk/.asdf/plugins/ruby/rubygems-plugin",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/irb-1.6.2/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/io-console-0.6.0/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/extensions/arm64-darwin-21/3.1.0/io-console-0.6.0",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/reline-0.3.2/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/timeout-0.3.2/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/rdoc-6.5.0/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/commonmarker-1.0.0.pre-arm64-darwin/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/stringio-3.0.5/lib",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/extensions/arm64-darwin-21/3.1.0/stringio-3.0.5",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/site_ruby/3.1.0",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/site_ruby/3.1.0/arm64-darwin21",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/site_ruby",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/vendor_ruby/3.1.0",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/vendor_ruby/3.1.0/arm64-darwin21",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/vendor_ruby",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/3.1.0",
 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/3.1.0/arm64-darwin21"]
irb(main):004:0>

Note this line:

 "/Users/kivikakk/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/commonmarker-1.0.0.pre-arm64-darwin/lib",

It could be you're on 0.x, in which case the module is called CommonMarker — note the capital M.

9mm commented 1 year ago
[2] pry(main)> require 'commonmarker'
=> false
[3] pry(main)> Commonmarker
NameError: uninitialized constant Commonmarker
from (pry):3:in `__pry__'
[4] pry(main)> $:
.....snip
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/commonmarker-0.23.9/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/commonmarker-0.23.9/ext",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/extensions/arm64-darwin-22/3.2.0/commonmarker-0.23.9",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/coderay-1.1.3/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/choice-0.2.0/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/bcrypt-3.1.18/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/extensions/arm64-darwin-22/3.2.0/bcrypt-3.1.18",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/rails-7.0.4.3/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sassc-rails-2.1.2/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/arm64-darwin22",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/site_ruby",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/vendor_ruby/3.2.0",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/vendor_ruby/3.2.0/arm64-darwin22",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/vendor_ruby",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/3.2.0",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/3.2.0/arm64-darwin22"]
9mm commented 1 year ago

hmm yes... i see. maybe another gem is forcing it to be lower version

kivikakk commented 1 year ago

Thanks for that!

 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/commonmarker-0.23.9/lib",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/commonmarker-0.23.9/ext",
 "/Users/zesty/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/extensions/arm64-darwin-22/3.2.0/commonmarker-0.23.9",

Yep — you've got 0.23.9, so CommonMarker is the module name to use.

kivikakk commented 1 year ago

hmm yes... i see. maybe another gem is forcing it to be lower version

Could be! Your Gemfile.lock will tell you for sure.

9mm commented 1 year ago

Sweet, thanks!

Not sure why I had to specify that... nothing else appears to use it in Gemfile.lock

gem 'commonmarker', '>= 1.0.0.pre'
kivikakk commented 1 year ago

I believe this is intended behaviour for Bundler when .pre versions are concerned; they aren't chosen automatically.

brendon commented 1 month ago

hmm yes... i see. maybe another gem is forcing it to be lower version

Long time ago, so maybe you've moved on, but it's probably because you're using Ruby > 3.1 and that seems to be the minimum for the 1.x series.