wor-simple_crud 0.3.0 → 0.4.0

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/CHANGELOG.md +31 -2
  4. data/README.md +93 -26
  5. data/lib/simple_crud/action_lambdas.rb +81 -0
  6. data/lib/simple_crud/controller_helpers.rb +11 -2
  7. data/lib/simple_crud/rspec/config.rb +18 -5
  8. data/lib/simple_crud/rspec/helpers/authentication.rb +32 -0
  9. data/lib/simple_crud/rspec/helpers/controller_options.rb +24 -0
  10. data/lib/simple_crud/rspec/helpers/models.rb +70 -0
  11. data/lib/simple_crud/rspec/helpers/policies.rb +25 -0
  12. data/lib/simple_crud/rspec/helpers/requests.rb +45 -0
  13. data/lib/simple_crud/rspec/helpers/settings.rb +49 -0
  14. data/lib/simple_crud/rspec/helpers.rb +16 -138
  15. data/lib/simple_crud/rspec.rb +1 -0
  16. data/lib/simple_crud/simple_crud_controller.rb +33 -81
  17. data/lib/simple_crud/version.rb +1 -1
  18. data/lib/simple_crud.rb +1 -0
  19. data/lib/spec/shared_examples/authorization_adapter_authorize.rb +1 -1
  20. data/lib/spec/shared_examples/simple_crud_for_create.rb +16 -13
  21. data/lib/spec/shared_examples/simple_crud_for_create_with_block.rb +26 -8
  22. data/lib/spec/shared_examples/simple_crud_for_create_with_build.rb +3 -3
  23. data/lib/spec/shared_examples/simple_crud_for_destroy.rb +26 -1
  24. data/lib/spec/shared_examples/simple_crud_for_destroy_with_block.rb +11 -3
  25. data/lib/spec/shared_examples/simple_crud_for_destroy_with_finder.rb +18 -7
  26. data/lib/spec/shared_examples/simple_crud_for_edit.rb +79 -0
  27. data/lib/spec/shared_examples/simple_crud_for_index.rb +2 -2
  28. data/lib/spec/shared_examples/simple_crud_for_index_with_block.rb +12 -4
  29. data/lib/spec/shared_examples/simple_crud_for_index_with_scope.rb +26 -14
  30. data/lib/spec/shared_examples/simple_crud_for_new.rb +2 -2
  31. data/lib/spec/shared_examples/simple_crud_for_new_with_block.rb +14 -3
  32. data/lib/spec/shared_examples/simple_crud_for_new_with_build.rb +11 -5
  33. data/lib/spec/shared_examples/simple_crud_for_show.rb +1 -1
  34. data/lib/spec/shared_examples/simple_crud_for_show_with_block.rb +14 -3
  35. data/lib/spec/shared_examples/simple_crud_for_show_with_finder.rb +17 -8
  36. data/lib/spec/shared_examples/simple_crud_for_update.rb +17 -10
  37. data/lib/spec/shared_examples/simple_crud_for_update_with_finder.rb +17 -7
  38. data/lib/spec/shared_examples/simple_crud_not_found_with_finder.rb +3 -2
  39. data/lib/spec/shared_examples/simple_crud_renders_template.rb +1 -1
  40. data/lib/spec/shared_examples/simple_crud_when_not_authorized.rb +1 -1
  41. data/lib/spec/shared_examples/simple_crud_without_authenticated_user.rb +1 -1
  42. data/lib/spec/shared_examples/unauthorized_when_not_logged_in.rb +1 -1
  43. data/spec/block_finder/dummy_models_controller_spec.rb +10 -0
  44. data/spec/block_json/dummy_models_controller_spec.rb +9 -0
  45. data/spec/block_redirect/dummy_models_controller_spec.rb +7 -0
  46. data/spec/dummy/app/controllers/block/dummy_models_controller.rb +1 -6
  47. data/spec/dummy/app/controllers/block_finder/dummy_models_controller.rb +25 -0
  48. data/spec/dummy/app/controllers/block_json/dummy_models_controller.rb +17 -0
  49. data/spec/dummy/app/controllers/block_new/dummy_models_controller.rb +1 -1
  50. data/spec/dummy/app/controllers/block_redirect/dummy_models_controller.rb +13 -0
  51. data/spec/dummy/app/controllers/block_show/dummy_models_controller.rb +1 -1
  52. data/spec/dummy/app/controllers/built/dummy_models_controller.rb +0 -5
  53. data/spec/dummy/app/controllers/dummy_models_controller.rb +0 -5
  54. data/spec/dummy/app/controllers/finder/dummy_models_controller.rb +1 -5
  55. data/spec/dummy/app/controllers/html_finder/dummy_models_controller.rb +17 -0
  56. data/spec/dummy/app/controllers/html_modes/base_controller.rb +0 -5
  57. data/spec/dummy/app/controllers/html_scoped/dummy_models_controller.rb +1 -1
  58. data/spec/dummy/app/controllers/invalid_status/dummy_models_controller.rb +1 -1
  59. data/spec/dummy/app/controllers/nested/dummy_models_controller.rb +0 -5
  60. data/spec/dummy/app/controllers/nested_route/dummy_models_controller.rb +0 -5
  61. data/spec/dummy/app/controllers/redirect_auth/dummy_models_controller.rb +0 -5
  62. data/spec/dummy/app/controllers/scoped/dummy_models_controller.rb +0 -5
  63. data/spec/dummy/app/controllers/scoped_params/dummy_models_controller.rb +0 -5
  64. data/spec/dummy/app/controllers/strict/dummy_models_controller.rb +0 -5
  65. data/spec/dummy/app/controllers/unpaginated_scoped/dummy_models_controller.rb +11 -0
  66. data/spec/dummy/app/controllers/without_pagination/dummy_models_controller.rb +0 -5
  67. data/spec/dummy/app/models/dummy_model_policy.rb +5 -1
  68. data/spec/dummy/app/views/html_finder/dummy_models/edit.html.erb +1 -0
  69. data/spec/dummy/app/views/html_finder/dummy_models/new.html.erb +1 -0
  70. data/spec/dummy/app/views/html_finder/dummy_models/show.html.erb +1 -0
  71. data/spec/dummy/config/routes.rb +21 -1
  72. data/spec/dummy_model_policy_spec.rb +18 -8
  73. data/spec/finder/dummy_models_controller_spec.rb +1 -0
  74. data/spec/html_finder/dummy_models_controller_spec.rb +11 -0
  75. data/spec/html_scoped/dummy_models_controller_spec.rb +1 -1
  76. data/spec/scoped_params/dummy_models_controller_spec.rb +4 -3
  77. data/spec/simple_crud/rspec_config_spec.rb +39 -0
  78. data/spec/simple_crud_controller_spec.rb +38 -0
  79. data/spec/unpaginated_scoped/dummy_models_controller_spec.rb +7 -0
  80. metadata +23 -2
