crud_resource 0.1.1
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 +7 -0
- data/lib/crud_resource.rb +78 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 40a3f63d0cac5b14e85dbe26175b8b29590a9099712ca31b71f6cd3a1fb6d337
|
4
|
+
data.tar.gz: ca3d97b21952db298272c302faff655de5e54e4f1e58cbf407725bf93e34567e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 503c3f688be8f01e0d977648564738c5f153005460074af1acc878c7105b608aa5e8e5e0451f335f8b52ed11fd96523fdba1bb46f28b31c2f1beb2144140af99
|
7
|
+
data.tar.gz: fe0dd40e3788ca4be6484d465dce31748cee92402a8c2f2e1e21e64a8af18f35d877b7690abb6394026c9c990c9eddcb3b0b400b7c2cc50047af2fd0b38958ca
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Concerns::CrudResource
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
before_action :find_resource, only: [:show, :update, :edit, :destroy]
|
6
|
+
end
|
7
|
+
|
8
|
+
def index
|
9
|
+
@resources = resource_scope.all
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@resource = resource_scope.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@resource = resource_scope.new(resource_params)
|
18
|
+
if @resource.save
|
19
|
+
flash[:notice] = after_create_notice
|
20
|
+
redirect_to resources_path
|
21
|
+
else
|
22
|
+
render :new
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def edit
|
27
|
+
end
|
28
|
+
|
29
|
+
def update
|
30
|
+
if @resource.update resource_params
|
31
|
+
flash[:notice] = after_update_notice
|
32
|
+
redirect_to resources_path
|
33
|
+
else
|
34
|
+
render :edit
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def resource_scope
|
41
|
+
'Abstract Resource'
|
42
|
+
end
|
43
|
+
|
44
|
+
def resource_symbol
|
45
|
+
resource_scope.to_s.underscore.to_sym
|
46
|
+
end
|
47
|
+
|
48
|
+
def permitted_params
|
49
|
+
[]
|
50
|
+
end
|
51
|
+
|
52
|
+
def resource_params
|
53
|
+
params.require(resource_symbol).permit(permitted_params)
|
54
|
+
end
|
55
|
+
|
56
|
+
def resources_path
|
57
|
+
url_for([:admin, resource_scope])
|
58
|
+
end
|
59
|
+
|
60
|
+
def resource
|
61
|
+
@resource ||= find_resource
|
62
|
+
end
|
63
|
+
|
64
|
+
def find_resource
|
65
|
+
@resource ||= resource_scope.find params[:id]
|
66
|
+
end
|
67
|
+
|
68
|
+
def after_update_notice
|
69
|
+
"#{resource_scope.model_name.human} успешно #{resource_sex ? 'сохранен' : 'сохранена'}."
|
70
|
+
end
|
71
|
+
|
72
|
+
def after_create_notice
|
73
|
+
"#{resource_scope.model_name.human} успешно #{resource_sex ? 'добавлен' : 'добавлена'}."
|
74
|
+
end
|
75
|
+
|
76
|
+
def resource_sex() true end
|
77
|
+
|
78
|
+
end
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: crud_resource
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alexander Spitsyn
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-10-06 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description:
|
14
|
+
email: sanspits@yandex.ru
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/crud_resource.rb
|
20
|
+
homepage: https://github.com/Spitsman/crud_resource
|
21
|
+
licenses:
|
22
|
+
- MIT
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.7.9
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Crud Resource for Rails controllers
|
44
|
+
test_files: []
|