frame 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/generators/frame.rb +2 -2
- data/lib/generators/frame/admin/admin_generator.rb +6 -6
- data/lib/generators/frame/devise/devise_generator.rb +26 -15
- data/lib/generators/frame/devise_omniauth/USAGE +11 -0
- data/lib/generators/frame/devise_omniauth/devise_omniauth_generator.rb +89 -0
- data/lib/generators/frame/devise_omniauth/templates/app/controllers/omniauth_callbacks_controller.rb +16 -0
- data/lib/generators/frame/devise_omniauth/templates/app/models/user.rb +40 -0
- data/lib/generators/frame/devise_omniauth/templates/app/views/devise/registrations/edit.html.erb +28 -0
- data/lib/generators/frame/devise_omniauth/templates/app/views/devise/registrations/new.html.erb +21 -0
- data/lib/generators/frame/devise_omniauth/templates/app/views/devise/sessions/new.html.erb +17 -0
- data/lib/generators/frame/devise_omniauth/templates/app/views/layouts/defaults.html.erb +48 -0
- data/lib/generators/frame/devise_omniauth/templates/config/routes.rb +7 -0
- data/lib/generators/frame/gitignore/gitignore_generator.rb +1 -1
- data/lib/generators/frame/layout/layout_generator.rb +2 -2
- data/lib/generators/frame/layout/templates/app/{stylesheets → assets/stylesheets}/frame.css +0 -0
- data/lib/generators/frame/layout/templates/app/helpers/application_helper.rb +5 -0
- data/lib/generators/frame/layout/templates/app/views/layouts/application.html.erb +1 -1
- data/lib/generators/frame/mysql/mysql_generator.rb +5 -4
- data/lib/generators/frame/omniauth/omniauth_generator.rb +15 -9
- data/lib/generators/frame/omniauth/templates/app/models/user.rb +8 -4
- data/lib/generators/frame/omniauth/templates/app/views/authentications/index.html.erb +1 -1
- data/lib/generators/frame/omniauth/templates/app/views/devise/sessions/new.html.erb +5 -5
- data/lib/generators/frame/omniauth/templates/app/views/registrations/edit.html.erb +1 -1
- data/lib/generators/frame/omniauth/templates/app/views/registrations/new.html.erb +21 -17
- data/lib/generators/frame/omniauth/templates/config/initializers/omniauth.rb +6 -3
- data/lib/generators/frame/pages/pages_generator.rb +14 -14
- data/lib/generators/frame/pages/templates/{pages.html.erb → app/views/layouts/pages.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{_form.html.erb → app/views/pages/_form.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{_links.html.erb → app/views/pages/_links.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{_page.html.erb → app/views/pages/_page.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{index.html.erb → app/views/pages/index.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{show.html.erb → app/views/pages/show.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{_error_messages.html.erb → app/views/shared/_error_messages.html.erb} +0 -0
- data/lib/generators/frame/pages/templates/{_sidebar.html.erb → app/views/shared/_sidebar.html.erb} +0 -0
- data/lib/generators/frame/secret/secret_generator.rb +1 -0
- data/lib/generators/frame/secret/templates/Rakefile +3 -5
- metadata +20 -11
data/Gemfile.lock
CHANGED
data/lib/generators/frame.rb
CHANGED
@@ -14,14 +14,14 @@ module Frame
|
|
14
14
|
private
|
15
15
|
|
16
16
|
def add_if_missing(file, string, options = {}, unless_match = string)
|
17
|
-
puts "\n\n==> Adding the following to '#{file}' file:\n'#{string}' unless it already exists"
|
17
|
+
#puts "\n\n==> Adding the following to '#{file}' file:\n'#{string}' unless it already exists"
|
18
18
|
file_content = File.read(file)
|
19
19
|
#File.open(file, 'a') { |f| f.write("\n") } unless file_content =~ /\n\Z/
|
20
20
|
insert_into_file file, string, options unless file_content.include? unless_match
|
21
21
|
end
|
22
22
|
|
23
23
|
def add_gem(name, options = {})
|
24
|
-
#add_if_missing(destination_path("Gemfile"),)
|
24
|
+
#add_if_missing(destination_path("Gemfile"), name, options)
|
25
25
|
gemfile_content = File.read(destination_path("Gemfile"))
|
26
26
|
File.open(destination_path("Gemfile"), 'a') { |f| f.write("\n") } unless gemfile_content =~ /\n\Z/
|
27
27
|
gem name, options unless gemfile_content.include? name
|
@@ -17,7 +17,7 @@ module Frame
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def install_active_admin
|
20
|
-
if yes?("Would you like to install Active Admin?")
|
20
|
+
#if yes?("Would you like to install Active Admin?")
|
21
21
|
gem("activeadmin")
|
22
22
|
Bundler.with_clean_env do
|
23
23
|
run "bundle install"
|
@@ -25,13 +25,13 @@ module Frame
|
|
25
25
|
generate("active_admin:install")
|
26
26
|
default_model = "page"
|
27
27
|
generate("active_admin:resource #{default_model}")
|
28
|
-
end
|
28
|
+
#end
|
29
29
|
end
|
30
30
|
|
31
31
|
def update_db
|
32
|
-
if yes?("Would you like to migrate the database?")
|
32
|
+
#if yes?("Would you like to migrate the database?")
|
33
33
|
rake("db:migrate")
|
34
|
-
end
|
34
|
+
#end
|
35
35
|
end
|
36
36
|
|
37
37
|
def update_admin_form
|
@@ -51,9 +51,9 @@ module Frame
|
|
51
51
|
def remove_pages_cud
|
52
52
|
filenames = ["app/views/pages/new.html.erb", "app/views/pages/edit.html.erb", "app/views/pages/index.html.erb", "app/views/pages/_form.html.erb"]
|
53
53
|
filenames.each { |filename|
|
54
|
-
if File.exists?(filename) and yes?("Would you like to remove '#{filename}'?")
|
54
|
+
#if File.exists?(filename) and yes?("Would you like to remove '#{filename}'?")
|
55
55
|
remove_file filename
|
56
|
-
end
|
56
|
+
#end
|
57
57
|
}
|
58
58
|
template('app/views/pages/show.html.erb')
|
59
59
|
end
|
@@ -12,31 +12,39 @@ module Frame
|
|
12
12
|
gem("rspec-rails", :group => "test, development")
|
13
13
|
gem("cucumber-rails", :group => "test, development")
|
14
14
|
|
15
|
-
if yes?("Would you like to install Devise?")
|
15
|
+
#if yes?("Would you like to install Devise?")
|
16
16
|
gem("devise")
|
17
17
|
Bundler.with_clean_env do
|
18
18
|
run "bundle"
|
19
19
|
end
|
20
20
|
generate("devise:install")
|
21
21
|
default_model = "User"
|
22
|
-
model_name = ask("What would you like the user model to be called? [#{default_model}]")
|
23
|
-
model_name = default_model if model_name.blank?
|
22
|
+
#model_name = ask("What would you like the user model to be called? [#{default_model}]")
|
23
|
+
#model_name = default_model if model_name.blank?
|
24
|
+
model_name = default_model
|
24
25
|
generate("devise", model_name)
|
25
26
|
generate("devise:views")
|
26
|
-
end
|
27
|
+
#end
|
27
28
|
end
|
28
29
|
|
29
30
|
def update_initializers
|
30
31
|
gsub_file 'config/initializers/devise.rb', /config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"/ do
|
31
32
|
default_mailer = "webmaster@econtriver.com"
|
32
|
-
mailer_sender = ask("What is the mail sender address? [#{default_mailer}]")
|
33
|
-
mailer_sender = default_mailer if mailer_sender.blank?
|
33
|
+
#mailer_sender = ask("What is the mail sender address? [#{default_mailer}]")
|
34
|
+
#mailer_sender = default_mailer if mailer_sender.blank?
|
35
|
+
mailer_sender = default_mailer
|
34
36
|
"config.mailer_sender = \"#{mailer_sender}\""
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
40
|
def add_default_layout
|
39
|
-
template
|
41
|
+
template('app/views/layouts/defaults.html.erb')
|
42
|
+
end
|
43
|
+
|
44
|
+
def add_routes
|
45
|
+
add_if_missing('config/routes.rb', "
|
46
|
+
resources :authentications
|
47
|
+
", :after => "devise_for :admin_users, ActiveAdmin::Devise.config\n")
|
40
48
|
end
|
41
49
|
|
42
50
|
|
@@ -45,23 +53,26 @@ module Frame
|
|
45
53
|
|
46
54
|
def update_environments
|
47
55
|
default_mailer = "econtriver.com"
|
48
|
-
action_mailer = ask("What is the action mailer domain (normally just the domain)? [#{default_mailer}]")
|
49
|
-
action_mailer = default_mailer if action_mailer.blank?
|
50
|
-
|
51
|
-
|
56
|
+
#action_mailer = ask("What is the action mailer domain (normally just the domain)? [#{default_mailer}]")
|
57
|
+
#action_mailer = default_mailer if action_mailer.blank?
|
58
|
+
action_mailer = default_mailer
|
59
|
+
application(nil, :env => "production") do "
|
60
|
+
config.action_mailer.default_url_options = { :host => \"#{action_mailer}\" }
|
61
|
+
config.action_mailer.smtp_settings = { :openssl_verify_mode => 'none' }"
|
52
62
|
end
|
53
63
|
application(nil, :env => "test") do
|
54
64
|
"config.action_mailer.default_url_options = { :host => 'localhost:3000' }"
|
55
65
|
end
|
56
|
-
application(nil, :env => "development") do
|
57
|
-
|
66
|
+
application(nil, :env => "development") do "
|
67
|
+
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
|
68
|
+
config.assets.debug = false"
|
58
69
|
end
|
59
70
|
end
|
60
71
|
|
61
72
|
def update_db
|
62
|
-
if yes?("Would you like to migrate the database?")
|
73
|
+
#if yes?("Would you like to migrate the database?")
|
63
74
|
rake("db:migrate")
|
64
|
-
end
|
75
|
+
#end
|
65
76
|
end
|
66
77
|
|
67
78
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Description:
|
2
|
+
Generates devise omniauthable installation.
|
3
|
+
|
4
|
+
Usage:
|
5
|
+
Use to generate install and setup omniauthable devise for a project.
|
6
|
+
|
7
|
+
Examples:
|
8
|
+
rails generate frame:devise_omniauth
|
9
|
+
|
10
|
+
Methods:
|
11
|
+
There are several methods generated which you can use in your application.
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'generators/frame'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
module Frame
|
5
|
+
module Generators
|
6
|
+
class DeviseOmniauthGenerator < Base
|
7
|
+
include Rails::Generators::Migration
|
8
|
+
|
9
|
+
desc "Installs Devise and makes it Omniauthable."
|
10
|
+
|
11
|
+
def install_devise
|
12
|
+
gem("rspec-rails", :group => "test, development")
|
13
|
+
gem("cucumber-rails", :group => "test, development")
|
14
|
+
gem("devise")
|
15
|
+
gem("omniauth-twitter")
|
16
|
+
gem("omniauth-facebook")
|
17
|
+
gem("omniauth-github")
|
18
|
+
gem("omniauth-google-oauth2")
|
19
|
+
Bundler.with_clean_env do
|
20
|
+
run "bundle"
|
21
|
+
end
|
22
|
+
generate("devise:install")
|
23
|
+
generate("devise", "User")
|
24
|
+
generate("devise:views")
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_callback_controller
|
28
|
+
template('app/controllers/omniauth_callbacks_controller.rb')
|
29
|
+
end
|
30
|
+
|
31
|
+
def make_omniauthable
|
32
|
+
template('app/models/user.rb')
|
33
|
+
end
|
34
|
+
|
35
|
+
def add_do_routes
|
36
|
+
template('config/routes.rb')
|
37
|
+
end
|
38
|
+
|
39
|
+
def add_omni_services
|
40
|
+
add_if_missing('config/initializers/devise.rb', "\n config.omniauth :twitter, 'APP_ID', 'APP_SECRET'", :after => "# config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'")
|
41
|
+
add_if_missing('config/initializers/devise.rb', "\n config.omniauth :google_oauth2, 'APP_ID', 'APP_SECRET'", :after => "# config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'")
|
42
|
+
add_if_missing('config/initializers/devise.rb', "\n config.omniauth :facebook, 'APP_ID', 'APP_SECRET'", :after => "# config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'")
|
43
|
+
uncomment_lines('config/initializers/devise.rb', "config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'")
|
44
|
+
end
|
45
|
+
|
46
|
+
def add_default_layout
|
47
|
+
template('app/views/layouts/defaults.html.erb')
|
48
|
+
end
|
49
|
+
|
50
|
+
def update_initializers
|
51
|
+
gsub_file 'config/initializers/devise.rb', /config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"/ do
|
52
|
+
"config.mailer_sender = \"webmaster@econtriver.com\""
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def update_environments
|
57
|
+
application(nil, :env => "production") do "
|
58
|
+
config.action_mailer.default_url_options = { :host => \"econtriver.com\" }
|
59
|
+
config.action_mailer.smtp_settings = { :openssl_verify_mode => 'none' }"
|
60
|
+
end
|
61
|
+
application(nil, :env => "test") do
|
62
|
+
"config.action_mailer.default_url_options = { :host => 'localhost:3000' }"
|
63
|
+
end
|
64
|
+
application(nil, :env => "development") do
|
65
|
+
"config.action_mailer.default_url_options = { :host => 'localhost:3000' }"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def replace_email_username
|
70
|
+
template("app/views/devise/sessions/new.html.erb")
|
71
|
+
template("app/views/devise/registrations/new.html.erb")
|
72
|
+
template("app/views/devise/registrations/edit.html.erb")
|
73
|
+
end
|
74
|
+
|
75
|
+
def add_omniauth_to_users
|
76
|
+
generate("migration AddOmniauthToUsers provider:string uid:string")
|
77
|
+
end
|
78
|
+
|
79
|
+
def add_username_to_users
|
80
|
+
generate("migration AddUsernameToUsers username:string")
|
81
|
+
end
|
82
|
+
|
83
|
+
def update_db
|
84
|
+
rake("db:migrate")
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/lib/generators/frame/devise_omniauth/templates/app/controllers/omniauth_callbacks_controller.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
2
|
+
def all
|
3
|
+
user = User.from_omniauth(request.env["omniauth.auth"])
|
4
|
+
if user.persisted?
|
5
|
+
flash.notice = "Signed in!"
|
6
|
+
sign_in_and_redirect user
|
7
|
+
else
|
8
|
+
session["devise.user_attributes"] = user.attributes
|
9
|
+
redirect_to new_user_registration_url
|
10
|
+
end
|
11
|
+
end
|
12
|
+
alias_method :facebook, :all
|
13
|
+
alias_method :twitter, :all
|
14
|
+
alias_method :github, :all
|
15
|
+
alias_method :google_oauth2, :all
|
16
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class User < ActiveRecord::Base
|
2
|
+
devise :database_authenticatable, :registerable, :omniauthable,
|
3
|
+
:recoverable, :rememberable, :trackable, :validatable
|
4
|
+
|
5
|
+
attr_accessible :email, :password, :password_confirmation, :remember_me, :username
|
6
|
+
|
7
|
+
validates_presence_of :username
|
8
|
+
validates_uniqueness_of :username
|
9
|
+
|
10
|
+
def self.from_omniauth(auth)
|
11
|
+
where(auth.slice(:provider, :uid)).first_or_create do |user|
|
12
|
+
user.provider = auth.provider
|
13
|
+
user.uid = auth.uid
|
14
|
+
user.username = auth.info.nickname
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.new_with_session(params, session)
|
19
|
+
if session["devise.user_attributes"]
|
20
|
+
new(session["devise.user_attributes"], without_protection: true) do |user|
|
21
|
+
user.attributes = params
|
22
|
+
user.valid?
|
23
|
+
end
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def password_required?
|
30
|
+
super && provider.blank?
|
31
|
+
end
|
32
|
+
|
33
|
+
def update_with_password(params, *options)
|
34
|
+
if encrypted_password.blank?
|
35
|
+
update_attributes(params, *options)
|
36
|
+
else
|
37
|
+
super
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/generators/frame/devise_omniauth/templates/app/views/devise/registrations/edit.html.erb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
<h2>Edit <%%= resource_name.to_s.humanize %></h2>
|
2
|
+
|
3
|
+
<%%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
|
4
|
+
<%%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div><%%= f.label :email %><br />
|
7
|
+
<%%= f.email_field :email, :class => "text" %></div>
|
8
|
+
|
9
|
+
<div><%%= f.label :username %><br />
|
10
|
+
<%%= f.text_field :username, :class => "text" %></div>
|
11
|
+
|
12
|
+
<div><%%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
|
13
|
+
<%%= f.password_field :password, :autocomplete => "off", :class => "text" %></div>
|
14
|
+
|
15
|
+
<div><%%= f.label :password_confirmation %><br />
|
16
|
+
<%%= f.password_field :password_confirmation, :class => "text" %></div>
|
17
|
+
|
18
|
+
<div><%%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
|
19
|
+
<%%= f.password_field :current_password, :class => "text" %></div>
|
20
|
+
|
21
|
+
<div><%%= f.submit "Update" %></div>
|
22
|
+
<%% end %>
|
23
|
+
|
24
|
+
<h3>Cancel my account</h3>
|
25
|
+
|
26
|
+
<p>Unhappy? <%%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.</p>
|
27
|
+
|
28
|
+
<%%= link_to "Back", :back %>
|
data/lib/generators/frame/devise_omniauth/templates/app/views/devise/registrations/new.html.erb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
<h2>Sign up</h2>
|
2
|
+
|
3
|
+
<%%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
|
4
|
+
<%%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div><%%= f.label :email %><br />
|
7
|
+
<%%= f.email_field :email, :class => "text" %></div>
|
8
|
+
|
9
|
+
<div><%%= f.label :username %><br />
|
10
|
+
<%%= f.text_field :username, :class => "text" %></div>
|
11
|
+
|
12
|
+
<div><%%= f.label :password %><br />
|
13
|
+
<%%= f.password_field :password, :class => "text" %></div>
|
14
|
+
|
15
|
+
<div><%%= f.label :password_confirmation %><br />
|
16
|
+
<%%= f.password_field :password_confirmation, :class => "text" %></div>
|
17
|
+
|
18
|
+
<div><%%= f.submit "Sign up" %></div>
|
19
|
+
<%% end %>
|
20
|
+
|
21
|
+
<%%= render "devise/shared/links" %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<h2>Sign in</h2>
|
2
|
+
|
3
|
+
<%%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
|
4
|
+
<div><%%= f.label :username %><br />
|
5
|
+
<%%= f.text_field :username, :class => "text" %></div>
|
6
|
+
|
7
|
+
<div><%%= f.label :password %><br />
|
8
|
+
<%%= f.password_field :password, :class => "text" %></div>
|
9
|
+
|
10
|
+
<%% if devise_mapping.rememberable? -%>
|
11
|
+
<div><%%= f.check_box :remember_me %> <%%= f.label :remember_me %></div>
|
12
|
+
<%% end -%>
|
13
|
+
|
14
|
+
<div><%%= f.submit "Sign in" %></div>
|
15
|
+
<%% end %>
|
16
|
+
|
17
|
+
<%%= render "devise/shared/links" %>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<%% content_for :head do %>
|
2
|
+
<%%= favicon_link_tag('/assets/favicon.ico') %>
|
3
|
+
<%%= stylesheet_link_tag "application" %>
|
4
|
+
<%%= javascript_include_tag "application" %>
|
5
|
+
<%%= csrf_meta_tag %>
|
6
|
+
<%% end %>
|
7
|
+
|
8
|
+
<%% content_for :header do %>
|
9
|
+
<nav class="span-24 append-bottom">
|
10
|
+
<ul>
|
11
|
+
<%%= render :partial => "pages/links", :collection => @display_pages.topbar, :as => :page, :locals => {:classes => "left hover"} %>
|
12
|
+
<%% if user_signed_in? %>
|
13
|
+
<%%= link_to '<li class="left hover">Account</li>'.html_safe, edit_user_registration_path %>
|
14
|
+
<%%= link_to '<li class="right hover">Sign out</li>'.html_safe, destroy_user_session_path, :method => :delete %>
|
15
|
+
<li class="right last lighter"><%%= current_user.email %></li>
|
16
|
+
<%% else %>
|
17
|
+
<%%= link_to '<li class="right hover">Sign in</li>'.html_safe, user_session_path %>
|
18
|
+
<%%= link_to '<li class="right hover">Sign up</li>'.html_safe, new_user_registration_path %>
|
19
|
+
<%% end %>
|
20
|
+
</ul>
|
21
|
+
</nav>
|
22
|
+
<banner>
|
23
|
+
<%%= link_to logo, root_path, {:class => "right prepend-1"} %>
|
24
|
+
<h1 class="left alt append-1"><%%= yield(:title) %></h1>
|
25
|
+
<%% flash.each do |key, value| %>
|
26
|
+
<div id="notice" class="left flash <%%= key %>"><%%= value %></div>
|
27
|
+
<%% end %>
|
28
|
+
</banner>
|
29
|
+
<hr/>
|
30
|
+
<%% end %>
|
31
|
+
|
32
|
+
<%% content_for :sidebar do %>
|
33
|
+
<%%= render 'shared/sidebar', :sidebar => @display_pages.sidebar %>
|
34
|
+
<%% end %>
|
35
|
+
|
36
|
+
<%% content_for :userbar do %>
|
37
|
+
<%% if user_signed_in? %>
|
38
|
+
<%%= render 'shared/sidebar', :sidebar => @display_pages.userbar %>
|
39
|
+
<%% end %>
|
40
|
+
<%% end %>
|
41
|
+
|
42
|
+
<%% content_for :footer do %>
|
43
|
+
<nav class="span-24 prepend-top last">
|
44
|
+
<ul>
|
45
|
+
<%%= render :partial => "pages/links", :collection => @display_pages.bottombar, :as => :page, :locals => {:classes => "left hover"} %>
|
46
|
+
</ul>
|
47
|
+
</nav>
|
48
|
+
<%% end %>
|
@@ -12,9 +12,9 @@ module Frame
|
|
12
12
|
|
13
13
|
def remove_index
|
14
14
|
filename="public/index.html"
|
15
|
-
if File.exists?(filename) and yes?("Would you like to remove '#{filename}'?")
|
15
|
+
#if File.exists?(filename) and yes?("Would you like to remove '#{filename}'?")
|
16
16
|
remove_file filename
|
17
|
-
end
|
17
|
+
#end
|
18
18
|
end
|
19
19
|
|
20
20
|
def add_default_layout
|
File without changes
|
@@ -1,11 +1,16 @@
|
|
1
1
|
module ApplicationHelper
|
2
2
|
def title(page_title)
|
3
|
+
view_flow.content.delete(:title)
|
3
4
|
content_for :title do
|
4
5
|
page_title
|
5
6
|
end
|
6
7
|
page_title
|
7
8
|
end
|
8
9
|
|
10
|
+
def default_title(page_title)
|
11
|
+
title page_title unless content_for?(:title)
|
12
|
+
end
|
13
|
+
|
9
14
|
def logo
|
10
15
|
image_tag("econ_f_64.gif", {:alt => "eContriver", :class => "round", :style => "width: 64px; height: 64px"})
|
11
16
|
end
|
@@ -6,7 +6,7 @@ module Frame
|
|
6
6
|
class MysqlGenerator < Base
|
7
7
|
include Rails::Generators::Migration
|
8
8
|
|
9
|
-
desc "Update MySQL with user
|
9
|
+
desc "Update MySQL with user privileges."
|
10
10
|
|
11
11
|
def add_gems
|
12
12
|
gem("mysql2")
|
@@ -22,7 +22,7 @@ module Frame
|
|
22
22
|
puts "database: #{db}"
|
23
23
|
output = create_file 'tmp/drop_db.sql', "DROP DATABASE IF EXISTS #{db};"
|
24
24
|
puts "output: #{output}\nEnter mysql root password"
|
25
|
-
system "mysql -u root
|
25
|
+
system "mysql -u root < #{output}"
|
26
26
|
end
|
27
27
|
|
28
28
|
def add_user
|
@@ -33,7 +33,7 @@ module Frame
|
|
33
33
|
puts "using pw: #{pw}"
|
34
34
|
output = create_file 'tmp/create_user.sql', "CREATE USER '#{user}'@localhost IDENTIFIED BY '#{pw}';"
|
35
35
|
puts "output: #{output}\nEnter mysql root password"
|
36
|
-
system "mysql -u root
|
36
|
+
system "mysql -u root < #{output}"
|
37
37
|
end
|
38
38
|
|
39
39
|
def grant_user
|
@@ -44,10 +44,11 @@ module Frame
|
|
44
44
|
puts "all on db: #{db}"
|
45
45
|
output = create_file 'tmp/grant_user.sql', "GRANT ALL PRIVILEGES ON #{db}.* TO '#{user}'@localhost;"
|
46
46
|
puts "output: #{output}\nEnter mysql root password"
|
47
|
-
system "mysql -u root
|
47
|
+
system "mysql -u root < #{output}"
|
48
48
|
end
|
49
49
|
|
50
50
|
def create_db
|
51
|
+
rake("db:reset")
|
51
52
|
rake("db:setup")
|
52
53
|
end
|
53
54
|
|
@@ -8,12 +8,17 @@ module Frame
|
|
8
8
|
|
9
9
|
desc "Installs Omniauth."
|
10
10
|
|
11
|
+
def add_omniauth_secret
|
12
|
+
template('config/initializers/omniauth.rb')
|
13
|
+
end
|
14
|
+
|
11
15
|
def install_omniauth
|
12
16
|
|
13
17
|
gem 'omniauth'
|
18
|
+
gem 'omniauth-github'
|
19
|
+
gem 'omniauth-facebook'
|
14
20
|
gem 'omniauth-twitter'
|
15
21
|
gem 'omniauth-google-oauth2'
|
16
|
-
gem 'omniauth-github'
|
17
22
|
|
18
23
|
Bundler.with_clean_env do
|
19
24
|
run "bundle"
|
@@ -41,17 +46,18 @@ module Frame
|
|
41
46
|
end
|
42
47
|
|
43
48
|
# Leave the routes?
|
44
|
-
def
|
49
|
+
def g_authentication_controller
|
45
50
|
generate('controller Authentications index create destroy')
|
46
51
|
template('app/controllers/authentications_controller.rb')
|
47
52
|
remove_file('app/views/authentications/index.html.erb')
|
48
53
|
remove_file('app/views/authentications/create.html.erb')
|
49
54
|
remove_file('app/views/authentications/destroy.html.erb')
|
50
55
|
# Need this index?
|
51
|
-
template('app/views/authentications/index.html.erb')
|
56
|
+
#template('app/views/authentications/index.html.erb')
|
57
|
+
#remove_file('app/views/authentications')
|
52
58
|
end
|
53
59
|
|
54
|
-
def
|
60
|
+
def g_registration_controller
|
55
61
|
generate('controller Registrations edit new')
|
56
62
|
template('app/views/registrations/edit.html.erb')
|
57
63
|
template('app/views/registrations/new.html.erb')
|
@@ -75,12 +81,12 @@ module Frame
|
|
75
81
|
|
76
82
|
def copy_images
|
77
83
|
template('app/assets/images/facebook_32.png')
|
78
|
-
template('app/assets/images/github_32.png')
|
79
|
-
template('app/assets/images/google_32.png')
|
80
|
-
template('app/assets/images/twitter_32.png')
|
81
84
|
template('app/assets/images/facebook_64.png')
|
85
|
+
template('app/assets/images/github_32.png')
|
82
86
|
template('app/assets/images/github_64.png')
|
87
|
+
template('app/assets/images/google_32.png')
|
83
88
|
template('app/assets/images/google_64.png')
|
89
|
+
template('app/assets/images/twitter_32.png')
|
84
90
|
template('app/assets/images/twitter_64.png')
|
85
91
|
end
|
86
92
|
|
@@ -91,9 +97,9 @@ module Frame
|
|
91
97
|
end
|
92
98
|
|
93
99
|
def update_db
|
94
|
-
if yes?("Would you like to migrate the database?")
|
100
|
+
#if yes?("Would you like to migrate the database?")
|
95
101
|
rake("db:migrate")
|
96
|
-
end
|
102
|
+
#end
|
97
103
|
end
|
98
104
|
|
99
105
|
end
|
@@ -4,17 +4,21 @@ class User < ActiveRecord::Base
|
|
4
4
|
# Include default devise modules. Others available are:
|
5
5
|
# :token_authenticatable, :lockable, :timeoutable, :confirmable and :activatable
|
6
6
|
devise :database_authenticatable, :registerable,
|
7
|
-
:recoverable, :rememberable, :trackable, :validatable
|
7
|
+
:recoverable, :rememberable, :trackable, :validatable,
|
8
|
+
:authentication_keys => [:login]
|
8
9
|
|
9
10
|
has_many :authentications, :dependent => :destroy
|
10
11
|
|
11
12
|
attr_accessor :login
|
12
13
|
attr_accessible :email, :password, :password_confirmation, :username, :login, :remember_me
|
13
14
|
|
14
|
-
def self.
|
15
|
+
def self.find_first_by_auth_conditions(warden_conditions)
|
15
16
|
conditions = warden_conditions.dup
|
16
|
-
login = conditions.delete(:login)
|
17
|
-
|
17
|
+
if login = conditions.delete(:login)
|
18
|
+
where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).first
|
19
|
+
else
|
20
|
+
where(conditions).first
|
21
|
+
end
|
18
22
|
end
|
19
23
|
|
20
24
|
def update_with_password(params={})
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<%%= render 'shared/open_auth' %>
|
4
4
|
|
5
5
|
<%% unless user_signed_in? %>
|
6
|
-
<div class="left span-
|
6
|
+
<div class="left span-9 last">
|
7
7
|
<h2 class="alt">... or a Normal Account:</h2>
|
8
8
|
<%%= render 'shared/login_form' %>
|
9
9
|
<%%= link_to "Forgot your password?", new_password_path('user') %>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<h2>Sign In Using...</h2>
|
2
2
|
|
3
|
-
|
3
|
+
<%%= render 'shared/open_auth' %>
|
4
4
|
|
5
|
-
|
5
|
+
<%% unless user_signed_in? %>
|
6
6
|
<div class="left span-9 last">
|
7
7
|
<h2 class="alt">... or a Normal Account:</h2>
|
8
|
-
|
9
|
-
|
8
|
+
<%%= render 'shared/login_form' %>
|
9
|
+
<%%= render "devise/shared/links" %>
|
10
10
|
</div>
|
11
|
-
|
11
|
+
<%% end %>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
<p><%%= f.label :email %></p>
|
12
12
|
|
13
|
-
<p><%%= f.
|
13
|
+
<p><%%= f.email_field :email, :class => "text" %></p>
|
14
14
|
|
15
15
|
<p><%%= f.label :password %> <span class="alt large">(leave blank if you don't want to change it)</span></p>
|
16
16
|
|
@@ -1,25 +1,29 @@
|
|
1
1
|
<%% title "Sign up" %>
|
2
2
|
|
3
|
-
<
|
3
|
+
<div class="left span-9">
|
4
|
+
<h2>Sign up</h2>
|
4
5
|
|
5
|
-
<%%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
|
6
|
-
|
6
|
+
<%%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
|
7
|
+
<%%= render 'shared/error_messages', :object => f.object %>
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<p><%%= f.label :email %></p>
|
12
|
-
<p><%%= f.text_field :email %></p>
|
9
|
+
<p><%%= f.label :username %></p>
|
10
|
+
<p><%%= f.text_field :username, :class => "text" %></p>
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
<p><%%= f.password_field :password %></p>
|
12
|
+
<p><%%= f.label :email %></p>
|
13
|
+
<p><%%= f.email_field :email, :class => "text" %></p>
|
17
14
|
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
<%% if @user.password_required? %>
|
16
|
+
<p><%%= f.label :password %></p>
|
17
|
+
<p><%%= f.password_field :password, :class => "text" %></p>
|
21
18
|
|
22
|
-
|
23
|
-
|
19
|
+
<p><%%= f.label :password_confirmation %></p>
|
20
|
+
<p><%%= f.password_field :password_confirmation, :class => "text" %></p>
|
21
|
+
<%% end %>
|
24
22
|
|
25
|
-
|
23
|
+
<p><%%= f.submit "Sign up" %></p>
|
24
|
+
<%% end %>
|
25
|
+
|
26
|
+
<%%= render :partial => "devise/shared/links" %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<%%= render 'shared/open_auth' %>
|
@@ -1,13 +1,16 @@
|
|
1
1
|
#require 'openid/store/filesystem'
|
2
2
|
Rails.application.config.middleware.use OmniAuth::Builder do
|
3
3
|
#require 'omniauth-google-oauth2'
|
4
|
-
|
4
|
+
provider :google_oauth2, 'APP_ID', 'APP_SECRET', { :scope => 'https://www.googleapis.com/auth/userinfo.email', :redirect_uri => 'http://econtriver.com/auth/google_oauth2/callback', :approval_prompt => 'auto' }
|
5
5
|
|
6
6
|
#require 'omniauth-twitter'
|
7
|
-
|
7
|
+
provider :twitter, 'APP_ID', 'APP_SECRET'
|
8
8
|
|
9
9
|
#require 'omniauth-github'
|
10
|
-
|
10
|
+
provider :github, 'APP_ID', 'APP_SECRET'
|
11
|
+
|
12
|
+
#require 'omniauth-facebook'
|
13
|
+
provider :facebook, 'APP_ID', 'APP_SECRET'
|
11
14
|
|
12
15
|
#provider :open_id, OpenID::Store::Filesystem.new('/tmp')
|
13
16
|
end
|
@@ -9,7 +9,7 @@ module Frame
|
|
9
9
|
|
10
10
|
desc "Setup Pages."
|
11
11
|
|
12
|
-
class_option :force, :type => :boolean, :default =>
|
12
|
+
class_option :force, :type => :boolean, :default => true, :desc => "Force file overwriting"
|
13
13
|
|
14
14
|
#def add_gems
|
15
15
|
# #add_gem "mysql2"
|
@@ -26,9 +26,9 @@ module Frame
|
|
26
26
|
|
27
27
|
def remove_index
|
28
28
|
filename="public/index.html"
|
29
|
-
if File.exists?(filename) and yes?("Would you like to remove '#{filename}'?")
|
29
|
+
#if File.exists?(filename) and yes?("Would you like to remove '#{filename}'?")
|
30
30
|
remove_file filename
|
31
|
-
end
|
31
|
+
#end
|
32
32
|
end
|
33
33
|
|
34
34
|
def generate_scaffold
|
@@ -40,7 +40,7 @@ module Frame
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def add_root_route
|
43
|
-
insert_into_file 'config/routes.rb', " root :to => 'pages#show', :id => 0\n", :after => "#{Rails.application.class.parent_name}::Application.routes.draw do\n"
|
43
|
+
insert_into_file 'config/routes.rb', " root :to => 'pages#show', :id => 0\n get 'sessions/new'\n", :after => "#{Rails.application.class.parent_name}::Application.routes.draw do\n"
|
44
44
|
end
|
45
45
|
|
46
46
|
def update_page_controller
|
@@ -67,17 +67,17 @@ module Frame
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def create_pages_partials
|
70
|
-
template
|
71
|
-
template
|
72
|
-
template
|
73
|
-
template
|
74
|
-
template
|
70
|
+
template('app/views/pages/_form.html.erb')
|
71
|
+
template('app/views/pages/_links.html.erb')
|
72
|
+
template('app/views/pages/_page.html.erb')
|
73
|
+
template('app/views/shared/_error_messages.html.erb')
|
74
|
+
template('app/views/shared/_sidebar.html.erb')
|
75
75
|
end
|
76
76
|
|
77
77
|
def create_pages_views
|
78
|
-
template
|
79
|
-
template
|
80
|
-
template
|
78
|
+
template('app/views/layouts/pages.html.erb')
|
79
|
+
template('app/views/pages/index.html.erb')
|
80
|
+
template('app/views/pages/show.html.erb')
|
81
81
|
end
|
82
82
|
|
83
83
|
def add_scopes
|
@@ -120,10 +120,10 @@ module Frame
|
|
120
120
|
end
|
121
121
|
|
122
122
|
def update_db
|
123
|
-
if yes?("Would you like to migrate the database?")
|
123
|
+
#if yes?("Would you like to migrate the database?")
|
124
124
|
rake("db:migrate")
|
125
125
|
rake("db:seed")
|
126
|
-
end
|
126
|
+
#end
|
127
127
|
end
|
128
128
|
|
129
129
|
private
|
data/lib/generators/frame/pages/templates/{pages.html.erb → app/views/layouts/pages.html.erb}
RENAMED
File without changes
|
File without changes
|
data/lib/generators/frame/pages/templates/{_links.html.erb → app/views/pages/_links.html.erb}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/generators/frame/pages/templates/{_sidebar.html.erb → app/views/shared/_sidebar.html.erb}
RENAMED
File without changes
|
@@ -33,6 +33,7 @@ module Frame
|
|
33
33
|
def create_rake_file
|
34
34
|
#@title = Rails.application.class.parent_name.downcase
|
35
35
|
template('Rakefile')
|
36
|
+
gsub_file 'Rakefile', /Rails\.application\.class\.parent_name\:\:Application\.load_tasks/, "#{Rails.application.class.parent_name}::Application.load_tasks"
|
36
37
|
end
|
37
38
|
|
38
39
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
require File.expand_path('../config/application', __FILE__)
|
7
7
|
|
8
|
-
|
8
|
+
Rails.application.class.parent_name::Application.load_tasks
|
9
9
|
|
10
10
|
files = ['config/initializers/omniauth.rb','config/database.yml','config/initializers/secret_token.rb']
|
11
11
|
|
@@ -29,11 +29,9 @@ task :get_secret do
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
task :backup
|
32
|
+
task :backup do
|
33
33
|
filename = "#{Rails.application.class.parent_name.downcase}.db_backup.#{Time.now.to_f}.sql.bz2"
|
34
34
|
filepath = File.join(deploy_to,'current',filename)
|
35
35
|
config = YAML.load_file(File.join(deploy_to,'private', 'config', 'database.yml'))
|
36
|
-
|
37
|
-
ch.send_data "#{config['production']['password']}\n" if out =~ /^Enter password:/
|
38
|
-
end
|
36
|
+
system("mysqldump -u #{config['production']['username']} -p'#{config['production']['password']}' #{config['production']['database']} | bzip2 -c > #{filepath}\n")
|
39
37
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: frame
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activeadmin
|
@@ -330,11 +330,11 @@ files:
|
|
330
330
|
- lib/generators/frame/layout/templates/app/assets/images/favicon.ico
|
331
331
|
- lib/generators/frame/layout/templates/app/assets/images/econ_f_256.png
|
332
332
|
- lib/generators/frame/layout/templates/app/assets/images/econ_f_32.png
|
333
|
+
- lib/generators/frame/layout/templates/app/assets/stylesheets/frame.css
|
333
334
|
- lib/generators/frame/layout/templates/app/views/layouts/defaults.html.erb
|
334
335
|
- lib/generators/frame/layout/templates/app/views/layouts/application.html.erb
|
335
336
|
- lib/generators/frame/layout/templates/app/views/layouts/default_layout.html.erb
|
336
337
|
- lib/generators/frame/layout/templates/app/helpers/application_helper.rb
|
337
|
-
- lib/generators/frame/layout/templates/app/stylesheets/frame.css
|
338
338
|
- lib/generators/frame/layout/USAGE
|
339
339
|
- lib/generators/frame/mysql/USAGE
|
340
340
|
- lib/generators/frame/mysql/mysql_generator.rb
|
@@ -344,20 +344,29 @@ files:
|
|
344
344
|
- lib/generators/frame/admin/templates/app/admin/pages.rb
|
345
345
|
- lib/generators/frame/admin/USAGE
|
346
346
|
- lib/generators/frame/pages/pages_generator.rb
|
347
|
-
- lib/generators/frame/pages/templates/_form.html.erb
|
348
|
-
- lib/generators/frame/pages/templates/_links.html.erb
|
349
|
-
- lib/generators/frame/pages/templates/pages.html.erb
|
350
|
-
- lib/generators/frame/pages/templates/
|
351
|
-
- lib/generators/frame/pages/templates/
|
352
|
-
- lib/generators/frame/pages/templates/
|
353
|
-
- lib/generators/frame/pages/templates/
|
354
|
-
- lib/generators/frame/pages/templates/
|
347
|
+
- lib/generators/frame/pages/templates/app/views/pages/_form.html.erb
|
348
|
+
- lib/generators/frame/pages/templates/app/views/pages/_links.html.erb
|
349
|
+
- lib/generators/frame/pages/templates/app/views/pages/index.html.erb
|
350
|
+
- lib/generators/frame/pages/templates/app/views/pages/show.html.erb
|
351
|
+
- lib/generators/frame/pages/templates/app/views/pages/_page.html.erb
|
352
|
+
- lib/generators/frame/pages/templates/app/views/shared/_sidebar.html.erb
|
353
|
+
- lib/generators/frame/pages/templates/app/views/shared/_error_messages.html.erb
|
354
|
+
- lib/generators/frame/pages/templates/app/views/layouts/pages.html.erb
|
355
355
|
- lib/generators/frame/pages/USAGE
|
356
356
|
- lib/generators/frame/gitignore/gitignore_generator.rb
|
357
357
|
- lib/generators/frame/gitignore/USAGE
|
358
358
|
- lib/generators/frame/devise/templates/app/views/layouts/defaults.html.erb
|
359
359
|
- lib/generators/frame/devise/devise_generator.rb
|
360
360
|
- lib/generators/frame/devise/USAGE
|
361
|
+
- lib/generators/frame/devise_omniauth/templates/app/models/user.rb
|
362
|
+
- lib/generators/frame/devise_omniauth/templates/app/views/devise/sessions/new.html.erb
|
363
|
+
- lib/generators/frame/devise_omniauth/templates/app/views/devise/registrations/edit.html.erb
|
364
|
+
- lib/generators/frame/devise_omniauth/templates/app/views/devise/registrations/new.html.erb
|
365
|
+
- lib/generators/frame/devise_omniauth/templates/app/views/layouts/defaults.html.erb
|
366
|
+
- lib/generators/frame/devise_omniauth/templates/app/controllers/omniauth_callbacks_controller.rb
|
367
|
+
- lib/generators/frame/devise_omniauth/templates/config/routes.rb
|
368
|
+
- lib/generators/frame/devise_omniauth/devise_omniauth_generator.rb
|
369
|
+
- lib/generators/frame/devise_omniauth/USAGE
|
361
370
|
- lib/generators/frame/secret/templates/database.yml
|
362
371
|
- lib/generators/frame/secret/templates/Rakefile
|
363
372
|
- lib/generators/frame/secret/secret_generator.rb
|