@@ -6,11 +6,6 @@ module Finder
6
6
  include Pundit::Authorization
7
7
  extend SimpleCrudController
8
8
 
9
- before_action :set_params
10
- def set_params
11
- SimpleCrudController.params = params
12
- end
13
-
14
9
  def dummy_model_params
15
10
  params.permit(:name, :something, :user_id)
16
11
  end
@@ -18,5 +13,6 @@ module Finder
18
13
  simple_crud_for :show, finder: ->(params) { DummyModel.find_by!(slug: params[:slug]) }
19
14
  simple_crud_for :update, finder: :find_by_slug
20
15
  simple_crud_for :destroy, finder: ->(params) { DummyModel.find_by!(slug: params[:slug]) }
16
+ simple_crud_for :edit, finder: ->(params) { DummyModel.find_by!(slug: params[:slug]) }
21
17
  end
22
18
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HtmlFinder
4
+ class DummyModelsController < HtmlModes::BaseController
5
+ include Pundit::Authorization
6
+
7
+ simple_crud_for :show, html: true, authenticate: false, authorize: false,
8
+ finder: ->(params) { DummyModel.find_by!(slug: params[:slug]) }
9
+ simple_crud_for :update, html: true, authenticate: false, authorize: false,
10
+ finder: :find_by_slug
11
+ simple_crud_for :destroy, html: true, authenticate: false, authorize: false,
12
+ finder: ->(params) { DummyModel.find_by!(slug: params[:slug]) }
13
+ simple_crud_for :new, html: true, build: -> { current_user.dummy_models.build }
14
+ simple_crud_for :edit, html: true, authenticate: false, authorize: false,
15
+ finder: ->(params) { DummyModel.find_by!(slug: params[:slug]) }
16
+ end
17
+ end
@@ -5,11 +5,6 @@ module HtmlModes
5
5
  include Wor::Paginate
6
6
  extend SimpleCrudController
7
7
 
8
- before_action :set_params
9
- def set_params
10
- SimpleCrudController.params = params
11
- end
12
-
13
8
  def dummy_model_params
14
9
  params.permit(:name, :something, :user_id, :slug)
15
10
  end
@@ -3,6 +3,6 @@
3
3
  module HtmlScoped
4
4
  class DummyModelsController < HtmlModes::BaseController
5
5
  simple_crud_for :index, html: true, scope: ->(user) { DummyModel.where(user: user) },
6
- authenticate: false, authorize: false
6
+ authorize: false
7
7
  end
8
8
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module InvalidStatus
4
4
  class DummyModelsController < HtmlModes::BaseController
5
- simple_crud_for :create, authenticate: false, authorize: false do |record, saved|
5
+ simple_crud_for :create, html: true, authenticate: false, authorize: false do |record, saved|
6
6
  if saved
7
7
  redirect_to(record)
8
8
  else
@@ -6,11 +6,6 @@ module Nested
6
6
  include Pundit::Authorization
7
7
  extend SimpleCrudController
8
8
 
9
- before_action :set_params
10
- def set_params
11
- SimpleCrudController.params = params
12
- end
13
-
14
9
  def dummy_model_params
15
10
  params.require(:dummy_model).permit(:name, :something, :user_id, :slug)
16
11
  end
@@ -6,11 +6,6 @@ module NestedRoute
6
6
  include Pundit::Authorization
7
7
  extend SimpleCrudController
8
8
 
9
- before_action :set_params
10
- def set_params
11
- SimpleCrudController.params = params
12
- end
13
-
14
9
  def dummy_model_params
15
10
  params.require(:dummy_model).permit(:name, :something, :user_id, :slug, :classroom_slug)
16
11
  end
@@ -10,11 +10,6 @@ module RedirectAuth
10
10
 
11
11
  rescue_from UnauthenticatedError, with: :redirect_to_login
12
12
 
13
- before_action :set_params
14
- def set_params
15
- SimpleCrudController.params = params
16
- end
17
-
18
13
  def authenticate_user!
19
14
  raise UnauthenticatedError unless current_user
20
15
  end
@@ -6,11 +6,6 @@ module Scoped
6
6
  include Pundit::Authorization
7
7
  extend SimpleCrudController
8
8
 
9
- before_action :set_params
10
- def set_params
11
- SimpleCrudController.params = params
12
- end
13
-
14
9
  simple_crud_for :index, scope: ->(user) { DummyModel.where(user: user) }
15
10
  end
16
11
  end
@@ -6,11 +6,6 @@ module ScopedParams
6
6
  include Pundit::Authorization
7
7
  extend SimpleCrudController
8
8
 
9
- before_action :set_params
10
- def set_params
11
- SimpleCrudController.params = params
12
- end
13
-
14
9
  simple_crud_for :index, scope: ->(user, params) { DummyModel.where(user: user, something: params[:something]) }
15
10
  end
16
11
  end
@@ -6,11 +6,6 @@ module Strict
6
6
  include Pundit::Authorization
7
7
  extend SimpleCrudController
8
8
 
9
- before_action :set_params
10
- def set_params
11
- SimpleCrudController.params = params
12
- end
13
-
14
9
  def dummy_model_params
15
10
  params.permit(:name, :something, :user_id, :slug)
16
11
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UnpaginatedScoped
4
+ class DummyModelsController < ApplicationController
5
+ include Wor::Paginate
6
+ include Pundit::Authorization
7
+ extend SimpleCrudController
8
+
9
+ simple_crud_for :index, paginate: false, scope: ->(user) { DummyModel.where(user: user) }
10
+ end
11
+ end
@@ -5,11 +5,6 @@ module WithoutPagination
5
5
  include Pundit::Authorization
6
6
  extend SimpleCrudController
7
7
 
8
- before_action :set_params
9
- def set_params
10
- SimpleCrudController.params = params
11
- end
12
-
13
8
  simple_crud_for :index, paginate: false
14
9
  end
15
10
  end
@@ -20,6 +20,10 @@ class DummyModelPolicy
20
20
  check_user
21
21
  end
22
22
 
23
+ def edit?
24
+ update?
25
+ end
26
+
23
27
  def create?
24
28
  check_user
25
29
  end
@@ -33,6 +37,6 @@ class DummyModelPolicy
33
37
  end
34
38
 
35
39
  def index?
36
- check_user
40
+ user.present?
37
41
  end
38
42
  end
@@ -0,0 +1 @@
1
+ <h1>Edit dummy model</h1>
@@ -0,0 +1 @@
1
+ <h1>New dummy model</h1>
@@ -0,0 +1 @@
1
+ <span class="record"><%= @record.name %></span>
@@ -17,13 +17,25 @@ Rails.application.routes.draw do
17
17
  end
18
18
 
19
19
  namespace :finder do
20
- resources :dummy_models, only: %i[show update destroy], param: :slug
20
+ resources :dummy_models, only: %i[show edit update destroy], param: :slug
21
+ end
22
+
23
+ namespace :html_finder do
24
+ resources :dummy_models, only: %i[new show edit update destroy], param: :slug
25
+ end
26
+
27
+ namespace :block_finder do
28
+ resources :dummy_models, only: %i[show edit update destroy], param: :slug
21
29
  end
22
30
 
23
31
  namespace :scoped do
24
32
  resources :dummy_models, only: :index
25
33
  end
26
34
 
35
+ namespace :unpaginated_scoped do
36
+ resources :dummy_models, only: :index
37
+ end
38
+
27
39
  namespace :scoped_params do
28
40
  resources :dummy_models, only: :index
29
41
  end
@@ -72,6 +84,14 @@ Rails.application.routes.draw do
72
84
  resources :dummy_models, only: :destroy
73
85
  end
74
86
 
87
+ namespace :block_redirect do
88
+ resources :dummy_models, only: %i[show destroy]
89
+ end
90
+
91
+ namespace :block_json do
92
+ resources :dummy_models, only: %i[index show new]
93
+ end
94
+
75
95
  namespace :built do
76
96
  resources :dummy_models, only: %i[new create]
77
97
  end
@@ -7,15 +7,25 @@ describe DummyModelPolicy do
7
7
  let(:other_user) { create(:user) }
8
8
  let(:dummy_model) { create(:dummy_model, user: user) }
9
9
 
10
- %i[destroy? index?].each do |policy_method|
11
- describe "##{policy_method}" do
12
- it 'allows the owning user' do
13
- expect(described_class.new(user, dummy_model).public_send(policy_method)).to be true
14
- end
10
+ describe '#destroy?' do
11
+ it 'allows the owning user' do
12
+ expect(described_class.new(user, dummy_model).destroy?).to be true
13
+ end
14
+
15
+ it 'denies a different user' do
16
+ expect(described_class.new(other_user, dummy_model).destroy?).to be false
17
+ end
18
+ end
19
+
20
+ # :index authorizes the model class, not an instance, so the policy can
21
+ # only reason about the user.
22
+ describe '#index?' do
23
+ it 'allows any signed-in user' do
24
+ expect(described_class.new(other_user, dummy_model).index?).to be true
25
+ end
15
26
 
16
- it 'denies a different user' do
17
- expect(described_class.new(other_user, dummy_model).public_send(policy_method)).to be false
18
- end
27
+ it 'denies an anonymous user' do
28
+ expect(described_class.new(nil, dummy_model).index?).to be false
19
29
  end
20
30
  end
21
31
  end
@@ -3,6 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Finder::DummyModelsController, type: :controller do
6
+ include_examples 'simple crud for edit'
6
7
  include_examples 'simple crud for show with finder'
7
8
  include_examples 'simple crud for update with finder'
