ohlala_rails_scaffold_templates 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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -0
- data/lib/generators/ohlala_templates/USAGE +6 -0
- data/lib/generators/ohlala_templates/ohlala_templates_generator.rb +17 -0
- data/lib/generators/ohlala_templates/templates/.DS_Store +0 -0
- data/lib/generators/ohlala_templates/templates/_form.html.erb +17 -0
- data/lib/generators/ohlala_templates/templates/controller.rb +55 -0
- data/lib/generators/ohlala_templates/templates/edit.html.erb +1 -0
- data/lib/generators/ohlala_templates/templates/functional_test.rb +54 -0
- data/lib/generators/ohlala_templates/templates/index.html.erb +25 -0
- data/lib/generators/ohlala_templates/templates/model.rb +14 -0
- data/lib/generators/ohlala_templates/templates/new.html.erb +1 -0
- data/lib/generators/ohlala_templates/templates/show.html.erb +11 -0
- data/lib/generators/ohlala_templates/templates/unit_test.rb +10 -0
- data/lib/ohlala_rails_scaffold_templates.rb +3 -0
- data/lib/ohlala_rails_scaffold_templates/version.rb +3 -0
- data/ohlala_rails_scaffold_templates.gemspec +21 -0
- metadata +72 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
class OhlalaTemplatesGenerator < Rails::Generators::Base
|
2
|
+
|
3
|
+
source_root File.expand_path('../templates', __FILE__)
|
4
|
+
|
5
|
+
def install
|
6
|
+
copy_file "index.html.erb", "lib/templates/erb/scaffold/index.html.erb"
|
7
|
+
copy_file "show.html.erb", "lib/templates/erb/scaffold/show.html.erb"
|
8
|
+
copy_file "new.html.erb", "lib/templates/erb/scaffold/new.html.erb"
|
9
|
+
copy_file "edit.html.erb", "lib/templates/erb/scaffold/edit.html.erb"
|
10
|
+
copy_file "_form.html.erb", "lib/templates/erb/scaffold/_form.html.erb"
|
11
|
+
copy_file "model.rb", "lib/templates/active_record/model/model.rb"
|
12
|
+
copy_file "controller.rb", "lib/templates/rails/scaffold_controller/controller.rb"
|
13
|
+
copy_file "unit_test.rb", "lib/templates/test_unit/scaffold/test_unit.rb"
|
14
|
+
copy_file "functional_test.rb", "lib/templates/test_unit/scaffold/functional.rb"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
Binary file
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<%%= simple_form_for @<%= singular_name %> do |f| %>
|
2
|
+
|
3
|
+
<%%= f.error_notification %>
|
4
|
+
|
5
|
+
<div class="inputs">
|
6
|
+
<%- attributes.each do |attribute| -%>
|
7
|
+
<%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %>,
|
8
|
+
:placeholder => 'helpful_short_hint',
|
9
|
+
:hint => 'longer_and_very_helpful_hint' %>
|
10
|
+
<%- end -%>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="actions">
|
14
|
+
<%%= f.button :submit %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<%% end %>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
2
|
+
|
3
|
+
before_filter :authenticate, :except => 'show'
|
4
|
+
before_filter :authorize, :except => 'show'
|
5
|
+
|
6
|
+
def index
|
7
|
+
# can't replace 'all' by 'by_recent' automatically. It has to be done by hand
|
8
|
+
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>.paginate :page => params[:page], :per_page => 50
|
9
|
+
build_admin_menu 1 # calls default admin menu. change admin menu id later
|
10
|
+
switch_layout 'admin'
|
11
|
+
end
|
12
|
+
|
13
|
+
def show
|
14
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
15
|
+
end
|
16
|
+
|
17
|
+
def new
|
18
|
+
@<%= singular_table_name %> = <%= orm_class.build(class_name) %>
|
19
|
+
build_admin_menu 1 # calls default admin menu. change admin menu id later
|
20
|
+
switch_layout 'admin'
|
21
|
+
end
|
22
|
+
|
23
|
+
def edit
|
24
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
25
|
+
build_admin_menu 1 # calls default admin menu. change admin menu id later
|
26
|
+
switch_layout 'admin'
|
27
|
+
end
|
28
|
+
|
29
|
+
def create
|
30
|
+
@<%= singular_table_name %> = <%= orm_class.build(class_name, "params[:#{singular_table_name}]") %>
|
31
|
+
if @<%= orm_instance.save %>
|
32
|
+
redirect_to @<%= singular_table_name %>, :notice => '<%= human_name %> was successfully created.'
|
33
|
+
else
|
34
|
+
render :action => "new", :warning => 'There was a problem saving the <%= human_name %>.'
|
35
|
+
switch_layout 'admin'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def update
|
40
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
41
|
+
if @<%= orm_instance.update_attributes("params[:#{singular_table_name}]") %>
|
42
|
+
redirect_to @<%= singular_table_name %>, :notice => '<%= human_name %> was successfully updated.'
|
43
|
+
else
|
44
|
+
render :action => "edit", :warning => 'There was a problem saving the <%= human_name %>.'
|
45
|
+
switch_layout 'admin'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def destroy
|
50
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
51
|
+
@<%= orm_instance.destroy %>
|
52
|
+
redirect_to <%= index_helper %>_path
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%%= render 'form' %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class <%= controller_class_name %>ControllerTest < ActionController::TestCase
|
4
|
+
|
5
|
+
setup do
|
6
|
+
@<%= singular_table_name %> = Factory.create :<%= singular_table_name %>
|
7
|
+
@current_user = Factory.create :user, :id => 1, :email => 'test@example.com', :password => 'password', :admin => true
|
8
|
+
session[:user_id] = 1
|
9
|
+
end
|
10
|
+
|
11
|
+
test "should get index" do
|
12
|
+
a = Factory.create :admin_menu, :id => 1 # using default admin menu. change this value later
|
13
|
+
get :index, {:locale => 'en'}
|
14
|
+
assert_response :success
|
15
|
+
assert_not_nil assigns(:<%= table_name %>)
|
16
|
+
end
|
17
|
+
|
18
|
+
test "should get new" do
|
19
|
+
a = Factory.create :admin_menu, :id => 1 # using default admin menu. change this value later
|
20
|
+
get :new, {:locale => 'en'}
|
21
|
+
assert_response :success
|
22
|
+
end
|
23
|
+
|
24
|
+
test "should create <%= singular_table_name %>" do
|
25
|
+
assert_difference('<%= class_name %>.count') do
|
26
|
+
post :create, {:<%= singular_table_name %> => @<%= singular_table_name %>.attributes, :locale => 'en'}
|
27
|
+
end
|
28
|
+
assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>))
|
29
|
+
end
|
30
|
+
|
31
|
+
test "should show <%= singular_table_name %>" do
|
32
|
+
get :show, {:id => @<%= singular_table_name %>.to_param, :locale => 'en'}
|
33
|
+
assert_response :success
|
34
|
+
end
|
35
|
+
|
36
|
+
test "should get edit" do
|
37
|
+
a = Factory.create :admin_menu, :id => 1 # using default admin menu. change this value later
|
38
|
+
get :edit, {:id => @<%= singular_table_name %>.to_param, :locale => 'en'}
|
39
|
+
assert_response :success
|
40
|
+
end
|
41
|
+
|
42
|
+
test "should update <%= singular_table_name %>" do
|
43
|
+
put :update, {:id => @<%= singular_table_name %>.to_param, :<%= singular_table_name %> => @<%= singular_table_name %>.attributes, :locale => 'en'}
|
44
|
+
assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>))
|
45
|
+
end
|
46
|
+
|
47
|
+
test "should destroy <%= singular_table_name %>" do
|
48
|
+
assert_difference('<%= class_name %>.count', -1) do
|
49
|
+
delete :destroy, {:id => @<%= singular_table_name %>.to_param, :locale => 'en'}
|
50
|
+
end
|
51
|
+
assert_redirected_to <%= index_helper %>_path
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%%= will_paginate @<%= plural_table_name %> %>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
|
5
|
+
<tr>
|
6
|
+
<% for attribute in attributes -%>
|
7
|
+
<th><%= attribute.human_name %></th>
|
8
|
+
<% end -%>
|
9
|
+
<th>Actions</th>
|
10
|
+
</tr>
|
11
|
+
|
12
|
+
<%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
|
13
|
+
<tr>
|
14
|
+
<% for attribute in attributes -%>
|
15
|
+
<td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
|
16
|
+
<% end -%>
|
17
|
+
<td><nobr><%%= link_to 'View', <%= singular_table_name %>, :class => 'css3b-left pill button' %><%%= link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>), :class => 'middle pill button' %><%%= link_to 'Delete', <%= singular_table_name %>, :confirm => 'Are you sure?', :method => :delete, :class => 'css3b-right negative pill button' %></nobr></td>
|
18
|
+
</tr>
|
19
|
+
<%% end %>
|
20
|
+
|
21
|
+
<tr><td colspan="3"><%%= link_to 'New <%= human_name %>', new_<%= singular_table_name %>_path, :class => 'pill button' %></td></tr>
|
22
|
+
|
23
|
+
</table>
|
24
|
+
|
25
|
+
<%%= will_paginate @<%= plural_table_name %> %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class <%= class_name %> < <%= parent_class_name.classify %>
|
2
|
+
|
3
|
+
<% attributes.select {|attr| attr.reference? }.each do |attribute| -%>
|
4
|
+
belongs_to :<%= attribute.name %>
|
5
|
+
<% end -%>
|
6
|
+
# use the stringex gem to create slug | usually on the title or name attribute
|
7
|
+
acts_as_url :name, :url_attribute => :slug, :only_when_blank => true
|
8
|
+
def to_param
|
9
|
+
"#{id}-#{name.to_url}"
|
10
|
+
end
|
11
|
+
|
12
|
+
scope :by_recent, :order => 'id desc'
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%%= render 'form' %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%% set_title @<%= singular_table_name %>.title_or_name_goes_here %>
|
2
|
+
<%% set_description @<%= singular_table_name %>.description_field_goes_here %>
|
3
|
+
|
4
|
+
<h1><%%= @<%= singular_table_name %>.name_or_title_field %></h1>
|
5
|
+
|
6
|
+
<%%= raw @<%= singular_table_name %>.body_or_main_text_field %>
|
7
|
+
|
8
|
+
<%% if current_user && current_user.admin? %>
|
9
|
+
<hr>
|
10
|
+
<p><nobr><%%= link_to 'Edit this <%= singular_table_name %>', edit_<%= singular_table_name %>_path(@<%= singular_table_name %>), :class => 'css3b-left pill button' %><%%= link_to 'List all <%= plural_table_name %>', <%= plural_table_name %>_path, :class => 'css3b-right pill button' %></nobr></p>
|
11
|
+
<%% end %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "ohlala_rails_scaffold_templates/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "ohlala_rails_scaffold_templates"
|
7
|
+
s.version = OhlalaRailsScaffoldTemplates::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Swami Atma"]
|
10
|
+
s.email = ["swami@ohlalaweb.com"]
|
11
|
+
s.homepage = "https://github.com/allesklar/ohlala-rails-scaffold-templates"
|
12
|
+
s.summary = %q{Rails 3+ scaffold templates}
|
13
|
+
s.description = %q{A ridiculously opinionated set of scaffold templates for Rails 3 and later. Meant to be used for the Ohlàlà! Webdesigns projects but can be customized to any Rails developer's workflow.}
|
14
|
+
|
15
|
+
s.rubyforge_project = "ohlala_rails_scaffold_templates"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ohlala_rails_scaffold_templates
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.2
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Swami Atma
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-04-27 00:00:00 Z
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: "A ridiculously opinionated set of scaffold templates for Rails 3 and later. Meant to be used for the Ohl\xC3\xA0l\xC3\xA0! Webdesigns projects but can be customized to any Rails developer's workflow."
|
17
|
+
email:
|
18
|
+
- swami@ohlalaweb.com
|
19
|
+
executables: []
|
20
|
+
|
21
|
+
extensions: []
|
22
|
+
|
23
|
+
extra_rdoc_files: []
|
24
|
+
|
25
|
+
files:
|
26
|
+
- .gitignore
|
27
|
+
- Gemfile
|
28
|
+
- Rakefile
|
29
|
+
- lib/generators/ohlala_templates/USAGE
|
30
|
+
- lib/generators/ohlala_templates/ohlala_templates_generator.rb
|
31
|
+
- lib/generators/ohlala_templates/templates/.DS_Store
|
32
|
+
- lib/generators/ohlala_templates/templates/_form.html.erb
|
33
|
+
- lib/generators/ohlala_templates/templates/controller.rb
|
34
|
+
- lib/generators/ohlala_templates/templates/edit.html.erb
|
35
|
+
- lib/generators/ohlala_templates/templates/functional_test.rb
|
36
|
+
- lib/generators/ohlala_templates/templates/index.html.erb
|
37
|
+
- lib/generators/ohlala_templates/templates/model.rb
|
38
|
+
- lib/generators/ohlala_templates/templates/new.html.erb
|
39
|
+
- lib/generators/ohlala_templates/templates/show.html.erb
|
40
|
+
- lib/generators/ohlala_templates/templates/unit_test.rb
|
41
|
+
- lib/ohlala_rails_scaffold_templates.rb
|
42
|
+
- lib/ohlala_rails_scaffold_templates/version.rb
|
43
|
+
- ohlala_rails_scaffold_templates.gemspec
|
44
|
+
homepage: https://github.com/allesklar/ohlala-rails-scaffold-templates
|
45
|
+
licenses: []
|
46
|
+
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
requirements: []
|
65
|
+
|
66
|
+
rubyforge_project: ohlala_rails_scaffold_templates
|
67
|
+
rubygems_version: 1.7.2
|
68
|
+
signing_key:
|
69
|
+
specification_version: 3
|
70
|
+
summary: Rails 3+ scaffold templates
|
71
|
+
test_files: []
|
72
|
+
|