I'm starting my first Sinatra App and I'm trying to use DataMapper. Everything is in the very early stages, as I can't get it to actually create the DB. I get "LoadError: no such file to load -- dm-sqlite-adapter" when I try to visit my page.
Here's the code from my Sinatra App so far:
require 'rubygems'
require 'sinatra'
require 'dm-core'
require 'dm-timestamps'
# Also tried require 'datamapper' , but the same issue shows up
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/raffle.db")
class Raffle
include DataMapper::Resource
property :id, Serial
property :firstName, String
property :lastName, String
property :email, String
property :created_at, DateTime
end
# Create, upgrade, or migrate DB Tables
DataMapper.auto_upgrade!
I have the gems installed, as gem list outputs:
*** LOCAL GEMS ***
activemodel (3.0.9, 3.0.3)
activerecord (3.0.9, 3.0.3)
activesupport (3.0.9, 3.0.3)
addressable (2.2.6)
arel (2.0.10, 2.0.4)
bcrypt-ruby (2.1.4)
builder (2.1.2)
bundler (1.0.15)
data_objects (0.10.6)
datamapper (1.1.0)
diff-lcs (1.1.2)
dm-aggregates (1.1.0)
dm-constraints (1.1.0)
dm-core (1.1.0)
dm-migrations (1.1.0)
dm-serializer (1.1.0)
dm-timestamps (1.1.0)
dm-transactions (1.1.0)
dm-types (1.1.0)
dm-validations (1.1.0)
do_sqlite3 (0.10.6)
fastercsv (1.5.4)
ffi (0.6.3)
i18n (0.5.0, 0.4.2)
json (1.5.3, 1.4.6)
mime-types (1.16)
rack (1.3.0, 1.2.1)
rack-test (0.5.6)
rake (0.8.7)
require_all (1.2.0)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
shotgun (0.9)
sinatra (1.2.6, 1.1.0)
sqlite3 (0.1.1)
stringex (1.2.1)
tilt (1.3.2, 1.1)
typhoeus (0.2.4, 0.2.0)
tzinfo (0.3.29, 0.3.23)
uuidtools (2.1.2)
Any advice/insight is always appreciated.
I don't see the dm-sqlite-adapter gem in that list. Try installing it.
It may be a bit late for the original question, but in case anyone has a similar issue, putting an underscore "data_mapper" in require 'data_mapper' worked for me.
You always need to explicitly add an adapter gem to your gemfile. Even data_mapper meta gem doesn't require any of the adapters.
Related
I am working on a Sinatra application where I would like to use data_mapper & sqlite3.
in app.rb I have:
require 'sinatra'
require 'data_mapper'
in the console when I do $ gem list I get(list somewhat edited to reflect db gems:
* LOCAL GEMS *
activemodel (4.0.2)
activerecord (4.0.2)
activerecord-deprecated_finders (1.0.3)
activesupport (4.0.2)
addressable (2.3.5)
arel (4.0.2)
atomic (1.1.14)
bcrypt-ruby (3.1.2)
bigdecimal (1.2.3)
buftok (0.2.0)
builder (3.1.4)
bundler (1.5.3)
bundler-unload (1.0.2)
cookiejar (0.3.0)
daemons (1.1.9)
data_mapper (1.2.0)
data_objects (0.10.13)
descendants_tracker (0.0.3)
dm-aggregates (1.2.0)
dm-constraints (1.2.0)
dm-core (1.2.1)
dm-do-adapter (1.2.0)
dm-migrations (1.2.0)
dm-serializer (1.2.2)
dm-sqlite-adapter (1.2.0)
dm-timestamps (1.2.0)
dm-transactions (1.2.0)
dm-types (1.2.2)
dm-validations (1.2.0)
do_sqlite3 (0.10.13)
fastercsv (1.5.5)
gem-wrappers (1.2.4)
http (0.5.0)
http_parser.rb (0.6.0)
i18n (0.6.9)
io-console (0.4.2)
json (1.8.1)
json_pure (1.8.1)
memoizable (0.4.0)
mini_portile (0.5.2)
minitest (4.7.5)
multi_json (1.8.4)
multipart-post (2.0.0)
oauth (0.4.7)
pg (0.17.1)
rack (1.5.2)
rack-protection (1.5.2)
rake (10.1.0)
rdoc (4.1.0)
rubygems-bundler (1.4.2)
rvm (1.11.3.8)
shotgun (0.9)
simple_oauth (0.2.0)
sinatra (1.4.4)
sinatra-activerecord (1.3.0)
sqlite3 (1.3.8)
when I go to irb and require data_mapper I get =>"true" However, when I got to the app through a browser I get: LoadError: cannot load such file -- data_mapper. From what I have read this problem is usually a result of require 'datamapper' instead of require 'data_mapper'. What am I doing wrong?
Try requiring dm-sqlite-adapter says the Docster
You've got the gem but not requiring it in code. I don't know if this will fix it but in a recent project the adapter was what we needed to require explicitly in our controller.
I do have a problem with bundler install for the gem 'factory_girl_rails' and I don't know how to resolve.
Each time I run bundle install in the application/project directory the following error is thrown:
(it doesn't matter if I create a new rails app and add factory_girl to the gemfile either)
Gem::InstallError: factory_girl requires Ruby version >= 1.9.2.
An error occured while installing factory_girl (4.1.0), and Bundler cannot continue.
Make sure that gem install factory_girl -v '4.1.0' succeeds before bundling.
When I type 'gem intall factory_girl_rails' in the terminal it successfully installs.
My configuration:
osx mountain lion
ruby 1.9.3p286
gem 1.8.24
rails 3.2.8
which ruby:
/usr/local/bin/ruby
which gem:
/usr/local/bin/gem
which rails:
/usr/local/bin/rails
gem list:
*** LOCAL GEMS ***
actionmailer (3.2.8)
actionpack (3.2.8)
activemodel (3.2.8)
activerecord (3.2.8)
activeresource (3.2.8)
activesupport (3.2.8)
addressable (2.3.2)
arel (3.0.2)
bcrypt-ruby (3.0.1)
best_in_place (1.1.2)
bigdecimal (1.1.0)
builder (3.1.4, 3.0.4)
bundler (1.2.1)
cancan (1.6.8)
capybara (1.1.2)
carrierwave (0.7.0)
childprocess (0.3.6)
client_side_validations (3.2.1)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.4.0, 1.3.3)
country_select (1.0.1)
devise (2.1.2)
diff-lcs (1.1.3)
erubis (2.7.0)
evernote (1.2.1)
evernote-thrift (1.22.1)
execjs (1.4.0)
factory_girl (4.1.0)
factory_girl_rails (4.1.0)
faraday (0.8.4)
ffi (1.1.5)
geocoder (1.1.4)
guard (1.4.0)
guard-rspec (2.1.0)
hashie (1.2.0)
hike (1.2.1)
httpauth (0.2.0)
i18n (0.6.1)
io-console (0.3)
journey (1.0.4)
jquery-rails (2.1.3)
json (1.7.5)
jwt (0.1.5)
libwebsocket (0.1.5)
listen (0.5.3)
mail (2.4.4)
metaclass (0.0.1)
mime-types (1.19)
minitest (4.1.0)
mocha (0.12.7)
multi_json (1.3.7, 1.3.6)
multipart-post (1.1.5)
nested_form (0.2.3)
nifty-generators (0.4.6)
nokogiri (1.5.5)
oauth (0.4.7)
oauth2 (0.8.0)
omniauth (1.1.1)
omniauth-dropbox (0.2.0)
omniauth-evernote (1.2.0)
omniauth-facebook (1.4.1)
omniauth-foursquare (0.0.8)
omniauth-google (1.0.2)
omniauth-google-oauth2 (0.1.13)
omniauth-instagram (1.0.0)
omniauth-linkedin (0.0.8)
omniauth-oauth (1.0.1)
omniauth-oauth2 (1.1.1)
omniauth-salesforce (1.0.3)
omniauth-twitter (0.0.13)
omniauth-windowslive (0.0.8.1)
omniauth-xing (0.1.3)
omniauth-yahoo (0.0.4)
orm_adapter (0.4.0)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-protection (1.2.0)
rack-ssl (1.3.2)
rack-test (0.6.2)
rails (3.2.8)
railties (3.2.8)
rake (0.9.2.2)
rdoc (3.12)
redis (3.0.2)
rmagick (2.13.1)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
rspec-rails (2.11.4)
rubygems-update (1.8.24)
rubyzip (0.9.9)
sass (3.2.2, 3.2.1)
sass-rails (3.2.5)
selenium-webdriver (2.25.0)
simple_form (2.0.4)
sinatra (1.3.3)
sprockets (2.8.0, 2.1.3)
sqlite3 (1.3.6)
thor (0.16.0)
thrift (0.9.0)
thrift_client (0.8.2)
tilt (1.3.3)
treetop (1.4.12, 1.4.11)
tzinfo (0.3.35, 0.3.34, 0.3.33)
uglifier (1.3.0)
warden (1.2.1)
xpath (0.1.4)
Content of the Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.8'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
group :test, :development do
gem 'aruba'
gem 'cucumber'
gem 'rspec-rails'
gem 'mongoid-rspec'
gem 'capybara'
gem 'database_cleaner'
gem 'jasmine'
gem 'factory_girl_rails'
end
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
gem 'devise'
gem 'mongoid'
gem 'mongoid_spacial'
gem 'haml'
gem 'bson_ext'
gem 'rails-backbone'
Remove the Gemfile.lock file, and run bundle install again. Or run bundle update. Ref: Bundle says gem is missing - but it's not?
Cracked it!
I have to "update" bundler.
I issued the following command: gem install bundler
The following messages is shown: Successfully installed bundler-1.2.1
After that I restarted terminal and again issued the "bundle install" command in the application/projects directory.
Now factory_girl and factory_girl_rails installed successfully! :-)
Source: gembundler.com
I am attempting to use the packetfu gem. I'm new at ruby on rails, so please bear with me. I'm using rvm with ruby-1.9.3-head [ x86_64 ]. I also have Mac OSX 10.7.4 I am getting this error when trying to run sudo ruby app/models/simpleSniff.rb
/Users/aragorn/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- packetfu (LoadError)
from /Users/aragorn/.rvm/rubies/ruby-1.9.3-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from app/simpleSniff.rb:2:in `<main>'
The code contained in simpleSniff.rb is
#!/usr/bin/env ruby
require 'packetfu'
include PacketFu
iface = "eth1"
cap = Capture.new(:iface => iface, :start => true)
cap.stream.each do |p|
put p
end
$gem list
* LOCAL GEMS *
actionmailer (3.2.8)
actionpack (3.2.8)
activemodel (3.2.8)
activerecord (3.2.8)
activeresource (3.2.8)
activesupport (3.2.8)
arel (3.0.2)
builder (3.0.0)
bundler (1.1.5)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.3.3)
diff-lcs (1.1.3)
erubis (2.7.0)
execjs (1.4.0)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.4)
jquery-rails (2.0.2)
json (1.7.4)
mail (2.4.4)
mime-types (1.19)
multi_json (1.3.6)
packetfu (1.1.5)
pcaprub (0.11.2)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.8)
railties (3.2.8)
rake (0.9.2.2)
rdoc (3.12)
rspec (2.11.0, 0.9.4)
rspec-core (2.11.1)
rspec-expectations (2.11.2)
rspec-mocks (2.11.2)
rubygems-bundler (1.0.6)
rvm (1.11.3.5)
sass (3.2.1)
sass-rails (3.2.5)
sdoc (0.3.16)
sprockets (2.1.3)
sqlite3 (1.3.6)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.33)
uglifier (1.2.7)
Then finally my Gemfile is
source 'http://rubygems.org'
gem "rails", "3.2.8"
gem "rspec", "~> 0.9.2"
gem "sdoc", "~> 0.3.16"
gem "pcaprub", "~> 0.11.2"
gem "packetfu", "~>1.1.5"
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
A) The require problem specifically is because you're sudo'ing and not rvmsudo'ing (which will keep your ruby environment in tact)
B) If PacketFu and Pcaprub and injection and capture all works on your OS X machine, please let me know! I would be both shocked and awed. I've heard rumor it works.. for some people. I've never actually seen it with my own eyeballs, though.
I'm learning to use Sinatra + Datamapper to build a lightweight webapp.
I ran gem install sqlite3 datamapper dm-sqlite-adapter and it seemed to have successfully installed...
I then tried to execute my .rb file which starts with:
require 'sinatra'
require 'datamapper'
and I got an error that it could not find the datamapper file.
C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- datamapper (LoadError)
I also tried with require 'data_mapper' since there is conflicting information on the internetz as to the correct spelling of that gem, but same result.
I then listed all my installed gems (see below) and realilsed that there is no such gem as datamapper or data_mapper. I read so,ewhere that it is a meta-gem, I guess that means it doesn't actually install that one gem but rather all the gems starting with dm- ?
As a last resort I tried gem install data_mapper
and I got the ill fated:
C:\Users\Manu\Sinatra>gem install data_mapper
Building native extensions. This could take a while...
ERROR: Error installing data_mapper:
ERROR: Failed to build gem native extension.
C:/Ruby192/bin/ruby.exe extconf.rb
creating Makefile
make
'make' is not recognized as an internal or external command,operable program or batch file.
Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/json-1.6.4 for inspection.
Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/json-1.6.4/ext/json/ext/parser/gem_make.out
I searched all over and just couldn't find anything to help me troubleshoot this, so hopefully there's someone roaming this forum with a magic wand and a pointy hat!
Many thanks
PS: I'm running ruby 1.9.2p0 installed with the installer
* LOCAL GEMS *
abstract (1.0.0)
actionmailer (3.0.3)
actionpack (3.0.3)
activemodel (3.0.3)
activerecord (3.0.3)
activeresource (3.0.3)
activesupport (3.0.3)
addressable (2.2.6)
arel (2.0.6)
backports (2.3.0)
builder (2.1.2)
bundler (1.0.7)
cgi_multipart_eof_fix (2.5.0)
data_objects (0.10.7)
diff-lcs (1.1.3)
dm-aggregates (1.2.0)
dm-constraints (1.2.0)
dm-core (1.2.0)
dm-do-adapter (1.2.0)
dm-migrations (1.2.0)
dm-sqlite-adapter (1.2.0)
dm-transactions (1.2.0)
do_sqlite3 (0.10.7 x86-mingw32)
erubis (2.6.6)
fastercsv (1.5.4)
gem_plugin (0.2.3)
growl (1.0.3)
i18n (0.5.0)
json_pure (1.6.4)
mail (2.2.12)
mime-types (1.16)
minitest (1.6.0)
mongrel (1.1.5 x86-mingw32)
multi_json (1.0.4)
polyglot (0.3.1)
rack (1.4.0, 1.2.1)
rack-mount (0.6.13)
rack-protection (1.2.0)
rack-test (0.5.6)
rails (3.0.3)
railties (3.0.3)
rake (0.8.7)
rdoc (2.5.8)
rspec (2.8.0)
rspec-core (2.8.0)
rspec-expectations (2.8.0)
rspec-mocks (2.8.0)
rubygems-update (1.8.15)
sinatra (1.3.2)
sqlite3 (1.3.5 x86-mingw32)
sqlite3-ruby (1.3.3, 1.3.2 x86-mingw32)
sys-uname (0.9.0 x86-mingw32)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.9)
trollop (1.16.2)
tzinfo (0.3.23)
yard (0.7.4)
It seems the RubyInstaller Development Kit is missing:
http://rubyinstaller.org/add-ons/devkit/
The devkit installs a C-compiler (and some other stuff like make) to compile C-written parts.
Install it and try again to install the gem - perhaps with option --platform=ruby.
Details can be found at https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
I am trying to install Gitorious in my local computer. However I get this error when I execute the console application:
/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:194:in
block in stub_source_index170':
undefined methodskip_during' for
Bundler::RubygemsIntegration::Deprecate:Class
(NoMethodError)
The ruby code that is executing in /usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb is:
def stub_source_index170(specs)
Gem::SourceIndex.send(:define_method, :initialize) do |*args|
#gems = {}
# You're looking at this thinking: Oh! This is how I make those
# rubygems deprecations go away!
#
# You'd be correct BUT using of this method in production code
# must be approved by the rubygems team itself!
#
# This is your warning. If you use this and don't have approval
# we can't protect you.
#
Deprecate.skip_during do
self.spec_dirs = *args
add_specs(*specs)
end
end
end
I guess the error occurs because the deprecate module is not loaded or something like that... I don't know ruby... but how can I try to correct it?
I have ruby 1.9.1p431 (2011-02-18 revision 30908) with gem 1.8.5
List of gems:
* LOCAL GEMS *
actionmailer (2.3.5) actionpack
(2.3.5) activerecord (2.3.8, 2.3.5)
activeresource (2.3.5) activesupport
(2.3.8, 2.3.5) acts-as-taggable-on
(2.0.6) builder (3.0.0) bundler
(1.0.15) chronic (0.3.0)
daemon_controller (0.2.6) daemons
(1.1.0) diff-lcs (1.1.2) echoe (4.3.1)
eventmachine (0.12.10)
exception_notification (1.0.20090728)
factory_girl (1.3.3) fastthread
(1.0.7) gemcutter (0.6.1) geoip
(0.8.9) hoe (2.8.0) json_pure (1.5.0)
mime-types (1.16) mocha (0.9.10) mysql
(2.8.1) oauth (0.4.4) paperclip
(2.2.9.2) passenger (3.0.7)
proxymachine (1.2.4) rack (1.0.1)
rails (2.3.5) rake (0.8.7) rdiscount
(1.3.1.1) revo-ssl_requirement (1.1.0)
riddle (1.2.2) rmagick (2.13.1)
ruby-hmac (0.4.0) ruby-openid (2.1.8)
ruby-yadis (0.3.4) rubyforge (2.0.4)
shoulda (2.9.2) state_machine (0.9.4)
stomp (1.1) stompserver (0.9.9) tuxml
(0.0.1) validates_url_format_of
(0.1.1) will_paginate (2.3.15)
Many thanks in advance.
Carlos.
Newer versions of Rubygems are deprecating some old internal methods. You can downgrade Rubygems with gem update --system 1.x.y (e.g. 1.5.2) to see if that solves your problem.
Deprecate was namespaced to Gem::Deprecate. You can temporary patch it:
Gem::Deprecate.skip_during do
self.spec_dirs = *args
add_specs(*specs)
end