kitty_gen 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -61,6 +61,7 @@ h2. How To Use
61
61
  @kittygen your-new-app-name@
62
62
 
63
63
  h2. All Possible Recipes
64
+ login_with_facebook_and_twitter
64
65
  reload_css_and_html_in_browser_on_save
65
66
 
66
67
  formtastic
@@ -13,3 +13,4 @@ decent_exposure
13
13
  factory_girl_with_generators
14
14
  formtastic
15
15
  reload_css_and_html_in_browser_on_save
16
+ login_with_facebook_and_twitter
data/lib/kitty_gen/cli.rb CHANGED
@@ -2,12 +2,43 @@ module KittyGen
2
2
  class Cli
3
3
 
4
4
  def start(command_line_arguments)
5
- app_name = ARGV.first
5
+ case ARGV[0]
6
+ when "new"
7
+ new(ARGV[1])
8
+ when list
9
+ list
10
+ when add
11
+ add(ARGV[1])
12
+ else
13
+ %Q{Commands available:
14
+ kitty_gen new APPNAME # create a new app APPNAME using preffered recipes
15
+ kitty_gen list # lists available recipes
16
+ kitty_gen add RECIPE # adds a recipe RECIPE
17
+ }
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def new(app_name)
6
24
  exec "rails new #{app_name} -m #{master_template}"
7
25
  end
8
26
 
27
+ def list
28
+ puts File.read(File.join(kitty_gen_dir, "base_recipes")).split("\n").reject {|r| r.match /^\s*#/}
29
+ end
30
+
31
+ def add(recipe)
32
+ recipe_location = File.join(kitty_gen_dir, "recipes", (recipe + "_recipe.rb"))
33
+ exec "rake rails:template #{recipe_location}"
34
+ end
35
+
9
36
  def master_template
10
- File.expand_path(File.join(File.dirname(__FILE__), "master_template.rb"))
37
+ File.join(kitty_gen_dir, "master_template.rb")
38
+ end
39
+
40
+ def kitty_gen_dir
41
+ File.dirname(__FILE__)
11
42
  end
12
43
 
13
44
  end
@@ -0,0 +1,31 @@
1
+ gem "omniauth"
2
+ directory "app/controllers/users"
3
+ copy_template "omniauth_callbacks_controller", "users/omniauth_callbacks_controller"
4
+
5
+ inject_into_file "config/intializers/devise.rb", :before => 'end' <<-RUBY
6
+ # For debugging start here: https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview
7
+ config.omniauth :facebook, "APP_ID", "APP_SECRET"
8
+ RUBY
9
+
10
+ inject_into_file 'app/models/user.rb', :before => 'end' <<-RUBY
11
+
12
+ devise :omniauthable
13
+
14
+ # Modify the user model to pass facebook email to devise if available
15
+ def self.new_with_session(params, session)
16
+ super.tap do |user|
17
+ if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["user_hash"]
18
+ user.email = data["email"]
19
+ end
20
+ end
21
+ end
22
+ RUBY
23
+
24
+ gsub_file "config/routes.rb", "devise_for :users" <<-RUBY
25
+ devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
26
+ get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
27
+ end
28
+ RUBY
29
+
30
+ #layout
31
+ # link_to "Sign in with Facebook", user_omniauth_authorize_path(:facebook)
@@ -0,0 +1,21 @@
1
+ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
2
+
3
+ def facebook
4
+ # You need to implement the method below in your model
5
+ @user = User.find_for_facebook_oauth(env["omniauth.auth"], current_user)
6
+
7
+ if @user.persisted?
8
+ flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
9
+ sign_in_and_redirect @user, :event => :authentication
10
+ else
11
+ session["devise.facebook_data"] = env["omniauth.auth"]
12
+ redirect_to new_user_registration_url
13
+ end
14
+ end
15
+
16
+ def passthru
17
+ render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
18
+ end
19
+
20
+ end
21
+
@@ -1,4 +1,4 @@
1
1
  module KittyGen
2
- VERSION = "0.0.12" #aka Beta
2
+ VERSION = "0.0.13" #aka Beta
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitty_gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-24 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &2156779780 !ruby/object:Gem::Requirement
16
+ requirement: &2153672300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156779780
24
+ version_requirements: *2153672300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colored
27
- requirement: &2156779400 !ruby/object:Gem::Requirement
27
+ requirement: &2153671820 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2156779400
35
+ version_requirements: *2153671820
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &2156778680 !ruby/object:Gem::Requirement
38
+ requirement: &2153671160 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2156778680
46
+ version_requirements: *2153671160
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: ruby-debug19
49
- requirement: &2156778200 !ruby/object:Gem::Requirement
49
+ requirement: &2153670640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2156778200
57
+ version_requirements: *2153670640
58
58
  description: Save 5 hours starting your next project and use the latest and greatest
59
59
  best practices.
60
60
  email:
@@ -86,6 +86,7 @@ files:
86
86
  - lib/kitty_gen/recipes/factory_girl_with_generators_recipe.rb
87
87
  - lib/kitty_gen/recipes/formtastic_recipe.rb
88
88
  - lib/kitty_gen/recipes/initialize_git_repo_recipe.rb
89
+ - lib/kitty_gen/recipes/login_with_facebook_and_twitter_recipe.rb
89
90
  - lib/kitty_gen/recipes/make_readme_a_textile_file_recipe.rb
90
91
  - lib/kitty_gen/recipes/reload_css_and_html_in_browser_on_save_recipe.rb
91
92
  - lib/kitty_gen/recipes/remove_unwanted_files_recipe.rb
@@ -100,6 +101,7 @@ files:
100
101
  - lib/kitty_gen/templates/basic_layout_with_login_using_slim/application.html.slim
101
102
  - lib/kitty_gen/templates/basic_layout_with_login_using_slim/layout.css.sass
102
103
  - lib/kitty_gen/templates/initialize_git_repo/gitignore
104
+ - lib/kitty_gen/templates/login_with_facebook_and_twitter/omniauth_callbacks_controller.rb
103
105
  - lib/kitty_gen/templates/postgresql
104
106
  - lib/kitty_gen/templates/setup_testing_with_capybara_testunit_and_watchr/test_unit.watchr
105
107
  - lib/kitty_gen/unfinished_recipes/backup.rb