Project

gitkeeper

0.0
No commit activity in last 3 years
No release in over 3 years
An engine for Rails 4.1.0, MongoID, OmniAuth, to Sign in with Github
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.2.1
~> 4.1.0.rc2
 Project Readme

Gitkeeper for Rails 4.1.0¶ ↑

<img src=“https://codeclimate.com/github/lgs/gitkeeper.png” /> <img src=“https://gemnasium.com/lgs/gitkeeper.png” alt=“Dependency Status” />

First register your app on GitHub

https://github.com/settings/applications/new

Name

localhost

URL

http://localhost:3000/

Callback URL

http://localhost:3000/auth/github/callback

Set environment variables for your local OS ( follow Linux/bash export )

export GITHUB_KEY=put-your-Client-ID-here
export GITHUB_SECRET=put-your-Client-Secret-here

Now create a brand new rails app. Please note we do skip Test::Unit files, skip Active Record files and we don’t run bundle install.

rails new host_app -T -O -B

Change directory to host_app

cd host_app

Add mongoid (4.0.0) for rails 4.1.0

echo "gem 'mongoid', :git => 'git://github.com/mongoid/mongoid.git'" >> Gemfile

Include the engine in your app

echo "gem 'gitkeeper'" >> Gemfile
bundle install

Mount the engine adding the following to config/routes.rb

HostApp::Application.routes.draw do
  mount Gitkeeper::Engine => "/auth"
end

Config mongoid ( host_app/config/mongoid.yml ) and start MongoDB

development:
  sessions:
    default:
      database: gitkeeper_dev
      hosts:
        - localhost:27017

Run the server

rails s

Visit the following URL

http://localhost:3000/auth

N O T E :¶ ↑

This is a mountable (ie, isolated) Rails engine, which has to be mounted on a new or pre-existing Rails 4.1.0 app. The User model here, is ‘name spaced’ within gitkeeper_users, as you can see from the following Rails logs :

Started GET "/auth/github" for 127.0.0.1 at 2013-08-25 14:49:09 +0200
I, [2013-08-25T14:49:09.013975 #7623]  INFO -- omniauth: (github) Request phase initiated.

Started GET "/auth/github/callback?code=e70add25e236b56eba1b&state=140f77dbcddf2f013f8511ac2fbf61b0ed3e6481e434104a" for 127.0.0.1 at 2013-08-25 14:49:39 +0200
I, [2013-08-25T14:49:39.548098 #7623]  INFO -- omniauth: (github) Callback phase initiated.
Processing by Gitkeeper::AuthController#create as HTML
  Parameters: {"code"=>"e70a345236b56iafdf7b", "state"=>"140f77dfbf61b0e12345asdddf04a", "provider"=>"github"}
  MOPED: 127.0.0.1:27017 COMMAND      database=admin command={:ismaster=>1} (1.1914ms)
  MOPED: 127.0.0.1:27017 QUERY        database=gitwatcher_new collection=gitkeeper_users selector={"$query"=>{"nickname"=>"lgs"}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (0.7005ms)
Redirected to http://localhost:3001/auth
Completed 302 Found in 4ms

Started GET "/auth" for 127.0.0.1 at 2013-08-25 14:49:40 +0200
Processing by Gitkeeper::AuthController#index as HTML
  MOPED: 127.0.0.1:27017 QUERY        database=gitwatcher_new collection=gitkeeper_users selector={"_id"=>"5219f45777c68000001"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.5410ms)
  Rendered /home/github/gitkeeper/app/views/gitkeeper/auth/index.html.erb within layouts/gitkeeper/application (0.2ms)
Completed 200 OK in 7ms (Views: 4.3ms)

and by querying directly mongodb with mongo shell :

> db.gitkeeper_users.find()
{ "_id" : ObjectId("5219f45777c68000001"), "provider" : "github", "uid" : "1573", "name" : "Luca G. Soave", "email" : "luca.soave@gmail.com", "nickname" : "lgs" }
>

keep your way on merging, mixing, extending your hosting Rails (main)app User model. Fore more infos, see also : The Semi-Isolated Rails Engine and Extending a Model From an Engine in Your Rails App and also “Getting Started with Engines” - Improving engine functionality

This project rocks and uses MIT-LICENSE.

Copyright © 2013 Luca G. Soave