dailycred 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/Gemfile +1 -1
- data/README.md +10 -9
- data/Rakefile +18 -2
- data/app/controllers/.DS_Store +0 -0
- data/app/controllers/dailycred/sessions_controller.rb +33 -0
- data/app/views/.DS_Store +0 -0
- data/app/views/dailycred/.DS_Store +0 -0
- data/app/views/{sessions → dailycred/sessions}/info.html.erb +0 -0
- data/config/routes.rb +4 -4
- data/dummy/app/controllers/application_controller.rb +12 -0
- data/dummy/app/controllers/dailycred/sessions_controller.rb +33 -0
- data/dummy/app/views/.DS_Store +0 -0
- data/dummy/app/views/dailycred/.DS_Store +0 -0
- data/dummy/app/views/dailycred/sessions/info.html.erb +13 -0
- data/dummy/config/routes.rb +1 -0
- data/lib/dailycred/version.rb +1 -1
- data/lib/generators/dailycred/controllers_generator.rb +12 -0
- data/lib/generators/dailycred/install_generator.rb +62 -0
- data/lib/generators/dailycred/views_generator.rb +12 -0
- data/lib/generators/dailycred_generator.rb +1 -0
- data/test/.DS_Store +0 -0
- data/test/generators/controllers_generator_test.rb +13 -0
- data/test/generators/install_generator_test.rb +28 -0
- data/test/generators/views_generator_test.rb +13 -0
- data/test/support/common_test_helpers_test.rb +71 -0
- data/test/test_helper.rb +7 -2
- metadata +26 -6
- data/app/controllers/sessions_controller.rb +0 -31
- data/test/generator_test.rb +0 -87
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba1c79148b0ed6cfbba255f0cc520f0eee2a6bb8
|
4
|
+
data.tar.gz: 635fd2685f642397c15e74c64237cdcfae8595bc
|
5
5
|
!binary "U0hBNTEy":
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 276cb40be36dcbaa8c64e2753f8516945fd3e990cfd09c842305ca09aebdc5c4caa9655ce7f8cca6bae9199f182adc83623caa373d09ed333acf24f353abceb5
|
7
|
+
data.tar.gz: d2da9e81f623325dd9005a14ea1ca3d1ae5a5d1ee979bca42301de13805d9f8a538c75c05030955a1b470de16159bedecfc1bc19164c7f4c21920ac16e4663aa
|
data/.DS_Store
ADDED
Binary file
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
The Dailycred ruby gem is everything you need to get off the ground running with robust authentication. It includes an [omniauth](https://github.com/intridea/omniauth) provider and a generator to create necessary models and controllers. The generated authentication structure is inspired by [nifty-generators](https://github.com/ryanb/nifty-generators).
|
4
4
|
|
5
|
+
If you are using a rails project that already has authentication, check out this post about [integrating Dailycred with an existing rails project](https://www.dailycred.com/blog/15/how-to-integrate-dailycred-with-an-existing-rails-project).
|
6
|
+
|
5
7
|
If you'd rather only communicate with Dailycred through OAuth and provide your own authentication controllers and models, you can use the [omniauth_dailycred](https://github.com/dailycred/omniauth_dailycred) gem.
|
6
8
|
|
7
9
|
##Installation
|
@@ -13,7 +15,7 @@ To get started using Dailycred with Ruby on Rails, the first thing you need to d
|
|
13
15
|
Make sure you've signed up for Dailycred, and head over to your [settings](https://www.dailycred.com/admin/settings) page to get your API keys. Once you've done that, head back to the command line and run:
|
14
16
|
|
15
17
|
bundle
|
16
|
-
rails g dailycred
|
18
|
+
rails g dailycred:install
|
17
19
|
rake db:migrate
|
18
20
|
|
19
21
|
Thats it! You've successfully added authentication to your app, and you can start signing up users. Run `rails s` to start your
|
@@ -218,15 +220,14 @@ To specify where users should be redirected after authentication actions, setup
|
|
218
220
|
# :after_auth => '/hello', #after login
|
219
221
|
# :after_unauth => '/goodbye' #after logout
|
220
222
|
# }
|
223
|
+
|
224
|
+
### Customization
|
221
225
|
|
222
|
-
|
223
|
-
|
224
|
-
1. Fork it
|
225
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
226
|
-
3. Commit your changes (`git commit -am 'Added some feature'`)
|
227
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
228
|
-
5. Create new Pull Request
|
226
|
+
If you would like to customize this engine's `session_controller` or views, two generators are provided for you.
|
229
227
|
|
230
|
-
|
228
|
+
rails g dailycred:controllers
|
229
|
+
rails g dailycred:views
|
230
|
+
|
231
|
+

|
231
232
|
|
232
233
|
[](https://travis-ci.org/dailycred/dailycred)
|
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
require 'rspec/core/rake_task'
|
4
|
+
require 'rake/testtask'
|
4
5
|
|
5
6
|
desc "Run specs"
|
6
7
|
RSpec::Core::RakeTask.new do |t|
|
@@ -10,13 +11,28 @@ end
|
|
10
11
|
|
11
12
|
desc "run travis"
|
12
13
|
task :travis do
|
13
|
-
["rake spec","
|
14
|
+
["rake spec","rake test"].each do |cmd|
|
14
15
|
puts "Starting to run #{cmd}..."
|
15
16
|
system("export DISPLAY=:99.0 && bundle exec #{cmd}")
|
16
17
|
raise "#{cmd} failed!" unless $?.exitstatus == 0
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
21
|
+
# desc "generator tests"
|
22
|
+
# task :test do
|
23
|
+
# system "bundle exec ruby test/test_helper.rb"
|
24
|
+
# raise "test::unit failed!" unless $?.exitstatus == 0
|
25
|
+
# end
|
26
|
+
|
27
|
+
desc 'Run Devise unit tests.'
|
28
|
+
Rake::TestTask.new(:test) do |t|
|
29
|
+
t.libs << 'lib'
|
30
|
+
t.libs << 'test'
|
31
|
+
t.pattern = 'test/**/*_test.rb'
|
32
|
+
# t.verbose = true
|
33
|
+
# t.warning = true
|
34
|
+
end
|
35
|
+
|
20
36
|
task :default => :travis
|
21
37
|
|
22
38
|
desc 'docs'
|
@@ -31,7 +47,7 @@ task :docs do
|
|
31
47
|
md = ""
|
32
48
|
File.open("README.md", "r") do |infile|
|
33
49
|
while (line = infile.gets)
|
34
|
-
md += line
|
50
|
+
md += line.gsub(/(<code>HTML|javascript|ruby)/, "<code>")
|
35
51
|
end
|
36
52
|
end
|
37
53
|
doc = Maruku.new(md)
|
Binary file
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Dailycred
|
2
|
+
class SessionsController < ApplicationController
|
3
|
+
before_filter :authenticate, :only => [:destroy]
|
4
|
+
before_filter :current_user
|
5
|
+
include Dailycred::Helpers
|
6
|
+
|
7
|
+
# Callback Route for OAuth flow
|
8
|
+
def create
|
9
|
+
@user = User.find_or_create_with_omniauth auth_hash
|
10
|
+
session[:user_id] = @user.id
|
11
|
+
redirect_to_auth
|
12
|
+
end
|
13
|
+
|
14
|
+
#GET /logout
|
15
|
+
def destroy
|
16
|
+
session[:user_id] = nil
|
17
|
+
redirect_to_unauth
|
18
|
+
end
|
19
|
+
|
20
|
+
def failure
|
21
|
+
redirect_to_unauth notice: params[:message]
|
22
|
+
end
|
23
|
+
|
24
|
+
def info
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def auth_hash
|
30
|
+
h = request.env['omniauth.auth']
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/app/views/.DS_Store
ADDED
Binary file
|
Binary file
|
File without changes
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Dailycred::Engine.routes.draw do
|
2
|
-
get "/:provider/callback" => "sessions#create"
|
3
|
-
get "/logout" => "sessions#destroy", :as => :logout
|
4
|
-
get "/" => "sessions#info", :as => :auth_info
|
2
|
+
get "/:provider/callback" => "dailycred/sessions#create"
|
3
|
+
get "/logout" => "dailycred/sessions#destroy", :as => :logout
|
4
|
+
get "/" => "dailycred/sessions#info", :as => :auth_info
|
5
5
|
# get "/dailycred", :as => :login
|
6
|
-
get "/failure" => "sessions#failure"
|
6
|
+
get "/failure" => "dailycred/sessions#failure"
|
7
7
|
end
|
@@ -1,4 +1,16 @@
|
|
1
1
|
class ApplicationController < ActionController::Base
|
2
|
+
helper_method :current_user
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
# helper method for getting the current signed in user
|
7
|
+
def current_user
|
8
|
+
begin
|
9
|
+
@current_user || User.find(session[:user_id]) if session[:user_id]
|
10
|
+
rescue
|
11
|
+
nil
|
12
|
+
end
|
13
|
+
end
|
2
14
|
helper_method :current_user
|
3
15
|
|
4
16
|
private
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Dailycred
|
2
|
+
class SessionsController < ApplicationController
|
3
|
+
before_filter :authenticate, :only => [:destroy]
|
4
|
+
before_filter :current_user
|
5
|
+
include Dailycred::Helpers
|
6
|
+
|
7
|
+
# Callback Route for OAuth flow
|
8
|
+
def create
|
9
|
+
@user = User.find_or_create_with_omniauth auth_hash
|
10
|
+
session[:user_id] = @user.id
|
11
|
+
redirect_to_auth
|
12
|
+
end
|
13
|
+
|
14
|
+
#GET /logout
|
15
|
+
def destroy
|
16
|
+
session[:user_id] = nil
|
17
|
+
redirect_to_unauth
|
18
|
+
end
|
19
|
+
|
20
|
+
def failure
|
21
|
+
redirect_to_unauth notice: params[:message]
|
22
|
+
end
|
23
|
+
|
24
|
+
def info
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def auth_hash
|
30
|
+
h = request.env['omniauth.auth']
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% if current_user %>
|
2
|
+
<p>Hello <%= current_user.email %> <br>
|
3
|
+
<%= link_to 'Logout', dailycred_engine.logout_path %>
|
4
|
+
<br><%= link_to 'connect with facebook', connect_user(:facebook) %>
|
5
|
+
<br><%= link_to 'connect with google', connect_user(:google) %>
|
6
|
+
<br><%= link_to 'connect with twitter', connect_user(:twitter) %>
|
7
|
+
</p>
|
8
|
+
<% else %>
|
9
|
+
<%= link_to 'Log In', login_path() %>
|
10
|
+
<br><%= link_to 'connect with facebook', connect_path(:identity_provider => :facebook) %>
|
11
|
+
<br><%= link_to 'connect with google', connect_path(:identity_provider => :google) %>
|
12
|
+
<br><%= link_to 'connect with twitter',connect_path(:identity_provider => :twitter) %>
|
13
|
+
<% end %>
|
data/dummy/config/routes.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
Dummy::Application.routes.draw do
|
2
|
+
mount Dailycred::Engine => '/auth', :as => 'dailycred_engine'
|
2
3
|
#mount Dailycred::Engine => '/auth', :as => 'dailycred_engine'
|
3
4
|
# The priority is based upon order of creation: first created -> highest priority.
|
4
5
|
# See how all your routes lay out with "rake routes".
|
data/lib/dailycred/version.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
module Dailycred
|
3
|
+
module Generators
|
4
|
+
class ControllersGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path('../../../../app/controllers/', __FILE__)
|
6
|
+
|
7
|
+
def copy_controllers
|
8
|
+
directory "dailycred", "app/controllers/dailycred"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'test_helper'
|
3
|
+
module Dailycred
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
source_root File.expand_path('../../templates', __FILE__)
|
7
|
+
|
8
|
+
CLIENT_ID_DEFAULT = 'YOUR_CLIENT_ID'
|
9
|
+
CLIENT_SECRET_DEFAULT = 'YOUR_SECRET_KEY'
|
10
|
+
|
11
|
+
argument :client_id, :type => :string, :default => CLIENT_ID_DEFAULT, :banner => 'dailycred_client_id'
|
12
|
+
argument :secret_key, :type => :string, :default => CLIENT_SECRET_DEFAULT, :banner => 'dailycred_secret_key'
|
13
|
+
class_option :bootstrap, :type => :boolean, :default => true,
|
14
|
+
:description => "Indicates whether you want to generate the user model (with migration)
|
15
|
+
and mount the engine's sessions_controller.
|
16
|
+
Use --skip-bootstrap if you want are adding this to project that already has authentication
|
17
|
+
and you only want to use the Omniauth adapter and helper methods."
|
18
|
+
|
19
|
+
|
20
|
+
APP_ROUTES_LINES =<<-EOS
|
21
|
+
mount Dailycred::Engine => '/auth', :as => 'dailycred_engine'
|
22
|
+
EOS
|
23
|
+
|
24
|
+
APP_CONTROLLER_LINES =<<-EOS
|
25
|
+
helper_method :current_user
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
# helper method for getting the current signed in user
|
30
|
+
def current_user
|
31
|
+
begin
|
32
|
+
@current_user || User.find(session[:user_id]) if session[:user_id]
|
33
|
+
rescue
|
34
|
+
nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
EOS
|
38
|
+
|
39
|
+
def install
|
40
|
+
puts 'installing'
|
41
|
+
# copy initializer
|
42
|
+
template "omniauth.rb", "config/initializers/omniauth.rb"
|
43
|
+
# get client info from login if they didnt specify info
|
44
|
+
puts "Please manually configure your API keys in config/initializers/omniauth.rb"
|
45
|
+
if options.bootstrap?
|
46
|
+
# application controller
|
47
|
+
insert_into_file "app/controllers/application_controller.rb", APP_CONTROLLER_LINES, :after => /class ApplicationController\n|class ApplicationController .*\n/
|
48
|
+
# user model
|
49
|
+
copy_file "user.rb", "app/models/user.rb"
|
50
|
+
# user migration
|
51
|
+
copy_file "migration_create_user.rb", "db/migrate/#{Time.now.strftime('%Y%m%d%H%M%S')}_create_users.rb"
|
52
|
+
# confiffg/routes
|
53
|
+
inject_into_file "config/routes.rb", APP_ROUTES_LINES, :after => ".draw do\n"
|
54
|
+
else
|
55
|
+
puts "Make sure you implement your omniauth callback. For directions visit https://github.com/intridea/omniauth#integrating-omniauth-into-your-application"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
module Dailycred
|
3
|
+
module Generators
|
4
|
+
class ViewsGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path('../../../../app/views/', __FILE__)
|
6
|
+
|
7
|
+
def copy_views
|
8
|
+
directory "dailycred", "app/views/dailycred"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -36,6 +36,7 @@ class DailycredGenerator < Rails::Generators::Base
|
|
36
36
|
EOS
|
37
37
|
|
38
38
|
def install
|
39
|
+
puts "DEPRECATED: calling `rails generate dailycred` has been deprecated. Please use `rails generate dailycred:install`."
|
39
40
|
# copy initializer
|
40
41
|
template "omniauth.rb", "config/initializers/omniauth.rb"
|
41
42
|
# get client info from login if they didnt specify info
|
data/test/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class ViewsGeneratorTest < Rails::Generators::TestCase
|
3
|
+
|
4
|
+
include Dailycred::GeneratorTestHelpers
|
5
|
+
destination File.expand_path("../support/tmp/myproject", File.dirname(__FILE__))
|
6
|
+
tests Dailycred::Generators::ControllersGenerator
|
7
|
+
|
8
|
+
test "creates correct controller files" do
|
9
|
+
run_generator
|
10
|
+
assert_file "app/controllers/dailycred/sessions_controller.rb"
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class InstallGeneratorTest < Rails::Generators::TestCase
|
3
|
+
|
4
|
+
include Dailycred::GeneratorTestHelpers
|
5
|
+
include Dailycred::GeneratorTest
|
6
|
+
destination File.expand_path("../support/tmp/myproject", File.dirname(__FILE__))
|
7
|
+
tests Dailycred::Generators::InstallGenerator
|
8
|
+
|
9
|
+
test "install generator works with input" do
|
10
|
+
test_generator ["aaa","bbb"]
|
11
|
+
assert_credentials "aaa", "bbb"
|
12
|
+
end
|
13
|
+
|
14
|
+
test "install generator works without input" do
|
15
|
+
test_generator
|
16
|
+
assert_credentials "YOUR_CLIENT_ID", "YOUR_SECRET_KEY"
|
17
|
+
end
|
18
|
+
|
19
|
+
test "install generator works without bootstrap" do
|
20
|
+
test_generator [], false
|
21
|
+
end
|
22
|
+
|
23
|
+
test "credentials work when skipping bootstrap" do
|
24
|
+
test_generator ["aaa", "bbb"], true
|
25
|
+
assert_credentials "aaa", "bbb"
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class ControllersGeneratorTest < Rails::Generators::TestCase
|
3
|
+
|
4
|
+
include Dailycred::GeneratorTestHelpers
|
5
|
+
destination File.expand_path("../support/tmp/myproject", File.dirname(__FILE__))
|
6
|
+
tests Dailycred::Generators::ViewsGenerator
|
7
|
+
|
8
|
+
test "creates correct view files" do
|
9
|
+
run_generator
|
10
|
+
assert_file "app/views/dailycred/sessions/info.html.erb"
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Dailycred
|
2
|
+
module GeneratorTestHelpers
|
3
|
+
def self.included base
|
4
|
+
base.setup :prepare_destination
|
5
|
+
base.teardown :remove_files
|
6
|
+
end
|
7
|
+
|
8
|
+
def prepare_destination
|
9
|
+
# Must set before requiring generator libs.
|
10
|
+
tmp_root = File.dirname(__FILE__) + "/tmp"
|
11
|
+
project_name = "myproject"
|
12
|
+
app_root = File.join(tmp_root, project_name)
|
13
|
+
@rails_root = app_root
|
14
|
+
FileUtils.mkdir_p @rails_root
|
15
|
+
Dir.mkdir("#{@rails_root}/config") unless File.exists?("#{@rails_root}/config")
|
16
|
+
File.open("#{@rails_root}/config/routes.rb", 'w') do |f|
|
17
|
+
f.puts "ActionController::Routing::Routes.draw do\n\nend"
|
18
|
+
end
|
19
|
+
Dir.mkdir("#{@rails_root}/app") unless File.exists?("#{@rails_root}/app")
|
20
|
+
Dir.mkdir("#{@rails_root}/app/controllers") unless File.exists?("#{@rails_root}/app/controllers")
|
21
|
+
File.open("#{@rails_root}/app/controllers/application_controller.rb", 'w') do |f|
|
22
|
+
f.puts "class ApplicationController < ActionController::Base\n\nend"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def remove_files
|
27
|
+
FileUtils.rm_rf File.dirname(__FILE__) + "/tmp"
|
28
|
+
end
|
29
|
+
|
30
|
+
def assert_credentials client_id, client_secret
|
31
|
+
assert_file "config/initializers/omniauth.rb" do |config|
|
32
|
+
assert config.include? "Rails.configuration.DAILYCRED_CLIENT_ID = \"#{client_id}\""
|
33
|
+
assert config.include? "Rails.configuration.DAILYCRED_SECRET_KEY = \"#{client_secret}\""
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
module Dailycred
|
41
|
+
module GeneratorTest
|
42
|
+
def test_generator args=[], bootstrap=true
|
43
|
+
unless bootstrap
|
44
|
+
args += ["a", "b"] if args.empty?
|
45
|
+
args << "--skip-bootstrap"
|
46
|
+
end
|
47
|
+
run_generator args
|
48
|
+
assert_file "config/initializers/omniauth.rb" do |config|
|
49
|
+
assert config.include? 'Rails.configuration.DAILYCRED_CLIENT_ID ='
|
50
|
+
assert config.include? 'Rails.configuration.DAILYCRED_SECRET_KEY ='
|
51
|
+
end
|
52
|
+
|
53
|
+
if bootstrap
|
54
|
+
assert_file "config/routes.rb", /(#{Regexp.escape("mount Dailycred::Engine => '/auth', :as => 'dailycred_engine'")})/
|
55
|
+
|
56
|
+
assert_file "app/models/user.rb" do |model|
|
57
|
+
assert model.include? "acts_as_dailycred"
|
58
|
+
end
|
59
|
+
|
60
|
+
assert_file "app/controllers/application_controller.rb" do |controller|
|
61
|
+
end
|
62
|
+
|
63
|
+
assert_migration "db/migrate/create_users.rb" do |migration|
|
64
|
+
end
|
65
|
+
else
|
66
|
+
assert_no_file "app/models/user.rb"
|
67
|
+
assert_no_migration "db/migrate/create_users.rb"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'test/unit'
|
2
|
-
|
2
|
+
require 'rails/generators'
|
3
|
+
require 'fileutils'
|
3
4
|
|
5
|
+
Dir["./lib/*.rb"].each {|file| require file }
|
6
|
+
Dir["./lib/dailycred/*.rb"].each {|file| require file }
|
7
|
+
Dir["./lib/generators/dailycred/*.rb"].each {|file| require file }
|
8
|
+
Dir["./test/support/*.rb"].each {|file| require file }
|
9
|
+
require 'generators/dailycred_generator'
|
4
10
|
|
5
|
-
require_relative './generator_test.rb'
|
6
11
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dailycred
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hank Stoever
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: omniauth
|
@@ -45,6 +45,7 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
+
- .DS_Store
|
48
49
|
- .gitignore
|
49
50
|
- .travis.yml
|
50
51
|
- Gemfile
|
@@ -52,8 +53,11 @@ files:
|
|
52
53
|
- LICENSE
|
53
54
|
- README.md
|
54
55
|
- Rakefile
|
55
|
-
- app/controllers
|
56
|
-
- app/
|
56
|
+
- app/controllers/.DS_Store
|
57
|
+
- app/controllers/dailycred/sessions_controller.rb
|
58
|
+
- app/views/.DS_Store
|
59
|
+
- app/views/dailycred/.DS_Store
|
60
|
+
- app/views/dailycred/sessions/info.html.erb
|
57
61
|
- config/routes.rb
|
58
62
|
- dailycred.gemspec
|
59
63
|
- docs/lib/dailycred.html
|
@@ -159,11 +163,15 @@ files:
|
|
159
163
|
- dummy/app/assets/stylesheets/application.css
|
160
164
|
- dummy/app/controllers/application_controller.rb
|
161
165
|
- dummy/app/controllers/concerns/.keep
|
166
|
+
- dummy/app/controllers/dailycred/sessions_controller.rb
|
162
167
|
- dummy/app/helpers/application_helper.rb
|
163
168
|
- dummy/app/mailers/.keep
|
164
169
|
- dummy/app/models/.keep
|
165
170
|
- dummy/app/models/concerns/.keep
|
166
171
|
- dummy/app/models/user.rb
|
172
|
+
- dummy/app/views/.DS_Store
|
173
|
+
- dummy/app/views/dailycred/.DS_Store
|
174
|
+
- dummy/app/views/dailycred/sessions/info.html.erb
|
167
175
|
- dummy/app/views/layouts/application.html.erb
|
168
176
|
- dummy/bin/bundle
|
169
177
|
- dummy/bin/rails
|
@@ -216,6 +224,9 @@ files:
|
|
216
224
|
- lib/dailycred/user.rb
|
217
225
|
- lib/dailycred/version.rb
|
218
226
|
- lib/generators/USAGE
|
227
|
+
- lib/generators/dailycred/controllers_generator.rb
|
228
|
+
- lib/generators/dailycred/install_generator.rb
|
229
|
+
- lib/generators/dailycred/views_generator.rb
|
219
230
|
- lib/generators/dailycred_generator.rb
|
220
231
|
- lib/generators/templates/info.html.erb
|
221
232
|
- lib/generators/templates/login.html.erb
|
@@ -228,7 +239,11 @@ files:
|
|
228
239
|
- spec/helper_spec.rb
|
229
240
|
- spec/support/dailycred_spec.rb
|
230
241
|
- spec/support/shared_examples.rb
|
231
|
-
- test
|
242
|
+
- test/.DS_Store
|
243
|
+
- test/generators/controllers_generator_test.rb
|
244
|
+
- test/generators/install_generator_test.rb
|
245
|
+
- test/generators/views_generator_test.rb
|
246
|
+
- test/support/common_test_helpers_test.rb
|
232
247
|
- test/test_helper.rb
|
233
248
|
homepage: https://github.com/dailycred/dailycred
|
234
249
|
licenses: []
|
@@ -257,5 +272,10 @@ test_files:
|
|
257
272
|
- spec/helper_spec.rb
|
258
273
|
- spec/support/dailycred_spec.rb
|
259
274
|
- spec/support/shared_examples.rb
|
260
|
-
- test
|
275
|
+
- test/.DS_Store
|
276
|
+
- test/generators/controllers_generator_test.rb
|
277
|
+
- test/generators/install_generator_test.rb
|
278
|
+
- test/generators/views_generator_test.rb
|
279
|
+
- test/support/common_test_helpers_test.rb
|
261
280
|
- test/test_helper.rb
|
281
|
+
has_rdoc:
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class SessionsController < ApplicationController
|
2
|
-
before_filter :authenticate, :only => [:destroy]
|
3
|
-
before_filter :current_user
|
4
|
-
include Dailycred::Helpers
|
5
|
-
|
6
|
-
# Callback Route for OAuth flow
|
7
|
-
def create
|
8
|
-
@user = User.find_or_create_with_omniauth auth_hash
|
9
|
-
session[:user_id] = @user.id
|
10
|
-
redirect_to_auth
|
11
|
-
end
|
12
|
-
|
13
|
-
#GET /logout
|
14
|
-
def destroy
|
15
|
-
session[:user_id] = nil
|
16
|
-
redirect_to_unauth
|
17
|
-
end
|
18
|
-
|
19
|
-
def failure
|
20
|
-
redirect_to_unauth notice: params[:message]
|
21
|
-
end
|
22
|
-
|
23
|
-
def info
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def auth_hash
|
29
|
-
h = request.env['omniauth.auth']
|
30
|
-
end
|
31
|
-
end
|
data/test/generator_test.rb
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
require 'test/unit'
|
3
|
-
# require 'mocha'
|
4
|
-
require_relative "../lib/generators/dailycred_generator.rb"
|
5
|
-
class GeneratorTest < Rails::Generators::TestCase
|
6
|
-
tests DailycredGenerator
|
7
|
-
destination File.expand_path("./tmp/myproject", File.dirname(__FILE__))
|
8
|
-
|
9
|
-
setup :prepare_destination
|
10
|
-
|
11
|
-
setup do
|
12
|
-
# Must set before requiring generator libs.
|
13
|
-
TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
|
14
|
-
PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
|
15
|
-
app_root = File.join(TMP_ROOT, PROJECT_NAME)
|
16
|
-
if defined?(APP_ROOT)
|
17
|
-
APP_ROOT.replace(app_root)
|
18
|
-
else
|
19
|
-
APP_ROOT = app_root
|
20
|
-
end
|
21
|
-
if defined?(RAILS_ROOT)
|
22
|
-
RAILS_ROOT.replace(app_root)
|
23
|
-
else
|
24
|
-
RAILS_ROOT = app_root
|
25
|
-
end
|
26
|
-
Dir.mkdir("#{RAILS_ROOT}/config") unless File.exists?("#{RAILS_ROOT}/config")
|
27
|
-
File.open("#{RAILS_ROOT}/config/routes.rb", 'w') do |f|
|
28
|
-
f.puts "ActionController::Routing::Routes.draw do\n\nend"
|
29
|
-
end
|
30
|
-
Dir.mkdir("#{RAILS_ROOT}/app") unless File.exists?("#{RAILS_ROOT}/app")
|
31
|
-
Dir.mkdir("#{RAILS_ROOT}/app/controllers") unless File.exists?("#{RAILS_ROOT}/app/controllers")
|
32
|
-
File.open("#{RAILS_ROOT}/app/controllers/application_controller.rb", 'w') do |f|
|
33
|
-
f.puts "class ApplicationController < ActionController::Base\n\nend"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
teardown do
|
38
|
-
FileUtils.rm_rf "#{RAILS_ROOT}/app"
|
39
|
-
FileUtils.rm_rf "#{RAILS_ROOT}/config"
|
40
|
-
FileUtils.rm_rf "#{RAILS_ROOT}/db"
|
41
|
-
end
|
42
|
-
|
43
|
-
test "generator works with input" do
|
44
|
-
test_generator ["aaa","bbb"]
|
45
|
-
assert_credentials "aaa", "bbb"
|
46
|
-
end
|
47
|
-
|
48
|
-
test "generator works when skipping bootstrap" do
|
49
|
-
test_generator ["aaa", "bbb", "--skip-bootstrap"]
|
50
|
-
end
|
51
|
-
|
52
|
-
# test "generator works with login" do
|
53
|
-
# generator_class.any_instance.stubs(:get_input).returns(["localtest@dailycred.com","password"])
|
54
|
-
# test_generator
|
55
|
-
# assert_credentials "e92e20bf-e0a4-49b4-8a82-ff1b65d80017", "9adf81a8-ce97-4bcb-9c1f-c09f5fc7b6b8-0d1a4553-496d-450e-80fd-9e8d0552a920"
|
56
|
-
# end
|
57
|
-
|
58
|
-
private
|
59
|
-
|
60
|
-
def test_generator args=[]
|
61
|
-
run_generator args
|
62
|
-
assert_file "config/initializers/omniauth.rb" do |config|
|
63
|
-
assert config.include? 'Rails.configuration.DAILYCRED_CLIENT_ID ='
|
64
|
-
assert config.include? 'Rails.configuration.DAILYCRED_SECRET_KEY ='
|
65
|
-
end
|
66
|
-
|
67
|
-
assert_file "config/routes.rb", /(#{Regexp.escape("mount Dailycred::Engine => '/auth', :as => 'dailycred_engine'")})/
|
68
|
-
|
69
|
-
assert_file "app/models/user.rb" do |model|
|
70
|
-
assert model.include? "acts_as_dailycred"
|
71
|
-
end
|
72
|
-
|
73
|
-
assert_file "app/controllers/application_controller.rb" do |controller|
|
74
|
-
end
|
75
|
-
|
76
|
-
assert_migration "db/migrate/create_users.rb" do |migration|
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def assert_credentials client_id, client_secret
|
81
|
-
assert_file "config/initializers/omniauth.rb" do |config|
|
82
|
-
assert config.include? "Rails.configuration.DAILYCRED_CLIENT_ID = \"#{client_id}\""
|
83
|
-
assert config.include? "Rails.configuration.DAILYCRED_SECRET_KEY = \"#{client_secret}\""
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|