before_actions 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +106 -0
  3. data/Rakefile +13 -19
  4. data/app/controllers/before_actions/foo_controller.rb +8 -0
  5. data/lib/before_actions.rb +7 -1
  6. data/lib/before_actions/controller.rb +29 -20
  7. data/lib/before_actions/engine.rb +7 -0
  8. data/lib/before_actions/version.rb +1 -1
  9. data/spec/controllers/admin_foos_controller_spec.rb +78 -0
  10. data/spec/controllers/foos_controller_spec.rb +139 -0
  11. data/{test → spec}/dummy/README.rdoc +0 -0
  12. data/{test → spec}/dummy/Rakefile +0 -0
  13. data/{test → spec}/dummy/app/assets/javascripts/application.js +0 -3
  14. data/{test → spec}/dummy/app/assets/stylesheets/application.css +0 -0
  15. data/spec/dummy/app/controllers/admin_foos_controller.rb +53 -0
  16. data/{test → spec}/dummy/app/controllers/application_controller.rb +0 -0
  17. data/spec/dummy/app/controllers/foos_controller.rb +92 -0
  18. data/{test → spec}/dummy/app/helpers/application_helper.rb +0 -0
  19. data/spec/dummy/app/models/admin_foo.rb +2 -0
  20. data/spec/dummy/app/models/foo.rb +3 -0
  21. data/spec/dummy/app/views/admin_foos/_form.html.erb +21 -0
  22. data/spec/dummy/app/views/admin_foos/edit.html.erb +6 -0
  23. data/spec/dummy/app/views/admin_foos/index.html.erb +25 -0
  24. data/spec/dummy/app/views/admin_foos/new.html.erb +5 -0
  25. data/spec/dummy/app/views/admin_foos/show.html.erb +9 -0
  26. data/spec/dummy/app/views/foos/_form.html.erb +21 -0
  27. data/spec/dummy/app/views/foos/edit.html.erb +6 -0
  28. data/spec/dummy/app/views/foos/index.html.erb +25 -0
  29. data/spec/dummy/app/views/foos/new.html.erb +5 -0
  30. data/spec/dummy/app/views/foos/show.html.erb +9 -0
  31. data/{test → spec}/dummy/app/views/layouts/application.html.erb +0 -0
  32. data/{test → spec}/dummy/bin/bundle +0 -0
  33. data/{test → spec}/dummy/bin/rails +0 -0
  34. data/{test → spec}/dummy/bin/rake +0 -0
  35. data/{test → spec}/dummy/config.ru +0 -0
  36. data/{test → spec}/dummy/config/application.rb +8 -0
  37. data/{test → spec}/dummy/config/boot.rb +0 -0
  38. data/{test → spec}/dummy/config/database.yml +0 -0
  39. data/{test → spec}/dummy/config/environment.rb +0 -0
  40. data/{test → spec}/dummy/config/environments/development.rb +0 -0
  41. data/{test → spec}/dummy/config/environments/production.rb +0 -0
  42. data/{test → spec}/dummy/config/environments/test.rb +0 -0
  43. data/{test → spec}/dummy/config/initializers/backtrace_silencers.rb +0 -0
  44. data/{test → spec}/dummy/config/initializers/filter_parameter_logging.rb +0 -0
  45. data/{test → spec}/dummy/config/initializers/inflections.rb +0 -0
  46. data/{test → spec}/dummy/config/initializers/mime_types.rb +0 -0
  47. data/{test → spec}/dummy/config/initializers/secret_token.rb +0 -0
  48. data/spec/dummy/config/initializers/session_store.rb +3 -0
  49. data/{test → spec}/dummy/config/initializers/wrap_parameters.rb +0 -0
  50. data/{test → spec}/dummy/config/locales/en.yml +0 -0
  51. data/{test → spec}/dummy/config/routes.rb +4 -0
  52. data/spec/dummy/db/development.sqlite3 +0 -0
  53. data/spec/dummy/db/migrate/20140912040816_create_foos.rb +9 -0
  54. data/spec/dummy/db/migrate/20140912042735_create_admin_foos.rb +9 -0
  55. data/spec/dummy/db/schema.rb +28 -0
  56. data/spec/dummy/db/test.sqlite3 +0 -0
  57. data/spec/dummy/lib/templates/rails/scaffold_controller/controller.rb +97 -0
  58. data/spec/dummy/log/development.log +15 -0
  59. data/spec/dummy/log/test.log +1590 -0
  60. data/{test → spec}/dummy/public/404.html +0 -0
  61. data/{test → spec}/dummy/public/422.html +0 -0
  62. data/{test → spec}/dummy/public/500.html +0 -0
  63. data/{test → spec}/dummy/public/favicon.ico +0 -0
  64. data/spec/rails_helper.rb +54 -0
  65. data/spec/spec_helper.rb +85 -0
  66. metadata +168 -74
  67. data/README.rdoc +0 -60
  68. data/lib/before_actions/command.rb +0 -15
  69. data/test/before_actions_test.rb +0 -7
  70. data/test/dummy/config/initializers/session_store.rb +0 -3
  71. data/test/integration/navigation_test.rb +0 -10
  72. data/test/test_helper.rb +0 -15
