dust-generators 0.0.1 → 0.0.2
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/Rakefile +10 -11
- data/lib/dust/version.rb +9 -0
- data/lib/generators/dust/config/config_generator.rb +1 -1
- data/lib/generators/dust/scaffold/scaffold_generator.rb +3 -1
- data/lib/generators/dust/scaffold/templates/actions/index.rb +1 -1
- data/lib/generators/dust/scaffold/templates/model.rb +12 -0
- data/lib/generators/dust/scaffold/templates/views/erb/_form.html.erb +10 -4
- data/lib/generators/dust/scaffold/templates/views/erb/_search.html.erb +6 -0
- data/lib/generators/dust/scaffold/templates/views/erb/edit.html.erb +2 -12
- data/lib/generators/dust/scaffold/templates/views/erb/index.html.erb +21 -26
- data/lib/generators/dust/scaffold/templates/views/erb/new.html.erb +1 -3
- data/lib/generators/dust/scaffold/templates/views/erb/show.html.erb +20 -18
- metadata +6 -40
- data/lib/generators/dust/authentication/USAGE +0 -50
- data/lib/generators/dust/authentication/authentication_generator.rb +0 -154
- data/lib/generators/dust/authentication/templates/authlogic_session.rb +0 -2
- data/lib/generators/dust/authentication/templates/controller_authentication.rb +0 -61
- data/lib/generators/dust/authentication/templates/fixtures.yml +0 -24
- data/lib/generators/dust/authentication/templates/migration.rb +0 -20
- data/lib/generators/dust/authentication/templates/sessions_controller.rb +0 -45
- data/lib/generators/dust/authentication/templates/sessions_helper.rb +0 -2
- data/lib/generators/dust/authentication/templates/tests/rspec/sessions_controller.rb +0 -39
- data/lib/generators/dust/authentication/templates/tests/rspec/user.rb +0 -83
- data/lib/generators/dust/authentication/templates/tests/rspec/users_controller.rb +0 -56
- data/lib/generators/dust/authentication/templates/tests/shoulda/sessions_controller.rb +0 -40
- data/lib/generators/dust/authentication/templates/tests/shoulda/user.rb +0 -85
- data/lib/generators/dust/authentication/templates/tests/shoulda/users_controller.rb +0 -61
- data/lib/generators/dust/authentication/templates/tests/testunit/sessions_controller.rb +0 -36
- data/lib/generators/dust/authentication/templates/tests/testunit/user.rb +0 -88
- data/lib/generators/dust/authentication/templates/tests/testunit/users_controller.rb +0 -53
- data/lib/generators/dust/authentication/templates/user.rb +0 -42
- data/lib/generators/dust/authentication/templates/users_controller.rb +0 -34
- data/lib/generators/dust/authentication/templates/users_helper.rb +0 -2
- data/lib/generators/dust/authentication/templates/views/erb/_form.html.erb +0 -20
- data/lib/generators/dust/authentication/templates/views/erb/edit.html.erb +0 -3
- data/lib/generators/dust/authentication/templates/views/erb/login.html.erb +0 -30
- data/lib/generators/dust/authentication/templates/views/erb/signup.html.erb +0 -5
- data/lib/generators/dust/authentication/templates/views/haml/_form.html.haml +0 -20
- data/lib/generators/dust/authentication/templates/views/haml/edit.html.haml +0 -3
- data/lib/generators/dust/authentication/templates/views/haml/login.html.haml +0 -30
- data/lib/generators/dust/authentication/templates/views/haml/signup.html.haml +0 -5
- data/lib/generators/dust/layout/USAGE +0 -25
- data/lib/generators/dust/layout/layout_generator.rb +0 -29
- data/lib/generators/dust/layout/templates/error_messages_helper.rb +0 -23
- data/lib/generators/dust/layout/templates/layout.html.erb +0 -19
- data/lib/generators/dust/layout/templates/layout.html.haml +0 -21
- data/lib/generators/dust/layout/templates/layout_helper.rb +0 -22
- data/lib/generators/dust/layout/templates/stylesheet.css +0 -75
- data/lib/generators/dust/layout/templates/stylesheet.sass +0 -66
data/Rakefile
CHANGED
@@ -1,19 +1,21 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
+
require './lib/dust/version.rb'
|
4
|
+
|
3
5
|
begin
|
4
6
|
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
9
11
|
end
|
10
|
-
require 'rake'
|
11
12
|
|
13
|
+
require 'rake'
|
12
14
|
require 'jeweler'
|
15
|
+
|
13
16
|
Jeweler::Tasks.new do |gem|
|
14
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
17
|
gem.name = "dust-generators"
|
16
|
-
gem.version =
|
18
|
+
gem.version = Dust::Version::STRING
|
17
19
|
gem.homepage = "http://github.com/rossnelson/dust-generators"
|
18
20
|
gem.license = "MIT"
|
19
21
|
gem.summary = %Q{Generators for DustCMS}
|
@@ -21,11 +23,8 @@ Jeweler::Tasks.new do |gem|
|
|
21
23
|
gem.email = "axcess1@me.com"
|
22
24
|
gem.authors = ["rossnelson"]
|
23
25
|
gem.files = FileList["[A-Z]*", "{lib}/**/*"]
|
24
|
-
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
25
|
-
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
26
|
-
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
27
|
-
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
28
26
|
end
|
27
|
+
|
29
28
|
Jeweler::RubygemsDotOrgTasks.new
|
30
29
|
|
31
30
|
require 'rake/testtask'
|
data/lib/dust/version.rb
ADDED
@@ -95,7 +95,9 @@ module Dust
|
|
95
95
|
template "views/#{view_language}/#{action}.html.#{view_language}", "app/views/#{plural_name}/#{action}.html.#{view_language}"
|
96
96
|
end
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
|
+
template "views/#{view_language}/_search.html.erb", "app/views/#{plural_name}/_search.html.erb"
|
100
|
+
|
99
101
|
if form_partial?
|
100
102
|
template "views/#{view_language}/_form.html.#{view_language}", "app/views/#{plural_name}/_form.html.#{view_language}"
|
101
103
|
end
|
@@ -1,3 +1,15 @@
|
|
1
1
|
class <%= class_name %> < ActiveRecord::Base
|
2
2
|
attr_accessible <%= model_attributes.map { |a| ":#{a.name}" }.join(", ") %>
|
3
|
+
|
4
|
+
def self.page(search, page)
|
5
|
+
with_permissions_to(:manage).search(search).order("<%= model_attributes.first %>").paginate(:per_page => 12, :page => page)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.search(search)
|
9
|
+
if search
|
10
|
+
where("<%= model_attributes.first %> LIKE ?", "%#{search}%")
|
11
|
+
else
|
12
|
+
scoped
|
13
|
+
end
|
14
|
+
end
|
3
15
|
end
|
@@ -1,10 +1,16 @@
|
|
1
|
-
|
1
|
+
<%= content_for :head do -%>
|
2
|
+
<%= javascript_include_tag :ckeditor %>
|
3
|
+
<% end -%>
|
4
|
+
|
5
|
+
<%%= form_for @<%= singular_name %>, :validations => true do |f| %>
|
2
6
|
<%%= f.error_messages %>
|
3
7
|
<%- for attribute in model_attributes -%>
|
4
|
-
<
|
8
|
+
<div class="item">
|
5
9
|
<%%= f.label :<%= attribute.name %> %><br />
|
6
10
|
<%%= f.<%= attribute.field_type %> :<%= attribute.name %> %>
|
7
|
-
</
|
11
|
+
</div>
|
8
12
|
<%- end -%>
|
9
|
-
|
13
|
+
<div class="item">
|
14
|
+
<p><%%= f.submit %></p>
|
15
|
+
</div>
|
10
16
|
<%% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<div id="searchbox">
|
2
|
+
<%%= form_tag <%= plural_name %>_path, :method => 'get' do %>
|
3
|
+
<%%= text_field_tag :search, params[:search], :class => "input-text", :placeholder => 'Search <%= singular_name.capitalize %>' %>
|
4
|
+
<%%= image_submit_tag "admin/blank.png", :class => "image-submit"%>
|
5
|
+
<%% end %>
|
6
|
+
</div>
|
@@ -1,14 +1,4 @@
|
|
1
1
|
<%% title "Edit <%= singular_name.titleize %>" %>
|
2
|
+
<% heading "Edit <%= singular_name.titleize %>" %>
|
2
3
|
|
3
|
-
<%= render_form %>
|
4
|
-
|
5
|
-
<%- if actions? :show, :index -%>
|
6
|
-
<p>
|
7
|
-
<%- if action? :show -%>
|
8
|
-
<%%= link_to "Show", @<%= singular_name %> %> |
|
9
|
-
<%- end -%>
|
10
|
-
<%- if action? :index -%>
|
11
|
-
<%%= link_to "View All", <%= plural_name %>_path %>
|
12
|
-
<%- end -%>
|
13
|
-
</p>
|
14
|
-
<%- end -%>
|
4
|
+
<%= render_form %>
|
@@ -1,29 +1,24 @@
|
|
1
1
|
<%% title "<%= plural_name.titleize %>" %>
|
2
2
|
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
<%- end -%>
|
8
|
-
</tr>
|
9
|
-
<%% for <%= singular_name %> in @<%= plural_name %> %>
|
10
|
-
<tr>
|
11
|
-
<%- for attribute in model_attributes -%>
|
12
|
-
<td><%%= <%= singular_name %>.<%= attribute.name %> %></td>
|
13
|
-
<%- end -%>
|
14
|
-
<%- if action? :show -%>
|
15
|
-
<td><%%= link_to "Show", <%= singular_name %> %></td>
|
16
|
-
<%- end -%>
|
17
|
-
<%- if action? :edit -%>
|
18
|
-
<td><%%= link_to "Edit", edit_<%= singular_name %>_path(<%= singular_name %>) %></td>
|
19
|
-
<%- end -%>
|
20
|
-
<%- if action? :destroy -%>
|
21
|
-
<td><%%= link_to "Destroy", <%= singular_name %>, :confirm => 'Are you sure?', :method => :delete %></td>
|
22
|
-
<%- end -%>
|
23
|
-
</tr>
|
24
|
-
<%% end %>
|
25
|
-
</table>
|
3
|
+
<div class="button_bar">
|
4
|
+
<%%= render :partial => 'search' %>
|
5
|
+
<%%=link_to('new page', new_<%= singular_name %>_path, :class => 'newfile tip', :title => "New <%= singular_name.capitalize %>")%>
|
6
|
+
</div>
|
26
7
|
|
27
|
-
|
28
|
-
|
29
|
-
|
8
|
+
<%%= will_paginate @<%= plural_name %> %>
|
9
|
+
|
10
|
+
<%% @<%= plural_name %>.each do |<%= singular_name %>| %>
|
11
|
+
<div class="item">
|
12
|
+
<div style='float:right'>
|
13
|
+
<%%=link_to('', edit_<%= singular_name %>_path(<%= singular_name %>), :class => 'edit tip', :title => "Edit This Item" )%>
|
14
|
+
<%%=link_to "", <%= singular_name %>, :confirm => 'Are you sure?', :method => :delete, :class => 'destroy tip', :title => "Destroy This Item" %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<h3><%%= link_to <%= singular_name %>.<%= model_attributes.first %>, <%= singular_name %> %></h3>
|
18
|
+
<p>
|
19
|
+
<%%= link_to "Preview <%= singular_name.capitalize %>", <%= singular_name %>, :class => 'remote_iframe' %>
|
20
|
+
</p>
|
21
|
+
</div>
|
22
|
+
<%% end -%>
|
23
|
+
|
24
|
+
<%%= will_paginate @<%= plural_name %> %>
|
@@ -1,20 +1,22 @@
|
|
1
1
|
<%% title "<%= singular_name.titleize %>" %>
|
2
2
|
|
3
|
-
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<%-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
<%-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
</p>
|
3
|
+
<div class="item">
|
4
|
+
<div style='float:right'>
|
5
|
+
<%- if action? :edit -%>
|
6
|
+
<%%=link_to '', edit_<%= singular_name %>_path(<%= singular_name %>), :class => 'edit tip', :title => "Edit This Item" %>
|
7
|
+
<%- end -%>
|
8
|
+
<%- if action? :destroy -%>
|
9
|
+
<%%=link_to "", <%= singular_name %>, :confirm => 'Are you sure?', :method => :delete, :class => 'destroy tip', :title => "Destroy This Item" %>
|
10
|
+
<%- end -%>
|
11
|
+
</div>
|
12
|
+
<h3><%%= link_to <%= singular_name %>.<%= model_attributes.first %>, <%= singular_name %>.menu_item.url %></h3>
|
13
|
+
<p>
|
14
|
+
<%%= link_to "Preview <%= singular_name.titleize %>", <%= singular_name %>.filename, :class => 'remote_iframe' %>
|
15
|
+
</p>
|
16
|
+
<%- for attribute in model_attributes -%>
|
17
|
+
<p>
|
18
|
+
<strong><%= attribute.human_name.titleize %>:</strong>
|
19
|
+
<%%= @<%= singular_name %>.<%= attribute.name %> %>
|
20
|
+
</p>
|
21
|
+
<%- end -%>
|
22
|
+
</div>
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- rossnelson
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-02-
|
17
|
+
date: 2011-02-25 00:00:00 -06:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -101,47 +101,12 @@ files:
|
|
101
101
|
- LICENSE.txt
|
102
102
|
- README.rdoc
|
103
103
|
- Rakefile
|
104
|
+
- lib/dust/version.rb
|
104
105
|
- lib/generators/dust.rb
|
105
|
-
- lib/generators/dust/authentication/USAGE
|
106
|
-
- lib/generators/dust/authentication/authentication_generator.rb
|
107
|
-
- lib/generators/dust/authentication/templates/authlogic_session.rb
|
108
|
-
- lib/generators/dust/authentication/templates/controller_authentication.rb
|
109
|
-
- lib/generators/dust/authentication/templates/fixtures.yml
|
110
|
-
- lib/generators/dust/authentication/templates/migration.rb
|
111
|
-
- lib/generators/dust/authentication/templates/sessions_controller.rb
|
112
|
-
- lib/generators/dust/authentication/templates/sessions_helper.rb
|
113
|
-
- lib/generators/dust/authentication/templates/tests/rspec/sessions_controller.rb
|
114
|
-
- lib/generators/dust/authentication/templates/tests/rspec/user.rb
|
115
|
-
- lib/generators/dust/authentication/templates/tests/rspec/users_controller.rb
|
116
|
-
- lib/generators/dust/authentication/templates/tests/shoulda/sessions_controller.rb
|
117
|
-
- lib/generators/dust/authentication/templates/tests/shoulda/user.rb
|
118
|
-
- lib/generators/dust/authentication/templates/tests/shoulda/users_controller.rb
|
119
|
-
- lib/generators/dust/authentication/templates/tests/testunit/sessions_controller.rb
|
120
|
-
- lib/generators/dust/authentication/templates/tests/testunit/user.rb
|
121
|
-
- lib/generators/dust/authentication/templates/tests/testunit/users_controller.rb
|
122
|
-
- lib/generators/dust/authentication/templates/user.rb
|
123
|
-
- lib/generators/dust/authentication/templates/users_controller.rb
|
124
|
-
- lib/generators/dust/authentication/templates/users_helper.rb
|
125
|
-
- lib/generators/dust/authentication/templates/views/erb/_form.html.erb
|
126
|
-
- lib/generators/dust/authentication/templates/views/erb/edit.html.erb
|
127
|
-
- lib/generators/dust/authentication/templates/views/erb/login.html.erb
|
128
|
-
- lib/generators/dust/authentication/templates/views/erb/signup.html.erb
|
129
|
-
- lib/generators/dust/authentication/templates/views/haml/_form.html.haml
|
130
|
-
- lib/generators/dust/authentication/templates/views/haml/edit.html.haml
|
131
|
-
- lib/generators/dust/authentication/templates/views/haml/login.html.haml
|
132
|
-
- lib/generators/dust/authentication/templates/views/haml/signup.html.haml
|
133
106
|
- lib/generators/dust/config/USAGE
|
134
107
|
- lib/generators/dust/config/config_generator.rb
|
135
108
|
- lib/generators/dust/config/templates/config.yml
|
136
109
|
- lib/generators/dust/config/templates/load_config.rb
|
137
|
-
- lib/generators/dust/layout/USAGE
|
138
|
-
- lib/generators/dust/layout/layout_generator.rb
|
139
|
-
- lib/generators/dust/layout/templates/error_messages_helper.rb
|
140
|
-
- lib/generators/dust/layout/templates/layout.html.erb
|
141
|
-
- lib/generators/dust/layout/templates/layout.html.haml
|
142
|
-
- lib/generators/dust/layout/templates/layout_helper.rb
|
143
|
-
- lib/generators/dust/layout/templates/stylesheet.css
|
144
|
-
- lib/generators/dust/layout/templates/stylesheet.sass
|
145
110
|
- lib/generators/dust/scaffold/USAGE
|
146
111
|
- lib/generators/dust/scaffold/scaffold_generator.rb
|
147
112
|
- lib/generators/dust/scaffold/templates/actions/create.rb
|
@@ -184,6 +149,7 @@ files:
|
|
184
149
|
- lib/generators/dust/scaffold/templates/tests/testunit/controller.rb
|
185
150
|
- lib/generators/dust/scaffold/templates/tests/testunit/model.rb
|
186
151
|
- lib/generators/dust/scaffold/templates/views/erb/_form.html.erb
|
152
|
+
- lib/generators/dust/scaffold/templates/views/erb/_search.html.erb
|
187
153
|
- lib/generators/dust/scaffold/templates/views/erb/edit.html.erb
|
188
154
|
- lib/generators/dust/scaffold/templates/views/erb/index.html.erb
|
189
155
|
- lib/generators/dust/scaffold/templates/views/erb/new.html.erb
|
@@ -209,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
209
175
|
requirements:
|
210
176
|
- - ">="
|
211
177
|
- !ruby/object:Gem::Version
|
212
|
-
hash:
|
178
|
+
hash: 4195696695767586530
|
213
179
|
segments:
|
214
180
|
- 0
|
215
181
|
version: "0"
|
@@ -1,50 +0,0 @@
|
|
1
|
-
Description:
|
2
|
-
Generates a user model, users controller, and sessions controller. The
|
3
|
-
users controller handles the registration and the sessions controller
|
4
|
-
handles authentication. This is similar to restful_authentication, but
|
5
|
-
simpler.
|
6
|
-
|
7
|
-
IMPORTANT: This generator uses the "title" helper method which is generated
|
8
|
-
by the dust_layout generator. You may want to run that generator first.
|
9
|
-
|
10
|
-
Usage:
|
11
|
-
If you do not pass any arguments, the model name will default to "user", and
|
12
|
-
the authentication controller will default to "session". You can override
|
13
|
-
each of these respectively by passing one or two arguments. Either name can
|
14
|
-
be CamelCased or under_scored.
|
15
|
-
|
16
|
-
Make sure to setup the authlogic gem if you are using that option.
|
17
|
-
|
18
|
-
gem "authlogic" # in Gemfile
|
19
|
-
|
20
|
-
Examples:
|
21
|
-
rails generate dust:authentication
|
22
|
-
|
23
|
-
Creates user model, users_controller, and sessions_controller.
|
24
|
-
|
25
|
-
rails generate dust:authentication account
|
26
|
-
|
27
|
-
Creates account model, accounts_controller, and sessions_controller.
|
28
|
-
|
29
|
-
rails generate dust:authentication Account UserSession
|
30
|
-
|
31
|
-
Creates account model, accounts_controller, and user_sessions_controller.
|
32
|
-
|
33
|
-
Methods:
|
34
|
-
There are several methods generated which you can use in your application.
|
35
|
-
Here's a common example of what you might add to your layout.
|
36
|
-
|
37
|
-
<% if logged_in? %>
|
38
|
-
Welcome <%= current_user.username %>! Not you?
|
39
|
-
<%= link_to "Log out", logout_path %>
|
40
|
-
<% else %>
|
41
|
-
<%= link_to "Sign up", signup_path %> or
|
42
|
-
<%= link_to "log in", login_path %>.
|
43
|
-
<% end %>
|
44
|
-
|
45
|
-
You can also restrict unregistered users from accessing a controller using
|
46
|
-
a before filter. For example.
|
47
|
-
|
48
|
-
before_filter :login_required, :except => [:index, :show]
|
49
|
-
|
50
|
-
See the generated file lib/authentication.rb for details.
|
@@ -1,154 +0,0 @@
|
|
1
|
-
require 'generators/dust'
|
2
|
-
require 'rails/generators/migration'
|
3
|
-
|
4
|
-
module dust
|
5
|
-
module Generators
|
6
|
-
class AuthenticationGenerator < Base
|
7
|
-
include Rails::Generators::Migration
|
8
|
-
|
9
|
-
argument :user_name, :type => :string, :default => 'user', :banner => 'user_name'
|
10
|
-
argument :session_name, :type => :string, :default => '[[DEFAULT]]', :banner => 'sessions_controller_name'
|
11
|
-
|
12
|
-
class_option :testunit, :desc => 'Use test/unit for test files.', :group => 'Test framework', :type => :boolean
|
13
|
-
class_option :rspec, :desc => 'Use RSpec for test files.', :group => 'Test framework', :type => :boolean
|
14
|
-
class_option :shoulda, :desc => 'Use shoulda for test files.', :group => 'Test framework', :type => :boolean
|
15
|
-
|
16
|
-
class_option :haml, :desc => 'Generate HAML views instead of ERB.', :type => :boolean
|
17
|
-
class_option :authlogic, :desc => 'Use Authlogic for authentication.', :type => :boolean
|
18
|
-
|
19
|
-
def add_gems
|
20
|
-
gem "bcrypt-ruby", :require => "bcrypt" unless File.read(destination_path("Gemfile")).include? "bcrypt"
|
21
|
-
gem "mocha", :group => :test unless File.read(destination_path("Gemfile")).include? "mocha"
|
22
|
-
end
|
23
|
-
|
24
|
-
def create_model_files
|
25
|
-
template 'user.rb', "app/models/#{user_singular_name}.rb"
|
26
|
-
template 'authlogic_session.rb', "app/models/#{user_singular_name}_session.rb" if options.authlogic?
|
27
|
-
end
|
28
|
-
|
29
|
-
def create_controller_files
|
30
|
-
template 'users_controller.rb', "app/controllers/#{user_plural_name}_controller.rb"
|
31
|
-
template 'sessions_controller.rb', "app/controllers/#{session_plural_name}_controller.rb"
|
32
|
-
end
|
33
|
-
|
34
|
-
def create_helper_files
|
35
|
-
template 'users_helper.rb', "app/helpers/#{user_plural_name}_helper.rb"
|
36
|
-
template 'sessions_helper.rb', "app/helpers/#{session_plural_name}_helper.rb"
|
37
|
-
end
|
38
|
-
|
39
|
-
def create_view_files
|
40
|
-
template "views/#{view_language}/signup.html.#{view_language}", "app/views/#{user_plural_name}/new.html.#{view_language}"
|
41
|
-
template "views/#{view_language}/edit.html.#{view_language}", "app/views/#{user_plural_name}/edit.html.#{view_language}"
|
42
|
-
template "views/#{view_language}/_form.html.#{view_language}", "app/views/#{user_plural_name}/_form.html.#{view_language}"
|
43
|
-
template "views/#{view_language}/login.html.#{view_language}", "app/views/#{session_plural_name}/new.html.#{view_language}"
|
44
|
-
end
|
45
|
-
|
46
|
-
def create_lib_files
|
47
|
-
template 'controller_authentication.rb', 'lib/controller_authentication.rb'
|
48
|
-
end
|
49
|
-
|
50
|
-
def create_routes
|
51
|
-
route "resources #{user_plural_name.to_sym.inspect}"
|
52
|
-
route "resources #{session_plural_name.to_sym.inspect}"
|
53
|
-
route "match 'login' => '#{session_plural_name}#new', :as => :login"
|
54
|
-
route "match 'logout' => '#{session_plural_name}#destroy', :as => :logout"
|
55
|
-
route "match 'signup' => '#{user_plural_name}#new', :as => :signup"
|
56
|
-
route "match '#{user_singular_name}/edit' => '#{user_plural_name}#edit', :as => :edit_#{user_singular_name}"
|
57
|
-
end
|
58
|
-
|
59
|
-
def create_migration
|
60
|
-
migration_template 'migration.rb', "db/migrate/create_#{user_plural_name}.rb"
|
61
|
-
end
|
62
|
-
|
63
|
-
def load_and_include_authentication
|
64
|
-
inject_into_class "config/application.rb", "Application", " config.autoload_paths << \"\#{config.root}/lib\""
|
65
|
-
inject_into_class "app/controllers/application_controller.rb", "ApplicationController", " include ControllerAuthentication\n"
|
66
|
-
end
|
67
|
-
|
68
|
-
def create_test_files
|
69
|
-
if test_framework == :rspec
|
70
|
-
template 'fixtures.yml', "spec/fixtures/#{user_plural_name}.yml"
|
71
|
-
template 'tests/rspec/user.rb', "spec/models/#{user_singular_name}_spec.rb"
|
72
|
-
template 'tests/rspec/users_controller.rb', "spec/controllers/#{user_plural_name}_controller_spec.rb"
|
73
|
-
template 'tests/rspec/sessions_controller.rb', "spec/controllers/#{session_plural_name}_controller_spec.rb"
|
74
|
-
else
|
75
|
-
template 'fixtures.yml', "test/fixtures/#{user_plural_name}.yml"
|
76
|
-
template "tests/#{test_framework}/user.rb", "test/unit/#{user_singular_name}_test.rb"
|
77
|
-
template "tests/#{test_framework}/users_controller.rb", "test/functional/#{user_plural_name}_controller_test.rb"
|
78
|
-
template "tests/#{test_framework}/sessions_controller.rb", "test/functional/#{session_plural_name}_controller_test.rb"
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
|
84
|
-
def session_name
|
85
|
-
@_session_name ||= @session_name == '[[DEFAULT]]' ?
|
86
|
-
(options.authlogic? ? user_name + '_session' : 'session') :
|
87
|
-
@session_name
|
88
|
-
end
|
89
|
-
|
90
|
-
def user_singular_name
|
91
|
-
user_name.underscore
|
92
|
-
end
|
93
|
-
|
94
|
-
def user_plural_name
|
95
|
-
user_singular_name.pluralize
|
96
|
-
end
|
97
|
-
|
98
|
-
def user_class_name
|
99
|
-
user_name.camelize
|
100
|
-
end
|
101
|
-
|
102
|
-
def user_plural_class_name
|
103
|
-
user_plural_name.camelize
|
104
|
-
end
|
105
|
-
|
106
|
-
def session_singular_name
|
107
|
-
session_name.underscore
|
108
|
-
end
|
109
|
-
|
110
|
-
def session_plural_name
|
111
|
-
session_singular_name.pluralize
|
112
|
-
end
|
113
|
-
|
114
|
-
def session_class_name
|
115
|
-
session_name.camelize
|
116
|
-
end
|
117
|
-
|
118
|
-
def session_plural_class_name
|
119
|
-
session_plural_name.camelize
|
120
|
-
end
|
121
|
-
|
122
|
-
def view_language
|
123
|
-
options.haml? ? 'haml' : 'erb'
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_framework
|
127
|
-
return @test_framework if defined?(@test_framework)
|
128
|
-
if options.testunit?
|
129
|
-
return @test_framework = :testunit
|
130
|
-
elsif options.rspec?
|
131
|
-
return @test_framework = :rspec
|
132
|
-
elsif options.shoulda?
|
133
|
-
return @test_framework = :shoulda
|
134
|
-
else
|
135
|
-
return @test_framework = File.exist?(destination_path('spec')) ? :rspec : :testunit
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
def destination_path(path)
|
140
|
-
File.join(destination_root, path)
|
141
|
-
end
|
142
|
-
|
143
|
-
# FIXME: Should be proxied to ActiveRecord::Generators::Base
|
144
|
-
# Implement the required interface for Rails::Generators::Migration.
|
145
|
-
def self.next_migration_number(dirname) #:nodoc:
|
146
|
-
if ActiveRecord::Base.timestamped_migrations
|
147
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
148
|
-
else
|
149
|
-
"%.3d" % (current_migration_number(dirname) + 1)
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
# This module is included in your application controller which makes
|
2
|
-
# several methods available to all controllers and views. Here's a
|
3
|
-
# common example you might add to your application layout file.
|
4
|
-
#
|
5
|
-
# <%% if logged_in? %>
|
6
|
-
# Welcome <%%= current_<%= user_singular_name %>.username %>.
|
7
|
-
# <%%= link_to "Edit profile", edit_<%= user_singular_name %>_path %> or
|
8
|
-
# <%%= link_to "Log out", logout_path %>
|
9
|
-
# <%% else %>
|
10
|
-
# <%%= link_to "Sign up", signup_path %> or
|
11
|
-
# <%%= link_to "log in", login_path %>.
|
12
|
-
# <%% end %>
|
13
|
-
#
|
14
|
-
# You can also restrict unregistered users from accessing a controller using
|
15
|
-
# a before filter. For example.
|
16
|
-
#
|
17
|
-
# before_filter :login_required, :except => [:index, :show]
|
18
|
-
module ControllerAuthentication
|
19
|
-
def self.included(controller)
|
20
|
-
controller.send :helper_method, :current_<%= user_singular_name %>, :logged_in?, :redirect_to_target_or_default
|
21
|
-
end
|
22
|
-
|
23
|
-
<%- if options[:authlogic] -%>
|
24
|
-
def current_<%= session_singular_name %>
|
25
|
-
return @current_<%= session_singular_name %> if defined?(@current_<%= session_singular_name %>)
|
26
|
-
@current_<%= session_singular_name %> = <%= session_class_name %>.find
|
27
|
-
end
|
28
|
-
|
29
|
-
def current_<%= user_singular_name %>
|
30
|
-
return @current_<%= user_singular_name %> if defined?(@current_<%= user_singular_name %>)
|
31
|
-
@current_<%= user_singular_name %> = current_<%= session_singular_name %> && current_<%= session_singular_name %>.record
|
32
|
-
end
|
33
|
-
<%- else -%>
|
34
|
-
def current_<%= user_singular_name %>
|
35
|
-
@current_<%= user_singular_name %> ||= <%= user_class_name %>.find(session[:<%= user_singular_name %>_id]) if session[:<%= user_singular_name %>_id]
|
36
|
-
end
|
37
|
-
<%- end -%>
|
38
|
-
|
39
|
-
def logged_in?
|
40
|
-
current_<%= user_singular_name %>
|
41
|
-
end
|
42
|
-
|
43
|
-
def login_required
|
44
|
-
unless logged_in?
|
45
|
-
flash[:error] = "You must first log in or sign up before accessing this page."
|
46
|
-
store_target_location
|
47
|
-
redirect_to login_url
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def redirect_to_target_or_default(default)
|
52
|
-
redirect_to(session[:return_to] || default)
|
53
|
-
session[:return_to] = nil
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
def store_target_location
|
59
|
-
session[:return_to] = request.url
|
60
|
-
end
|
61
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# password: "secret"
|
2
|
-
foo:
|
3
|
-
username: foo
|
4
|
-
email: foo@example.com
|
5
|
-
<%- if options[:authlogic] -%>
|
6
|
-
persistence_token: d5ddba13ed4408ea2b0a12ab18ed2d2eda086279736bdc121ca726a11f1e4b99217d9c534c2cc4ebb22729349c8c5fdbe1529e1f2c3c5859c62ef4dd9feea25c
|
7
|
-
crypted_password: 3d16c326648cccafe3d4b4cb024475c381dda92f430dfedf6f933e1f61203bacb6bae2437849bdb43b06be335e23790e4aa03902b3c28c3bbbbe27d501e521f3
|
8
|
-
password_salt: n6z_wtpWoIsHgQb5IcFd
|
9
|
-
<%- else -%>
|
10
|
-
password_hash: 3488f5f7efecab14b91eb96169e5e1ee518a569f
|
11
|
-
password_salt: bef65e058905c379436d80d1a32e7374b139e7b0
|
12
|
-
<%- end -%>
|
13
|
-
|
14
|
-
bar:
|
15
|
-
username: bar
|
16
|
-
email: bar@example.com
|
17
|
-
<%- if options[:authlogic] -%>
|
18
|
-
persistence_token: 19e074bd7cb506ab3e7e53e41f24f0ab3221c8cb68111f4c1aa43965114ad734233979a50a9463537487cdca18c279ac91c4bc83693d589625d446493322394c
|
19
|
-
crypted_password: 3bc9f4113ca645a186765df3d31a9352d0067bf2304ba0cdd6b08a7f3d58c6668ab1762fa3e76aef466ea2ff188399d8e6c40244fa59312bb4112292dac9f7f0
|
20
|
-
password_salt: UiAh9ejabnKRxqsiK0xO
|
21
|
-
<%- else -%>
|
22
|
-
password_hash: 3488f5f7efecab14b91eb96169e5e1ee518a569f
|
23
|
-
password_salt: bef65e058905c379436d80d1a32e7374b139e7b0
|
24
|
-
<%- end -%>
|
@@ -1,20 +0,0 @@
|
|
1
|
-
class Create<%= user_plural_class_name %> < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
create_table :<%= user_plural_name %> do |t|
|
4
|
-
t.string :username
|
5
|
-
t.string :email
|
6
|
-
<%- if options[:authlogic] -%>
|
7
|
-
t.string :persistence_token
|
8
|
-
t.string :crypted_password
|
9
|
-
<%- else -%>
|
10
|
-
t.string :password_hash
|
11
|
-
<%- end -%>
|
12
|
-
t.string :password_salt
|
13
|
-
t.timestamps
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.down
|
18
|
-
drop_table :<%= user_plural_name %>
|
19
|
-
end
|
20
|
-
end
|