8
9
  include_examples 'simple crud for destroy with finder'
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe HtmlFinder::DummyModelsController, type: :controller do
6
+ include_examples 'simple crud for edit'
7
+ include_examples 'simple crud for show with finder'
8
+ include_examples 'simple crud for update with finder'
9
+ include_examples 'simple crud for destroy with finder'
10
+ include_examples 'simple crud for new with build'
11
+ end
@@ -3,5 +3,5 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe HtmlScoped::DummyModelsController, type: :controller do
6
- include_examples 'simple crud for index'
6
+ include_examples 'simple crud for index with scope'
7
7
  end
@@ -2,10 +2,11 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe ScopedParams::DummyModelsController, type: :controller do
5
+ describe ScopedParams::DummyModelsController, simple_crud: {
6
+ scoped_attributes: -> { { user: current_user, something: 42 } },
7
+ other_scoped_attributes: -> { { user: other_user, something: 7 } }
8
+ }, type: :controller do
6
9
  include_examples 'simple crud for index with scope' do
7
- let(:my_models) { create_list(:dummy_model, 2, user: user, something: 42) }
8
- let(:other_models) { create_list(:dummy_model, 1, user: user, something: 7) }
9
10
  let(:request_params) { { something: 42 } }
10
11
  end
11
12
  end
@@ -39,6 +39,16 @@ describe SimpleCrud::RSpec do
39
39
  end
40
40
  end
41
41
 
42
+ it 'derives other_scoped_attributes from model_attributes and the other user' do
43
+ expect(other_scoped_attributes).to eq(user: other_user)
44
+ end
45
+
46
+ it 'requires a Hash model_attributes before deriving other_scoped_attributes' do
47
+ with_config_override(:model_attributes, -> { 'not-a-hash' }) do
48
+ expect { other_scoped_attributes }.to raise_error(ArgumentError, /override other_scoped_attributes instead/)
49
+ end
50
+ end
51
+
42
52
  it 'lets settings be overridden and restored', :aggregate_failures do
43
53
  original = config.required_attribute
44
54
 
@@ -63,5 +73,34 @@ describe SimpleCrud::RSpec do
63
73
 
64
74
  SimpleCrud::RSpec.configure { |c| c.required_attribute = original }
65
75
  end
76
+
77
+ it 'falls back to global config when no metadata overrides' do
78
+ expect(setting(:finder_key)).to eq(:slug)
79
+ end
80
+
81
+ it 'defaults model_attributes to the owner association and current user' do
82
+ expect(model_attributes).to eq(user: current_user)
83
+ end
84
+
85
+ it 'raises a clear error when owner_association has no setter on the model' do
86
+ klass = Class.new { def self.column_names = [] }
87
+ allow(self).to receive_messages(owner_association: :nonexistent, model_class_object: klass)
88
+ expect { validate_owner_association! }.to raise_error(/owner_association is :nonexistent/)
89
+ end
90
+
91
+ describe 'with simple_crud metadata',
92
+ simple_crud: { finder_key: :token, model_attributes: -> { { overridden: true } } } do
93
+ it 'prefers metadata for overridden settings' do
94
+ expect(setting(:finder_key)).to eq(:token)
95
+ end
96
+
97
+ it 'still falls back to global config for the rest' do
98
+ expect(required_attribute).to eq(:name)
99
+ end
100
+
101
+ it 'resolves model_attributes from metadata in the example context' do
102
+ expect(model_attributes).to eq(overridden: true)
103
+ end
104
+ end
66
105
  end
67
106
  end
@@ -8,6 +8,14 @@ class UnpoliceableThingsController
8
8
  extend SimpleCrudController
9
9
  end
10
10
 
11
+ class BaseWithDefaultsController
12
+ extend SimpleCrudController
13
+ simple_crud_defaults authorize: false, authenticate: false, authenticate_headers: true
14
+ end
15
+
16
+ class InheritingController < BaseWithDefaultsController
17
+ end
18
+
11
19
  describe SimpleCrudController do
12
20
  describe '.check_policies' do
13
21
  it 'returns when a matching policy exists' do
@@ -21,6 +29,36 @@ describe SimpleCrudController do
21
29
  end
22
30
  end
23
31
 
32
+ describe '.simple_crud_defaults' do
33
+ it 'applies to parameters_with_defaults', :aggregate_failures do
34
+ params = BaseWithDefaultsController.parameters_with_defaults({})
35
+ expect(params[:authorize]).to be false
36
+ expect(params[:authenticate]).to be false
37
+ expect(params[:authenticate_headers]).to be true
38
+ end
39
+
40
+ it 'are inherited by subclasses', :aggregate_failures do
41
+ params = InheritingController.parameters_with_defaults({})
42
+ expect(params[:authorize]).to be false
43
+ expect(params[:authenticate]).to be false
44
+ expect(params[:authenticate_headers]).to be true
45
+ end
46
+
47
+ it 'can be overridden per action', :aggregate_failures do
48
+ params = InheritingController.parameters_with_defaults(authorize: true)
49
+ expect(params[:authorize]).to be true
50
+ expect(params[:authenticate]).to be false
51
+ expect(params[:authenticate_headers]).to be true
52
+ end
53
+
54
+ it 'does not affect unrelated controllers', :aggregate_failures do
55
+ params = DummyModelsController.parameters_with_defaults({})
56
+ expect(params[:authorize]).to be true
57
+ expect(params[:authenticate]).to be true
58
+ expect(params[:authenticate_headers]).to be true
59
+ end
60
+ end
61
+
24
62
  describe '.check_serializer' do
25
63
  it 'returns when the serializer option is blank' do
26
64
  expect { DummyModelsController.check_serializer({}) }.not_to raise_error
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe UnpaginatedScoped::DummyModelsController, type: :controller do
6
+ include_examples 'simple crud for index with scope'
7
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wor-simple_crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - icoluccio
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-08-21 00:00:00.000000000 Z
10
+ date: 2026-08-30 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -48,6 +48,7 @@ files:
48
48
  - README.md
49
49
  - Rakefile
50
50
  - lib/simple_crud.rb
51
+ - lib/simple_crud/action_lambdas.rb
51
52
  - lib/simple_crud/authorization/action_policy_adapter.rb
52
53
  - lib/simple_crud/authorization/adapter.rb
53
54
  - lib/simple_crud/authorization/can_can_can_adapter.rb
@@ -62,6 +63,12 @@ files:
62
63
  - lib/simple_crud/rspec.rb
63
64
  - lib/simple_crud/rspec/config.rb
64
65
  - lib/simple_crud/rspec/helpers.rb
66
+ - lib/simple_crud/rspec/helpers/authentication.rb
67
+ - lib/simple_crud/rspec/helpers/controller_options.rb
68
+ - lib/simple_crud/rspec/helpers/models.rb
69
+ - lib/simple_crud/rspec/helpers/policies.rb
70
+ - lib/simple_crud/rspec/helpers/requests.rb
71
+ - lib/simple_crud/rspec/helpers/settings.rb
65
72
  - lib/simple_crud/simple_crud_controller.rb
66
73
  - lib/simple_crud/version.rb
67
74
  - lib/spec/matchers/have_been_serialized_with.rb
@@ -74,6 +81,7 @@ files:
74
81
  - lib/spec/shared_examples/simple_crud_for_destroy.rb
75
82
  - lib/spec/shared_examples/simple_crud_for_destroy_with_block.rb
76
83
  - lib/spec/shared_examples/simple_crud_for_destroy_with_finder.rb
84
+ - lib/spec/shared_examples/simple_crud_for_edit.rb
77
85
  - lib/spec/shared_examples/simple_crud_for_index.rb
78
86
  - lib/spec/shared_examples/simple_crud_for_index_with_block.rb
79
87
  - lib/spec/shared_examples/simple_crud_for_index_with_scope.rb
@@ -94,7 +102,10 @@ files:
94
102
  - spec/block/dummy_models_controller_spec.rb
95
103
  - spec/block_create/dummy_models_controller_spec.rb
96
104
  - spec/block_destroy/dummy_models_controller_spec.rb
105
+ - spec/block_finder/dummy_models_controller_spec.rb
106
+ - spec/block_json/dummy_models_controller_spec.rb
97
107
  - spec/block_new/dummy_models_controller_spec.rb
108
+ - spec/block_redirect/dummy_models_controller_spec.rb
98
109
  - spec/block_show/dummy_models_controller_spec.rb
99
110
  - spec/built/dummy_models_controller_spec.rb
100
111
  - spec/dummy/Rakefile
@@ -103,8 +114,11 @@ files:
103
114
  - spec/dummy/app/controllers/block/dummy_models_controller.rb
104
115
  - spec/dummy/app/controllers/block_create/dummy_models_controller.rb
105
116
  - spec/dummy/app/controllers/block_destroy/dummy_models_controller.rb
117
+ - spec/dummy/app/controllers/block_finder/dummy_models_controller.rb
118
+ - spec/dummy/app/controllers/block_json/dummy_models_controller.rb
106
119
  - spec/dummy/app/controllers/block_modes/base_controller.rb
107
120
  - spec/dummy/app/controllers/block_new/dummy_models_controller.rb
121
+ - spec/dummy/app/controllers/block_redirect/dummy_models_controller.rb
108
122
  - spec/dummy/app/controllers/block_show/dummy_models_controller.rb
109
123
  - spec/dummy/app/controllers/built/dummy_models_controller.rb
110
124
  - spec/dummy/app/controllers/dummy_models_controller.rb
@@ -112,6 +126,7 @@ files:
112
126
  - spec/dummy/app/controllers/html/dummy_models_controller.rb
113
127
  - spec/dummy/app/controllers/html_create/dummy_models_controller.rb
114
128
  - spec/dummy/app/controllers/html_destroy/dummy_models_controller.rb
129
+ - spec/dummy/app/controllers/html_finder/dummy_models_controller.rb
115
130
  - spec/dummy/app/controllers/html_modes/base_controller.rb
116
131
  - spec/dummy/app/controllers/html_new/dummy_models_controller.rb
117
132
  - spec/dummy/app/controllers/html_scoped/dummy_models_controller.rb
@@ -125,6 +140,7 @@ files:
125
140
  - spec/dummy/app/controllers/scoped/dummy_models_controller.rb
126
141
  - spec/dummy/app/controllers/scoped_params/dummy_models_controller.rb
127
142
  - spec/dummy/app/controllers/strict/dummy_models_controller.rb
143
+ - spec/dummy/app/controllers/unpaginated_scoped/dummy_models_controller.rb
128
144
  - spec/dummy/app/controllers/without_pagination/dummy_models_controller.rb
129
145
  - spec/dummy/app/models/application_record.rb
130
146
  - spec/dummy/app/models/concerns/.keep
@@ -138,6 +154,9 @@ files:
138
154
  - spec/dummy/app/views/html/dummy_models/index.html.erb
139
155
  - spec/dummy/app/views/html_create/dummy_models/new.html.erb
140
156
  - spec/dummy/app/views/html_destroy/dummy_models/show.html.erb
157
+ - spec/dummy/app/views/html_finder/dummy_models/edit.html.erb
158
+ - spec/dummy/app/views/html_finder/dummy_models/new.html.erb
159
+ - spec/dummy/app/views/html_finder/dummy_models/show.html.erb
141
160
  - spec/dummy/app/views/html_new/dummy_models/new.html.erb
142
161
  - spec/dummy/app/views/html_scoped/dummy_models/index.html.erb
143
162
  - spec/dummy/app/views/html_show/dummy_models/show.html.erb
@@ -180,6 +199,7 @@ files:
180
199
  - spec/html/dummy_models_controller_spec.rb
181
200
  - spec/html_create/dummy_models_controller_spec.rb
182
201
  - spec/html_destroy/dummy_models_controller_spec.rb
202
+ - spec/html_finder/dummy_models_controller_spec.rb
183
203
  - spec/html_new/dummy_models_controller_spec.rb
184
204
  - spec/html_scoped/dummy_models_controller_spec.rb
185
205
  - spec/html_show/dummy_models_controller_spec.rb
@@ -202,6 +222,7 @@ files:
202
222
  - spec/spec_helper.rb
203
223
  - spec/spy.rb
204
224
  - spec/strict/dummy_models_controller_spec.rb
225
+ - spec/unpaginated_scoped/dummy_models_controller_spec.rb
205
226
  - spec/without_pagination/dummy_models_controller_spec.rb
206
227
  - wor-simple_crud.gemspec
207
228
  homepage: https://github.com/icoluccio/simple-crud