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.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/CHANGELOG.md +31 -2
- data/README.md +93 -26
- data/lib/simple_crud/action_lambdas.rb +81 -0
- data/lib/simple_crud/controller_helpers.rb +11 -2
- data/lib/simple_crud/rspec/config.rb +18 -5
- data/lib/simple_crud/rspec/helpers/authentication.rb +32 -0
- data/lib/simple_crud/rspec/helpers/controller_options.rb +24 -0
- data/lib/simple_crud/rspec/helpers/models.rb +70 -0
- data/lib/simple_crud/rspec/helpers/policies.rb +25 -0
- data/lib/simple_crud/rspec/helpers/requests.rb +45 -0
- data/lib/simple_crud/rspec/helpers/settings.rb +49 -0
- data/lib/simple_crud/rspec/helpers.rb +16 -138
- data/lib/simple_crud/rspec.rb +1 -0
- data/lib/simple_crud/simple_crud_controller.rb +33 -81
- data/lib/simple_crud/version.rb +1 -1
- data/lib/simple_crud.rb +1 -0
- data/lib/spec/shared_examples/authorization_adapter_authorize.rb +1 -1
- data/lib/spec/shared_examples/simple_crud_for_create.rb +16 -13
- data/lib/spec/shared_examples/simple_crud_for_create_with_block.rb +26 -8
- data/lib/spec/shared_examples/simple_crud_for_create_with_build.rb +3 -3
- data/lib/spec/shared_examples/simple_crud_for_destroy.rb +26 -1
- data/lib/spec/shared_examples/simple_crud_for_destroy_with_block.rb +11 -3
- data/lib/spec/shared_examples/simple_crud_for_destroy_with_finder.rb +18 -7
- data/lib/spec/shared_examples/simple_crud_for_edit.rb +79 -0
- data/lib/spec/shared_examples/simple_crud_for_index.rb +2 -2
- data/lib/spec/shared_examples/simple_crud_for_index_with_block.rb +12 -4
- data/lib/spec/shared_examples/simple_crud_for_index_with_scope.rb +26 -14
- data/lib/spec/shared_examples/simple_crud_for_new.rb +2 -2
- data/lib/spec/shared_examples/simple_crud_for_new_with_block.rb +14 -3
- data/lib/spec/shared_examples/simple_crud_for_new_with_build.rb +11 -5
- data/lib/spec/shared_examples/simple_crud_for_show.rb +1 -1
- data/lib/spec/shared_examples/simple_crud_for_show_with_block.rb +14 -3
- data/lib/spec/shared_examples/simple_crud_for_show_with_finder.rb +17 -8
- data/lib/spec/shared_examples/simple_crud_for_update.rb +17 -10
- data/lib/spec/shared_examples/simple_crud_for_update_with_finder.rb +17 -7
- data/lib/spec/shared_examples/simple_crud_not_found_with_finder.rb +3 -2
- data/lib/spec/shared_examples/simple_crud_renders_template.rb +1 -1
- data/lib/spec/shared_examples/simple_crud_when_not_authorized.rb +1 -1
- data/lib/spec/shared_examples/simple_crud_without_authenticated_user.rb +1 -1
- data/lib/spec/shared_examples/unauthorized_when_not_logged_in.rb +1 -1
- data/spec/block_finder/dummy_models_controller_spec.rb +10 -0
- data/spec/block_json/dummy_models_controller_spec.rb +9 -0
- data/spec/block_redirect/dummy_models_controller_spec.rb +7 -0
- data/spec/dummy/app/controllers/block/dummy_models_controller.rb +1 -6
- data/spec/dummy/app/controllers/block_finder/dummy_models_controller.rb +25 -0
- data/spec/dummy/app/controllers/block_json/dummy_models_controller.rb +17 -0
- data/spec/dummy/app/controllers/block_new/dummy_models_controller.rb +1 -1
- data/spec/dummy/app/controllers/block_redirect/dummy_models_controller.rb +13 -0
- data/spec/dummy/app/controllers/block_show/dummy_models_controller.rb +1 -1
- data/spec/dummy/app/controllers/built/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/finder/dummy_models_controller.rb +1 -5
- data/spec/dummy/app/controllers/html_finder/dummy_models_controller.rb +17 -0
- data/spec/dummy/app/controllers/html_modes/base_controller.rb +0 -5
- data/spec/dummy/app/controllers/html_scoped/dummy_models_controller.rb +1 -1
- data/spec/dummy/app/controllers/invalid_status/dummy_models_controller.rb +1 -1
- data/spec/dummy/app/controllers/nested/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/nested_route/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/redirect_auth/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/scoped/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/scoped_params/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/strict/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/controllers/unpaginated_scoped/dummy_models_controller.rb +11 -0
- data/spec/dummy/app/controllers/without_pagination/dummy_models_controller.rb +0 -5
- data/spec/dummy/app/models/dummy_model_policy.rb +5 -1
- data/spec/dummy/app/views/html_finder/dummy_models/edit.html.erb +1 -0
- data/spec/dummy/app/views/html_finder/dummy_models/new.html.erb +1 -0
- data/spec/dummy/app/views/html_finder/dummy_models/show.html.erb +1 -0
- data/spec/dummy/config/routes.rb +21 -1
- data/spec/dummy_model_policy_spec.rb +18 -8
- data/spec/finder/dummy_models_controller_spec.rb +1 -0
- data/spec/html_finder/dummy_models_controller_spec.rb +11 -0
- data/spec/html_scoped/dummy_models_controller_spec.rb +1 -1
- data/spec/scoped_params/dummy_models_controller_spec.rb +4 -3
- data/spec/simple_crud/rspec_config_spec.rb +39 -0
- data/spec/simple_crud_controller_spec.rb +38 -0
- data/spec/unpaginated_scoped/dummy_models_controller_spec.rb +7 -0
- 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
|
|
@@ -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
|
|
@@ -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>
|
data/spec/dummy/config/routes.rb
CHANGED
|
@@ -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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
17
|
-
|
|
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
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
|
-
describe ScopedParams::DummyModelsController,
|
|
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
|
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.
|
|
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-
|
|
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
|