Skip to content

Experimental integration of Neo4j with Ruby Object Mapper

Notifications You must be signed in to change notification settings

rom-rb/rom-neo4j

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROM::Neo4j

Gem Version Build Status Dependency Status Code Climate Test Coverage Inline docs

Map objects returned from Neo4j graph traversals using the Ruby Object Mapper toolkit.

Install

Install with Rubygems:

gem install rom-neo4j

Or add the dependency to your Gemfile:

gem 'rom-neo4j'

Right now, the fastest way to get started is to run the tests.

You’ll need to have Neo4j installed on your system. If it’s not already running, start the database server with:

neo4j start

To load the sample movies graph, go to http://localhost:7474/browser/ and click through the instructions or type :play movie graph in the console to start.

Once the movies graph is loaded, the integration specs should run:

rspec specs/integration

Examples

Cypher DSL

setup.relation(:movies) do
  matches m: :Movie
  returns m: [:title, :released, :tagline]

  def titled(title)
    where('m.title' => title)
  end
end

movie = rom.relation(:movies).titled('The Matrix').one
movie.title   # => "The Matrix"
movie.updated # => 1999

Raw Cypher Queries

setup.relation(:directors) do
  matches '(director:Person)-[:DIRECTED]->(movie:Movie)'
  returns 'DISTINCT director.name as name'

  def by_movie(title)
    where('movie.title' => title)
  end
end

director = rom.relation(:directors).by_movie('RescueDawn').one
director.name # => "Werner Herzog"

Roadmap

  • 0.1.0 Relation/Dataset for mapping cypher traversals
  • 0.2.0 Basic Commands integration
  • 0.4.0 Documentation and usage examples
  • 0.5.0 Prefix mapping and node/rel helpers

About

Experimental integration of Neo4j with Ruby Object Mapper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages