before_actions 1.0.2 → 1.0.3

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.
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