Skip to content
Devise ORM for Neo4j
Find file
Pull request Compare This branch is 32 commits behind neo4jrb:master.
Latest commit 31ec531 Aug 27, 2014 @andreasronge Use devise 3.3.0, still 4 failing tests
  1) Failure:
AuthenticationOthersTest#test_sign_in_stub_in_json_format [/Users/andreasronge/.rvm/gems/ruby-2.1.2/gems/devise-3.3.0/test/integration/authenticatable_test.rb:492]:
Expected /"password":null/ to match "{\"user\":{\"username\":null,\"facebook_token\":null,\"email\":\"\",\"created_at\":null,\"updated_at\":null}}".

  2) Failure:
AuthenticationOthersTest#test_sign_in_stub_in_json_with_non_attribute_key [/Users/andreasronge/.rvm/gems/ruby-2.1.2/gems/devise-3.3.0/test/integration/authenticatable_test.rb:499]:
Expected /"other_key":null/ to match "{\"user\":{\"username\":null,\"facebook_token\":null,\"email\":\"\",\"created_at\":null,\"updated_at\":null}}".

  3) Failure:
SerializableTest#test_should_include_unsafe_keys_on_JSON_if_a_force_except_is_provided [/Users/andreasronge/.rvm/gems/ruby-2.1.2/gems/devise-3.3.0/test/models/serializable_test.rb:34]:
Expected {"username"=>"usertest", "facebook_token"=>nil, "email"=>"", "created_at"=>"2014-08-27T09:44:08.000+00:00", "updated_at"=>"2014-08-27T09:44:08.000+00:00"} to not have key "email"

  4) Failure:
SerializableTest#test_should_not_include_unsafe_keys_on_JSON_even_if_a_new_except_is_provided [/Users/andreasronge/.rvm/gems/ruby-2.1.2/gems/devise-3.3.0/test/models/serializable_test.rb:29]:
Expected {"username"=>"usertest", "facebook_token"=>nil, "email"=>"", "created_at"=>"2014-08-27T09:44:08.000+00:00", "updated_at"=>"2014-08-27T09:44:08.000+00:00"} to not have key "email"
Failed to load latest commit information.
Rakefile Make sure orm adapters are loaded (these are loaded in devise, but th… Jul 8, 2014

Devise-Neo4j Build Status

A gem for Neo4j integration with the Devise authentication framework.

Neo4j: Devise:



Add the neo4j and devise-neo4j gems to your Gemfile:

gem "neo4j", "~> 3.0.0.alpha.7"
gem "devise-neo4j", "~> 2.0.0.alpha.1"

Run the bundle install command:

bundle install

Then run the devise install generator and optionally update or create a devise-neo4j model:

rails g devise:install --orm=neo4j
rails g neo4j:devise MODEL

Now the model is setup like a default devise model, meaning you can do things like adding a before_filter in a controller to restrict access to logged-in users only:

before_filter :authenticate_<your model name>!

Example App

You can see a very simple app that demonstrates Neo4j and devise here:

gem install rails
rails new myapp -m -O
cd myapp
add to your Gem File :
gem 'devise'
gem 'devise-neo4j', :git => ''
rails generate devise:install --orm=neo4j

# install the database unless you already have a neo4j database, or use JRuby Embedded Neo4j db
rake neo4j:install[community-2.1.2] # check which one is the latest
rake neo4j:start

rails g neo4j:devise User
# add to your config/routes.rb:
  devise_for :users
  root :to => "secrets#show"

# generate a controller for the protected content
rails g controller secrets show

# in app/controllers/sercrets_controller.rb delete line get 'secrets/show' and add:
  before_filter :authenticate_user!

# in app/views/secrets/show.html.erb: add:
  <p>Shhhh... this page is only visible to logged-in users!</p>

  <%= link_to "Log out", destroy_user_session_path, method: :delete  %>

rails s

# go to http://localhost:3000/users/sign_up


For JRuby

JRUby neo4j has an embedded server as part of the gem, so nothing else is needed to get set up and running.

For Ruby

There is a Vagrant setup that installs neo4j so that you can easily get started:

$ vagrant up

The neo4j web interface is forward to port 7474 on your local machine: http://localhost:7474.

Note on testing

To run all test, simply type rake If you want to run a specific Devise test (see the devise github repository) set the DEVISE_TEST_PATH.

Example: rake DEVISE_TEST_PATH=integration/confirmable_test.rb

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.


Copyright (c) 2011 Ben Jackson. See LICENSE for details.

Something went wrong with that request. Please try again.