I’ve been doing a little work with Ruby, starting with some XHTML parsing with Nokogiri. I’ve just created my first web page using Sinatra.
While the instructions makes it look simple, it was a little more complex due a package dependency error.
Installation
$ sudo gem install sinatra Password: Successfully installed rack-1.2.1 Successfully installed sinatra-1.0 2 gems installed Installing ri documentation for rack-1.2.1... Installing ri documentation for sinatra-1.0... Installing RDoc documentation for rack-1.2.1... Installing RDoc documentation for sinatra-1.0...
Smoking it
Following the 5 line example on the home page, didn’t produce the result I expected.
ruby rb42.rb /Library/Ruby/Gems/1.8/gems/rack-1.2.1/lib/rack/utils.rb:138:in `union': can't convert Array into String (TypeError) from /Library/Ruby/Gems/1.8/gems/rack-1.2.1/lib/rack/utils.rb:138 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' from /Library/Ruby/Gems/1.8/gems/rack-1.2.1/lib/rack/request.rb:1 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' from /Library/Ruby/Gems/1.8/gems/rack-1.2.1/lib/rack/showexceptions.rb:3 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' ... 7 levels... from /Library/Ruby/Gems/1.8/gems/sinatra-1.0/lib/sinatra.rb:4 from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require' from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require' from rb42.rb:2
Some Googling found a reference to a compatibility problem. While the syntax given on the post wasn’t correct, it was sufficient for me to find a correct solution.
$ sudo gem uninstall rack Remove executables: rackup in addition to the gem? [Yn] y Removing rackup You have requested to uninstall the gem: rack-1.2.1 sinatra-1.0 depends on [rack (>= 1.0)] If you remove this gems, one or more dependencies will not be met. Continue with Uninstall? [Yn] y Successfully uninstalled rack-1.2.1 $ sudo gem install rack --version '1.2.0' Successfully installed rack-1.2.0 1 gem installed Installing ri documentation for rack-1.2.0... Installing RDoc documentation for rack-1.2.0...
And now expected results starting then viewing http://localhost:4567/
$ ruby rb42.rb == Sinatra/1.0 has taken the stage on 4567 for development with backup from Mongrel
Environment
$ sw_vers ProductName: Mac OS X ProductVersion: 10.5.8 BuildVersion: 9L31a $ ruby --version ruby 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0] $ gem --version 1.3.6