File without changes
File without changes
@@ -10,7 +10,4 @@
10
10
  // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
11
  // GO AFTER THE REQUIRES BELOW.
12
12
  //
13
- //= require jquery
14
- //= require jquery_ujs
15
- //= require turbolinks
16
13
  //= require_tree .
@@ -0,0 +1,53 @@
1
+ class AdminFoosController < ApplicationController
2
+
3
+ # Use callbacks to share common setup or constraints between actions.
4
+ before_actions do
5
+ actions(:new, :create, :edit, :update, :destroy) { render_not_authorized }
6
+ actions(:index) { @admin_foos = AdminFoo.all }
7
+ actions(:new) { raise_it }
8
+ actions(:create) { raise_it }
9
+ actions(:show, :edit, :update, :destroy) { @admin_foo = AdminFoo.find(params[:id]) }
10
+ end
11
+
12
+ def index
13
+ end
14
+
15
+ def show
16
+ end
17
+
18
+
19
+
20
+
21
+ def new
22
+ raise_it
23
+ end
24
+
25
+ def create
26
+ raise_it
27
+ end
28
+
29
+ def edit
30
+ raise_it
31
+ end
32
+
33
+ def update
34
+ raise_it
35
+ end
36
+
37
+ def destroy
38
+ raise_it
39
+ end
40
+
41
+ private
42
+
43
+ def render_not_authorized
44
+ render text: "not authorized", status: :unauthorized
45
+ end
46
+
47
+ def raise_it
48
+ raise "expect not to run this code"
49
+ end
50
+
51
+
52
+ end
53
+
@@ -0,0 +1,92 @@
1
+ class FoosController < ApplicationController
2
+
3
+ # Use callbacks to share common setup or constraints between actions.
4
+ before_actions do
5
+ actions { } # load your nested resource's parent here if you need one
6
+ actions(:index) { @foos = Foo.all }
7
+ actions(:new) { @foo = Foo.new }
8
+ actions(:create) { @foo = Foo.new(foo_params) }
9
+ actions(:show, :edit, :update, :destroy) { @foo = Foo.find(params[:id]) }
10
+ actions { } # run your authorization logic here if you need one
11
+ end
12
+
13
+ # GET /foos
14
+ # GET /foos.json
15
+ def index
16
+ respond_to do |format|
17
+ format.html # index.html.erb
18
+ format.json { render json: @foos }
19
+ end
20
+ end
21
+
22
+
23
+
24
+ # GET /foos/new
25
+ def new
26
+ end
27
+
28
+ # GET /foos/1
29
+ # GET /foos/1.json
30
+ def show
31
+ respond_to do |format|
32
+ format.html # show.html.erb
33
+ format.json { render json: @foo }
34
+ end
35
+ end
36
+
37
+ # GET /foos/1/edit
38
+ def edit
39
+ end
40
+
41
+
42
+
43
+ # POST /foos
44
+ # POST /foos.json
45
+ def create
46
+ respond_to do |format|
47
+ if @foo.save
48
+ format.html { redirect_to @foo, notice: 'Foo was successfully created.' }
49
+ format.json { render json: @foo, status: :created }
50
+ else
51
+ format.html { render action: 'new' }
52
+ format.json { render json: @foo.errors, status: :unprocessable_entity }
53
+ end
54
+ end
55
+ end
56
+
57
+ # PATCH/PUT /foos/1
58
+ # PATCH/PUT /foos/1.json
59
+ def update
60
+ respond_to do |format|
61
+ if @foo.update(foo_params)
62
+ format.html { redirect_to @foo, notice: 'Foo was successfully updated.' }
63
+ format.json { head :no_content }
64
+ else
65
+ format.html { render action: 'edit' }
66
+ format.json { render json: @foo.errors, status: :unprocessable_entity }
67
+ end
68
+ end
69
+ end
70
+
71
+ # DELETE /foos/1
72
+ # DELETE /foos/1
73
+ def destroy
74
+ respond_to do |format|
75
+ if @foo.destroy
76
+ format.html { redirect_to foos_url, notice: 'Foo was successfully destroyed.' }
77
+ format.json { head :no_content }
78
+ else
79
+ format.html { render action: 'edit' }
80
+ format.json { render json: @foo.errors, status: :unprocessable_entity }
81
+ end
82
+ end
83
+ end
84
+
85
+ private
86
+
87
+ # Only allow a trusted parameter "white list" through.
88
+ def foo_params
89
+ params.require(:foo).permit(:bar)
90
+ end
91
+ end
92
+
@@ -0,0 +1,2 @@
1
+ class AdminFoo < ActiveRecord::Base
2
+ end
@@ -0,0 +1,3 @@
1
+ class Foo < ActiveRecord::Base
2
+ validates_presence_of :bar
3
+ end
@@ -0,0 +1,21 @@
1
+ <%= form_for(@admin_foo) do |f| %>
2
+ <% if @admin_foo.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@admin_foo.errors.count, "error") %> prohibited this admin_foo from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @admin_foo.errors.full_messages.each do |message| %>
8
+ <li><%= message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="field">
15
+ <%= f.label :bar %><br>
16
+ <%= f.text_field :bar %>
17
+ </div>
18
+ <div class="actions">
19
+ <%= f.submit %>
20
+ </div>
21
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing admin_foo</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @admin_foo %> |
6
+ <%= link_to 'Back', admin_foos_path %>
@@ -0,0 +1,25 @@
1
+ <h1>Listing admin_foos</h1>
2
+
3
+ <table>
4
+ <thead>
5
+ <tr>
6
+ <th>Bar</th>
7
+ <th colspan="3"></th>
8
+ </tr>
9
+ </thead>
10
+
11
+ <tbody>
12
+ <% @admin_foos.each do |admin_foo| %>
13
+ <tr>
14
+ <td><%= admin_foo.bar %></td>
15
+ <td><%= link_to 'Show', admin_foo %></td>
16
+ <td><%= link_to 'Edit', edit_admin_foo_path(admin_foo) %></td>
17
+ <td><%= link_to 'Destroy', admin_foo, method: :delete, data: { confirm: 'Are you sure?' } %></td>
18
+ </tr>
19
+ <% end %>
20
+ </tbody>
21
+ </table>
22
+
23
+ <br>
24
+
25
+ <%= link_to 'New Admin foo', new_admin_foo_path %>
@@ -0,0 +1,5 @@
1
+ <h1>New admin_foo</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', admin_foos_path %>
@@ -0,0 +1,9 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <strong>Bar:</strong>
5
+ <%= @admin_foo.bar %>
6
+ </p>
7
+
8
+ <%= link_to 'Edit', edit_admin_foo_path(@admin_foo) %> |
9
+ <%= link_to 'Back', admin_foos_path %>
@@ -0,0 +1,21 @@
1
+ <%= form_for(@foo) do |f| %>
2
+ <% if @foo.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@foo.errors.count, "error") %> prohibited this foo from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @foo.errors.full_messages.each do |message| %>
8
+ <li><%= message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="field">
15
+ <%= f.label :bar %><br>
16
+ <%= f.text_field :bar %>
17
+ </div>
18
+ <div class="actions">
19
+ <%= f.submit %>
20
+ </div>
21
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing foo</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @foo %> |
6
+ <%= link_to 'Back', foos_path %>
@@ -0,0 +1,25 @@
1
+ <h1>Listing foos</h1>
2
+
3
+ <table>
4
+ <thead>
5
+ <tr>
6
+ <th>Bar</th>
7
+ <th colspan="3"></th>
8
+ </tr>
9
+ </thead>
10
+
11
+ <tbody>
12
+ <% @foos.each do |foo| %>
13
+ <tr>
14
+ <td><%= foo.bar %></td>
15
+ <td><%= link_to 'Show', foo %></td>
16
+ <td><%= link_to 'Edit', edit_foo_path(foo) %></td>
17
+ <td><%= link_to 'Destroy', foo, method: :delete, data: { confirm: 'Are you sure?' } %></td>
18
+ </tr>
19
+ <% end %>
20
+ </tbody>
21
+ </table>
22
+
23
+ <br>
24
+
25
+ <%= link_to 'New Foo', new_foo_path %>
@@ -0,0 +1,5 @@
1
+ <h1>New foo</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', foos_path %>
@@ -0,0 +1,9 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <strong>Bar:</strong>
5
+ <%= @foo.bar %>
6
+ </p>
7
+
8
+ <%= link_to 'Edit', edit_foo_path(@foo) %> |
9
+ <%= link_to 'Back', foos_path %>
File without changes
File without changes
File without changes
File without changes
@@ -18,6 +18,14 @@ module Dummy
18
18
  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
