##Installation
gem install rmap
or add the following to your gem file:
gem 'rmap'
and then run bundle install from your shell.
##Basic configuration
require 'rmap'
db = Rmap::Database.new :database => 'rmap', :username => 'root'
You can get more configuration options by going to the mysql2 gem documentation, as rmap wraps the mysql2 gem and simply passes through the conf hash to it:
For instance a more advanced configuration might be:
require 'rmap'
db = Rmap::Database.new :database => 'rmap', :host => 'localhost', :username => 'root', :password => "secret"
The following will return a representation of the 'posts' table:
db.posts
You can insert rows into the posts table by doing the following:
db.posts.insert(:title => "Hello World", :body => "This is a test")
You can list all the posts by doing the following:
db.posts.all.each do |post|
puts "title #{post.title}"
end
You can list all the posts that contain the word apple by doing the following:
db.posts.contains(:body, "apple").all.each do |post|
puts "title #{post.title}"
end
You can list all the posts that contain the word apple or pear by doing the following:
db.posts.contains(:body, ["apple", "pear"]).all.each do |post|
puts "title #{post.title}"
end
You can retrieve a particular post (row) by doing the following:
db.posts.eq(:id, 7).first
and then you can print the title to the screen:
puts db.posts.eq(:id, 7).first.title
Joins are really easy. To retrieve all the posts by gmail users, you can do the following:
db.users.contains(:email, "@gmail.com").posts.all
You can delete all the posts by gmail users by doing the following:
db.users.contains(:email, "@gmail.com").posts.delete
You can update all the posts by gmail users by doing the following:
db.users.contains(:email, "@gmail.com").posts.update(:published => true, :last_published => Time.now)
or if you just want to update a column:
db.users.contains(:email, "@gmail.com").posts.published = true
more coming soon....
Rmap is released under the MIT license: