furious-generators 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -0
- data/README.md +66 -0
- data/Rakefile +25 -0
- data/VERSION +1 -0
- data/furious-generators.gemspec +75 -0
- data/lib/furious_generators.rb +3 -0
- data/rails_generators/furious_auth/USAGE +0 -0
- data/rails_generators/furious_auth/furious_auth_generator.rb +128 -0
- data/rails_generators/furious_auth/templates/application_controller.rb +46 -0
- data/rails_generators/furious_auth/templates/create_users.rb +30 -0
- data/rails_generators/furious_auth/templates/user.rb +3 -0
- data/rails_generators/furious_auth/templates/user_session.rb +2 -0
- data/rails_generators/furious_auth/templates/user_sessions_controller.rb +24 -0
- data/rails_generators/furious_auth/templates/users_controller.rb +40 -0
- data/rails_generators/furious_auth/templates/views/user_sessions/new.rb +23 -0
- data/rails_generators/furious_auth/templates/views/users/_form.erb +11 -0
- data/rails_generators/furious_auth/templates/views/users/_form.rb +19 -0
- data/rails_generators/furious_auth/templates/views/users/edit.html.erb +9 -0
- data/rails_generators/furious_auth/templates/views/users/edit.rb +9 -0
- data/rails_generators/furious_auth/templates/views/users/new.html.erb +7 -0
- data/rails_generators/furious_auth/templates/views/users/new.rb +9 -0
- data/rails_generators/furious_auth/templates/views/users/show.html.erb +37 -0
- data/rails_generators/furious_auth/templates/views/users/show.rb +37 -0
- data/rails_generators/furious_blueprint/USAGE +0 -0
- data/rails_generators/furious_blueprint/furious_blueprint_generator.rb +17 -0
- data/rails_generators/furious_blueprint/templates/ie.css +35 -0
- data/rails_generators/furious_blueprint/templates/print.css +29 -0
- data/rails_generators/furious_blueprint/templates/screen.css +257 -0
- data/rails_generators/furious_jquery/USAGE +0 -0
- data/rails_generators/furious_jquery/furious_jquery_generator.rb +15 -0
- data/rails_generators/furious_jquery/templates/jquery-1.3.2.js +4376 -0
- data/rails_generators/furious_jquery/templates/jquery-ui-1.7.2.custom.min.js +298 -0
- data/rails_generators/furious_layout/USAGE +0 -0
- data/rails_generators/furious_layout/furious_layout_generator.rb +36 -0
- data/rails_generators/furious_layout/templates/helper.rb +0 -0
- data/rails_generators/furious_layout/templates/javascript.rb +0 -0
- data/rails_generators/furious_layout/templates/layout-erb.rb +0 -0
- data/rails_generators/furious_layout/templates/layout-haml.rb +0 -0
- data/rails_generators/furious_layout/templates/stylesheet.rb +0 -0
- metadata +93 -0
data/.gitignore
ADDED
File without changes
|
data/README.md
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
Furious Generators
|
2
|
+
=============
|
3
|
+
|
4
|
+
Furious Generators are a set of rails generators by [Trevor Oke](http://trevoroke.com) that you can use to help create
|
5
|
+
rails applications more quickly.
|
6
|
+
|
7
|
+
Installation
|
8
|
+
------------
|
9
|
+
|
10
|
+
Install the gem with:
|
11
|
+
|
12
|
+
sudo gem install furious-generators -s http://gemcutter.org
|
13
|
+
|
14
|
+
You can also install it as a rails plugin:
|
15
|
+
|
16
|
+
script/plugin install git://github.com/thefury/furious-generators.git
|
17
|
+
|
18
|
+
Usage
|
19
|
+
-----
|
20
|
+
|
21
|
+
### Blueprint Generator
|
22
|
+
|
23
|
+
Add the blueprint css files to your public/stylesheets folder.
|
24
|
+
|
25
|
+
script/generate furious-blueprint
|
26
|
+
|
27
|
+
### JQuery Generator
|
28
|
+
|
29
|
+
Add the jquery and jquery-ui files to your public/javascripts folder.
|
30
|
+
|
31
|
+
script/generate furious-jquery
|
32
|
+
|
33
|
+
### Layout Generator
|
34
|
+
|
35
|
+
Create a standard modifiable layout along with associated css, js, and helper files
|
36
|
+
|
37
|
+
script/generate furious-layout
|
38
|
+
|
39
|
+
|
40
|
+
Contributing
|
41
|
+
---
|
42
|
+
|
43
|
+
* Fork this repository.
|
44
|
+
* Make your changes.
|
45
|
+
* Be sure to include tests!
|
46
|
+
* Send a pull request.
|
47
|
+
|
48
|
+
Links
|
49
|
+
-----
|
50
|
+
|
51
|
+
* Repository: git://github.com/thefury/furious-generators.git
|
52
|
+
* Issues: <http://github.com/thefury/furious-generators/issues>
|
53
|
+
* Gem: <http://gemcutter.org/gems/furious-generators>
|
54
|
+
|
55
|
+
Author
|
56
|
+
------
|
57
|
+
|
58
|
+
Trevor Oke - [http://trevoroke.com](http://trevoroke.com)
|
59
|
+
|
60
|
+
Credits
|
61
|
+
-------
|
62
|
+
|
63
|
+
A number of other libraries have been included in these generators:
|
64
|
+
|
65
|
+
* Blueprint CSS: <http://www.blueprintcss.org/>
|
66
|
+
* JQuery: <http://jquery.com/>
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "cucumber/rake/task"
|
3
|
+
require "spec/rake/spectask"
|
4
|
+
|
5
|
+
Cucumber::Rake::Task.new
|
6
|
+
|
7
|
+
Spec::Rake::SpecTask.new do |t|
|
8
|
+
t.spec_files = FileList['test/**/*_spec.rb']
|
9
|
+
end
|
10
|
+
|
11
|
+
task :default => [:spec, :cucumber]
|
12
|
+
|
13
|
+
begin
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gemspec|
|
16
|
+
gemspec.name = "furious-generators"
|
17
|
+
gemspec.summary = "Custom generators for Rails applications"
|
18
|
+
gemspec.description = "Custom generators for Rails applications"
|
19
|
+
gemspec.email = "trevor@trevoroke.com"
|
20
|
+
gemspec.homepage = "http://github.com/thefury/furious-generators"
|
21
|
+
gemspec.authors = ["Trevor Oke"]
|
22
|
+
end
|
23
|
+
rescue LoadError
|
24
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
25
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{furious-generators}
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Trevor Oke"]
|
12
|
+
s.date = %q{2009-12-10}
|
13
|
+
s.description = %q{Custom generators for Rails applications}
|
14
|
+
s.email = %q{trevor@trevoroke.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.md"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"README.md",
|
21
|
+
"Rakefile",
|
22
|
+
"VERSION",
|
23
|
+
"furious-generators.gemspec",
|
24
|
+
"lib/furious_generators.rb",
|
25
|
+
"rails_generators/furious_auth/USAGE",
|
26
|
+
"rails_generators/furious_auth/furious_auth_generator.rb",
|
27
|
+
"rails_generators/furious_auth/templates/application_controller.rb",
|
28
|
+
"rails_generators/furious_auth/templates/create_users.rb",
|
29
|
+
"rails_generators/furious_auth/templates/user.rb",
|
30
|
+
"rails_generators/furious_auth/templates/user_session.rb",
|
31
|
+
"rails_generators/furious_auth/templates/user_sessions_controller.rb",
|
32
|
+
"rails_generators/furious_auth/templates/users_controller.rb",
|
33
|
+
"rails_generators/furious_auth/templates/views/user_sessions/new.rb",
|
34
|
+
"rails_generators/furious_auth/templates/views/users/_form.erb",
|
35
|
+
"rails_generators/furious_auth/templates/views/users/_form.rb",
|
36
|
+
"rails_generators/furious_auth/templates/views/users/edit.html.erb",
|
37
|
+
"rails_generators/furious_auth/templates/views/users/edit.rb",
|
38
|
+
"rails_generators/furious_auth/templates/views/users/new.html.erb",
|
39
|
+
"rails_generators/furious_auth/templates/views/users/new.rb",
|
40
|
+
"rails_generators/furious_auth/templates/views/users/show.html.erb",
|
41
|
+
"rails_generators/furious_auth/templates/views/users/show.rb",
|
42
|
+
"rails_generators/furious_blueprint/USAGE",
|
43
|
+
"rails_generators/furious_blueprint/furious_blueprint_generator.rb",
|
44
|
+
"rails_generators/furious_blueprint/templates/ie.css",
|
45
|
+
"rails_generators/furious_blueprint/templates/print.css",
|
46
|
+
"rails_generators/furious_blueprint/templates/screen.css",
|
47
|
+
"rails_generators/furious_jquery/USAGE",
|
48
|
+
"rails_generators/furious_jquery/furious_jquery_generator.rb",
|
49
|
+
"rails_generators/furious_jquery/templates/jquery-1.3.2.js",
|
50
|
+
"rails_generators/furious_jquery/templates/jquery-ui-1.7.2.custom.min.js",
|
51
|
+
"rails_generators/furious_layout/USAGE",
|
52
|
+
"rails_generators/furious_layout/furious_layout_generator.rb",
|
53
|
+
"rails_generators/furious_layout/templates/helper.rb",
|
54
|
+
"rails_generators/furious_layout/templates/javascript.rb",
|
55
|
+
"rails_generators/furious_layout/templates/layout-erb.rb",
|
56
|
+
"rails_generators/furious_layout/templates/layout-haml.rb",
|
57
|
+
"rails_generators/furious_layout/templates/stylesheet.rb"
|
58
|
+
]
|
59
|
+
s.homepage = %q{http://github.com/thefury/furious-generators}
|
60
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
61
|
+
s.require_paths = ["lib"]
|
62
|
+
s.rubygems_version = %q{1.3.5}
|
63
|
+
s.summary = %q{Custom generators for Rails applications}
|
64
|
+
|
65
|
+
if s.respond_to? :specification_version then
|
66
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
67
|
+
s.specification_version = 3
|
68
|
+
|
69
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
70
|
+
else
|
71
|
+
end
|
72
|
+
else
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
File without changes
|
@@ -0,0 +1,128 @@
|
|
1
|
+
class FuriousAuthGenerator < Rails::Generator::Base
|
2
|
+
def intialize
|
3
|
+
end
|
4
|
+
|
5
|
+
def manifest
|
6
|
+
record do |m|
|
7
|
+
# directories
|
8
|
+
m.directory("app/controllers")
|
9
|
+
m.directory("app/models")
|
10
|
+
m.directory("app/views")
|
11
|
+
m.directory("app/views/user_sessions")
|
12
|
+
m.directory("app/views/users")
|
13
|
+
m.directory("db/migrate")
|
14
|
+
|
15
|
+
# controllers
|
16
|
+
m.file "users_controller.rb", "app/controllers/users_controller.rb"
|
17
|
+
m.file "user_sessions_controller.rb", "app/controllers/user_sessions_controller.rb"
|
18
|
+
m.file "application_controller.rb", "app/controllers/application_controller.rb"
|
19
|
+
|
20
|
+
# models
|
21
|
+
m.file "user.rb", "app/models/user.rb"
|
22
|
+
m.file "user_session.rb", "app/models/user_session.rb"
|
23
|
+
|
24
|
+
# views
|
25
|
+
m.file "views/user_sessions/new.rb", "app/views/user_sessions/new.html.haml"
|
26
|
+
['_form', 'new', 'edit', 'show'].each do |fname|
|
27
|
+
m.file "views/users/#{fname}.rb", "app/views/users/#{fname}.html.haml"
|
28
|
+
end
|
29
|
+
|
30
|
+
# database migrations
|
31
|
+
m.migration_template "create_users.rb", "db/migrate", { :migration_file_name => "create_authlogic_users" }
|
32
|
+
|
33
|
+
# routes
|
34
|
+
m.route_resources "users"
|
35
|
+
m.route_resource "user_session"
|
36
|
+
m.route :name => "register", :controller => "users", :action => "new"
|
37
|
+
m.route :name => "logout", :controller => "user_sessions", :action => "destroy"
|
38
|
+
m.route :name => "login", :controller => "user_sessions", :action => "new"
|
39
|
+
m.route :name => "settings", :controller => "settings", :action => "index"
|
40
|
+
m.route :name => "account", :controller => "users", :action => 'show'
|
41
|
+
|
42
|
+
# required gems
|
43
|
+
m.gem :name => 'authlogic'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
module Rails
|
50
|
+
module Generator
|
51
|
+
module Commands
|
52
|
+
class Base
|
53
|
+
def resource_route_code(*resources)
|
54
|
+
resource_list = resources.map { |r|}.join(', ')
|
55
|
+
code = "map.resource #{resource_list}"
|
56
|
+
end
|
57
|
+
|
58
|
+
def route_code(route_options)
|
59
|
+
code = "map.#{route_options[:name]} '#{route_options[:name]}', :controller => '#{route_options[:controller]}'"
|
60
|
+
code += ", :action => '#{route_options[:action]}'" unless route_options[:action].nil?
|
61
|
+
|
62
|
+
code
|
63
|
+
end
|
64
|
+
|
65
|
+
def gem_code(gem_options)
|
66
|
+
code = "config.gem '#{gem_options[:name]}'"
|
67
|
+
code += ", :lib => '#{gem_options[:lib]}'" unless gem_options[:lib].nil?
|
68
|
+
code += ", :version => '#{gem_options[:version]}'" unless gem_options[:version].nil?
|
69
|
+
code
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
class Create
|
75
|
+
def route(route_options)
|
76
|
+
sentinel = 'ActionController::Routing::Routes.draw do |map|'
|
77
|
+
logger.route route_code(route_options)
|
78
|
+
gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |m|
|
79
|
+
"#{m}\n #{route_code(route_options)}\n"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def gem(gem_options)
|
84
|
+
# Rails::Initializer.run do |config|
|
85
|
+
sentinel = 'Rails::Initializer.run do |config|'
|
86
|
+
logger.gem gem_code(gem_options)
|
87
|
+
gsub_file 'config/environment.rb', /(#{Regexp.escape(sentinel)})/mi do |m|
|
88
|
+
"#{m}\n #{gem_code(gem_options)}\n"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def route_resource(*resources)
|
93
|
+
sentinel = 'ActionController::Routing::Routes.draw do |map|'
|
94
|
+
|
95
|
+
logger.route "#{resource_route_code(resources)}"
|
96
|
+
unless options[:pretend]
|
97
|
+
gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
|
98
|
+
"#{match}\n #{resource_route_code(resources)}\n"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
class Destroy
|
105
|
+
def route(route_options)
|
106
|
+
logger.remove_route route_code(route_options)
|
107
|
+
to_remove = "\n #{route_code(route_options)}"
|
108
|
+
gsub_file 'config/routes.rb', /(#{to_remove})/mi, ''
|
109
|
+
end
|
110
|
+
|
111
|
+
def gem(gem_options)
|
112
|
+
logger.remove_gem gem_code(gem_options)
|
113
|
+
to_remove = "\n #{gem_code(gem_options)}"
|
114
|
+
gsub_file 'config/environment.rb', /(#{to_remove})/mi, ''
|
115
|
+
end
|
116
|
+
|
117
|
+
def route_resource(*resources)
|
118
|
+
logger.remove_route resource_route_code(resources)
|
119
|
+
to_remove = "\n #{resource_route_code(resources)}"
|
120
|
+
gsub_file 'config/routes.rb', /(#{to_remove})/mi, ''
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Filters added to this controller apply to all controllers in the application.
|
2
|
+
# Likewise, all the methods added will be available for all controllers.
|
3
|
+
|
4
|
+
class ApplicationController < ActionController::Base
|
5
|
+
helper :all
|
6
|
+
helper_method :current_user_session, :current_user
|
7
|
+
filter_parameter_logging :password, :password_confirmation
|
8
|
+
|
9
|
+
private
|
10
|
+
def current_user_session
|
11
|
+
return @current_user_session if defined?(@current_user_session)
|
12
|
+
@current_user_session = UserSession.find
|
13
|
+
end
|
14
|
+
|
15
|
+
def current_user
|
16
|
+
return @current_user if defined?(@current_user)
|
17
|
+
@current_user = current_user_session && current_user_session.record
|
18
|
+
end
|
19
|
+
|
20
|
+
def require_user
|
21
|
+
unless current_user
|
22
|
+
store_location
|
23
|
+
flash[:notice] = "You must be logged in to access this page"
|
24
|
+
redirect_to new_user_session_url
|
25
|
+
return false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def require_no_user
|
30
|
+
if current_user
|
31
|
+
store_location
|
32
|
+
flash[:notice] = "You must be logged out to access this page"
|
33
|
+
redirect_to account_url
|
34
|
+
return false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def store_location
|
39
|
+
session[:return_to] = request.request_uri
|
40
|
+
end
|
41
|
+
|
42
|
+
def redirect_back_or_default(default)
|
43
|
+
redirect_to(session[:return_to] || default)
|
44
|
+
session[:return_to] = nil
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class CreateAuthlogicUsers < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :users do |t|
|
4
|
+
t.string :login
|
5
|
+
t.string :email
|
6
|
+
t.string :crypted_password
|
7
|
+
t.string :password_salt
|
8
|
+
t.string :persistence_token
|
9
|
+
t.string :single_access_token
|
10
|
+
t.string :perishable_token
|
11
|
+
t.integer :login_count
|
12
|
+
t.integer :failed_login_count
|
13
|
+
t.datetime :last_request_at
|
14
|
+
t.datetime :current_login_at
|
15
|
+
t.datetime :last_login_at
|
16
|
+
t.string :current_login_ip
|
17
|
+
t.string :last_login_ip
|
18
|
+
|
19
|
+
t.timestamps
|
20
|
+
end
|
21
|
+
|
22
|
+
add_index :users, :login
|
23
|
+
add_index :users, :email
|
24
|
+
add_index :users, :crypted_password
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.down
|
28
|
+
drop_table :users
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class UserSessionsController < ApplicationController
|
2
|
+
before_filter :require_no_user, :only => [:new, :create]
|
3
|
+
before_filter :require_user, :only => :destroy
|
4
|
+
|
5
|
+
def new
|
6
|
+
@user_session = UserSession.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def create
|
10
|
+
@user_session = UserSession.new(params[:user_session])
|
11
|
+
if @user_session.save
|
12
|
+
flash[:notice] = "Login successful!"
|
13
|
+
redirect_back_or_default messages_url
|
14
|
+
else
|
15
|
+
render :action => :new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def destroy
|
20
|
+
current_user_session.destroy
|
21
|
+
flash[:notice] = "Logout successful!"
|
22
|
+
redirect_back_or_default new_user_session_url
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class UsersController < ApplicationController
|
2
|
+
before_filter :require_no_user, :only => [:new, :create]
|
3
|
+
before_filter :require_user, :only => [:show, :edit, :update]
|
4
|
+
before_filter :load_user, :only => [:show, :edit]
|
5
|
+
|
6
|
+
def new
|
7
|
+
@user = User.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def create
|
11
|
+
@user = User.new(params[:user])
|
12
|
+
if @user.save
|
13
|
+
flash[:notice] = "Account registered!"
|
14
|
+
redirect_back_or_default account_url
|
15
|
+
else
|
16
|
+
render :action => :new
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def show
|
21
|
+
end
|
22
|
+
|
23
|
+
def edit
|
24
|
+
end
|
25
|
+
|
26
|
+
def update
|
27
|
+
if @user.update_attributes(params[:user])
|
28
|
+
flash[:notice] = "Account updated!"
|
29
|
+
redirect_to account_url
|
30
|
+
else
|
31
|
+
render :action => :edit
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
protected
|
36
|
+
|
37
|
+
def load_user
|
38
|
+
@user = @current_user
|
39
|
+
end
|
40
|
+
end
|