19
19
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
20
20
  # config.i18n.default_locale = :de
21
+
22
+ # don't generate RSpec tests for views and helpers
23
+ config.generators do |g|
24
+ g.test_framework :rspec
25
+ g.stylesheets = false
26
+ g.javascripts = false
27
+ g.helper = false
28
+ end
21
29
  end
22
30
  end
23
31
 
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
@@ -1,4 +1,8 @@
1
1
  Rails.application.routes.draw do
2
2
 
3
+ resources :admin_foos
4
+
5
+ resources :foos
6
+
3
7
  mount BeforeActions::Engine => "/load_resource"
4
8
  end
@@ -0,0 +1,9 @@
1
+ class CreateFoos < ActiveRecord::Migration
2
+ def change
3
+ create_table :foos do |t|
4
+ t.string :bar
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreateAdminFoos < ActiveRecord::Migration
2
+ def change
3
+ create_table :admin_foos do |t|
4
+ t.string :bar
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,28 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 20140912042735) do
15
+
16
+ create_table "admin_foos", force: true do |t|
17
+ t.string "bar"
18
+ t.datetime "created_at"
19
+ t.datetime "updated_at"
20
+ end
21
+
22
+ create_table "foos", force: true do |t|
23
+ t.string "bar"
24
+ t.datetime "created_at"
25
+ t.datetime "updated_at"
26
+ end
27
+
28
+ end