furious-generators 0.0.1
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.
- 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
|