i18n_scaffold_controller_template 1.1.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +6 -0
- data/VERSION +1 -1
- data/i18n_scaffold_controller_template.gemspec +5 -4
- data/lib/i18n_scaffold_controller_template/generators/rails/scaffold_controller_generator.rb +15 -1
- data/lib/i18n_scaffold_controller_template/generators/rails/templates/api_controller.rb +96 -0
- data/lib/i18n_scaffold_controller_template/generators/rails/templates/controller.rb +34 -24
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f118a618d5b47e4c01fccfaf491f516234e25d5
|
4
|
+
data.tar.gz: 4dc88ed2b056b835b168128f63b500ece0e869f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f1ec0a3a8ac5ca0d8f8a8673bdc154a158e5aa8f43d2e689984eed0b95537cfb030e585aaaff0ed54185d5fc3fb1926af0d230883d905f4438dd17fcadc0091
|
7
|
+
data.tar.gz: df46539e5f336a2c1fa982a9ed4ea709d7e297101d0ec4005ded5113bc68d46f1be876303194f81e0dddbaafc4c2da2303a38887ef3d513ca901c58fe04c3f28
|
data/README.rdoc
CHANGED
@@ -21,6 +21,12 @@ Next time you run
|
|
21
21
|
|
22
22
|
you will get the controller with the named functionalities.
|
23
23
|
|
24
|
+
== New options
|
25
|
+
|
26
|
+
[with_api] adding --with_api will generate one additional controller in the namespace `Api::`
|
27
|
+
|
28
|
+
[api_version] this parameter adds an additional namespace specified after `Api::`
|
29
|
+
|
24
30
|
== Contributing to i18n_scaffold_controller_template
|
25
31
|
|
26
32
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: i18n_scaffold_controller_template
|
5
|
+
# stub: i18n_scaffold_controller_template 2.0.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "i18n_scaffold_controller_template"
|
9
|
-
s.version = "
|
9
|
+
s.version = "2.0.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Dmitri Koulikoff"]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2016-09-16"
|
15
15
|
s.description = "Scaffold controller template expoiting i18n and aware of cancan and WiceGrid"
|
16
16
|
s.email = "dima@koulikoff.ru"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
"i18n_scaffold_controller_template.gemspec",
|
30
30
|
"lib/i18n_scaffold_controller_template.rb",
|
31
31
|
"lib/i18n_scaffold_controller_template/generators/rails/scaffold_controller_generator.rb",
|
32
|
+
"lib/i18n_scaffold_controller_template/generators/rails/templates/api_controller.rb",
|
32
33
|
"lib/i18n_scaffold_controller_template/generators/rails/templates/controller.rb",
|
33
34
|
"lib/i18n_scaffold_controller_template/railtie.rb",
|
34
35
|
"spec/i18n_scaffold_controller_template_spec.rb",
|
@@ -36,7 +37,7 @@ Gem::Specification.new do |s|
|
|
36
37
|
]
|
37
38
|
s.homepage = "http://github.com/dima4p/i18n_scaffold_controller_template"
|
38
39
|
s.licenses = ["MIT"]
|
39
|
-
s.rubygems_version = "2.
|
40
|
+
s.rubygems_version = "2.5.1"
|
40
41
|
s.summary = "Scaffold controller template expoiting i18n and aware of cancan and WiceGrid"
|
41
42
|
|
42
43
|
if s.respond_to? :specification_version then
|
data/lib/i18n_scaffold_controller_template/generators/rails/scaffold_controller_generator.rb
CHANGED
@@ -3,8 +3,22 @@ require 'rails/generators/rails/scaffold_controller/scaffold_controller_generato
|
|
3
3
|
|
4
4
|
module Rails
|
5
5
|
module Generators
|
6
|
-
class ScaffoldControllerGenerator
|
6
|
+
class ScaffoldControllerGenerator < NamedBase
|
7
|
+
class_option :with_api, type: :boolean,
|
8
|
+
desc: "Generates also API controller in 'app/contorllers/api'"
|
9
|
+
class_option :api_version, type: :string,
|
10
|
+
desc: "Adds specified path as version to 'app/contorllers/api'"
|
11
|
+
|
7
12
|
source_paths.unshift File.expand_path('../templates', __FILE__)
|
13
|
+
|
14
|
+
def create_api_controller_with_namespace
|
15
|
+
return unless options.with_api?
|
16
|
+
path = ['app/controllers/api']
|
17
|
+
path << options[:api_version].underscore if options[:api_version].present?
|
18
|
+
path << controller_class_path << "#{controller_file_name}_controller.rb"
|
19
|
+
template 'api_controller.rb', File.join(*path)
|
20
|
+
end
|
21
|
+
|
8
22
|
end
|
9
23
|
end
|
10
24
|
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
<% if namespaced? -%>
|
2
|
+
require_dependency "<%= namespaced_path %>/application_controller"
|
3
|
+
|
4
|
+
<% end -%>
|
5
|
+
<% module_namespacing do -%>
|
6
|
+
class Api::<%= options[:api_version].camelcase + '::' if options[:api_version].present? %><%= controller_class_name %>Controller < ApiController
|
7
|
+
<% if defined? CanCan -%>
|
8
|
+
# before_action :set_<%= singular_table_name %>, only: [:show, :update, :destroy]
|
9
|
+
load_and_authorize_resource
|
10
|
+
<% else -%>
|
11
|
+
before_action :set_<%= singular_table_name %>, only: [:show, :update, :destroy]
|
12
|
+
<% end -%>
|
13
|
+
|
14
|
+
# GET <%= route_url %>
|
15
|
+
def index
|
16
|
+
<% unless defined? CanCan -%>
|
17
|
+
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
|
18
|
+
|
19
|
+
<% end -%>
|
20
|
+
<% if defined? Kaminari -%>
|
21
|
+
@<%= plural_table_name %> = @<%= plural_table_name %>.page(params[:page]) if params[:page].present?
|
22
|
+
@<%= plural_table_name %> = @<%= plural_table_name %>.per(params[:per_page]) if params[:per_page].present?
|
23
|
+
<% end -%>
|
24
|
+
<% if options.jbuilder? -%>
|
25
|
+
render '<%= "/#{plural_table_name}/index.json" %>'
|
26
|
+
<% else -%>
|
27
|
+
render json: <%= "@#{plural_table_name}" %>
|
28
|
+
<% end -%>
|
29
|
+
end
|
30
|
+
|
31
|
+
# GET <%= route_url %>/1
|
32
|
+
def show
|
33
|
+
<% if options.jbuilder? -%>
|
34
|
+
render '<%= "/#{plural_table_name}/show.json" %>'
|
35
|
+
<% else -%>
|
36
|
+
render json: <%= "@#{singular_table_name}" %>
|
37
|
+
<% end -%>
|
38
|
+
end
|
39
|
+
|
40
|
+
# POST <%= route_url %>
|
41
|
+
def create
|
42
|
+
<% unless defined? CanCan -%>
|
43
|
+
@<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
|
44
|
+
|
45
|
+
<% end -%>
|
46
|
+
if @<%= orm_instance.save %>
|
47
|
+
<% if options.jbuilder? -%>
|
48
|
+
render '<%= "/#{plural_table_name}/show.json" %>', status: :created, location: <%= "@#{singular_table_name}" %>
|
49
|
+
<% else -%>
|
50
|
+
render json: <%= "@#{singular_table_name}" %>, status: :created, location: <%= "@#{singular_table_name}" %>
|
51
|
+
<% end -%>
|
52
|
+
else
|
53
|
+
render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# PATCH/PUT <%= route_url %>/1
|
58
|
+
def update
|
59
|
+
if @<%= orm_instance.update("#{singular_table_name}_params") %>
|
60
|
+
<% if options.jbuilder? -%>
|
61
|
+
render '<%= "/#{plural_table_name}/show.json" %>'
|
62
|
+
<% else -%>
|
63
|
+
render json: <%= "@#{singular_table_name}" %>
|
64
|
+
<% end -%>
|
65
|
+
else
|
66
|
+
render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# DELETE <%= route_url %>/1
|
71
|
+
def destroy
|
72
|
+
@<%= orm_instance.destroy %>
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
<% unless defined? CanCan -%>
|
78
|
+
# Use callbacks to share common setup or constraints between actions.
|
79
|
+
def set_<%= singular_table_name %>
|
80
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
81
|
+
end
|
82
|
+
|
83
|
+
<% end -%>
|
84
|
+
# Only allow a trusted parameter "white list" through.
|
85
|
+
def <%= "#{singular_table_name}_params" %>
|
86
|
+
<%- if attributes_names.empty? -%>
|
87
|
+
params.fetch(:<%= singular_table_name %>, {})
|
88
|
+
<%- else -%>
|
89
|
+
list = [
|
90
|
+
<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>
|
91
|
+
]
|
92
|
+
params.require(:<%= singular_table_name %>).permit(*list)
|
93
|
+
<%- end -%>
|
94
|
+
end
|
95
|
+
end
|
96
|
+
<% end -%>
|
@@ -7,22 +7,22 @@ require_dependency "<%= namespaced_file_path %>/application_controller"
|
|
7
7
|
<% module_namespacing do -%>
|
8
8
|
class <%= controller_class_name %>Controller < ApplicationController
|
9
9
|
|
10
|
-
<% if
|
11
|
-
# before_action :set_<%= singular_table_name %>, only: [:show, :edit, :update, :destroy]
|
10
|
+
<% if defined? CanCan -%>
|
12
11
|
load_and_authorize_resource
|
13
12
|
<% else -%>
|
14
13
|
before_action :set_<%= singular_table_name %>, only: [:show, :edit, :update, :destroy]
|
15
14
|
<% end -%>
|
16
15
|
|
17
16
|
# GET <%= route_url %>
|
18
|
-
# GET <%= route_url %>.json
|
19
17
|
def index
|
20
|
-
<%
|
21
|
-
# @<%= plural_table_name %> = <%= orm_class.all(class_name) %>
|
22
|
-
<% else -%>
|
18
|
+
<% unless defined? CanCan -%>
|
23
19
|
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
|
24
20
|
<% end -%>
|
25
|
-
<% if
|
21
|
+
<% if options.with_api? -%>
|
22
|
+
<% if defined? Wice::WiceGrid -%>
|
23
|
+
@grid = initialize_grid @<%= plural_table_name %>
|
24
|
+
<% end -%>
|
25
|
+
<% elsif defined?(Wice::WiceGrid) or defined?(Kaminari) -%>
|
26
26
|
respond_to do |format|
|
27
27
|
format.html do
|
28
28
|
<% if defined? Wice::WiceGrid -%>
|
@@ -40,15 +40,12 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
40
40
|
end
|
41
41
|
|
42
42
|
# GET <%= route_url %>/1
|
43
|
-
# GET <%= route_url %>/1.json
|
44
43
|
def show
|
45
44
|
end
|
46
45
|
|
47
46
|
# GET <%= route_url %>/new
|
48
47
|
def new
|
49
|
-
<%
|
50
|
-
# @<%= singular_table_name %> = <%= orm_class.build(class_name) %>
|
51
|
-
<% else -%>
|
48
|
+
<% unless defined? CanCan -%>
|
52
49
|
@<%= singular_table_name %> = <%= orm_class.build(class_name) %>
|
53
50
|
<% end -%>
|
54
51
|
end
|
@@ -58,14 +55,17 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
58
55
|
end
|
59
56
|
|
60
57
|
# POST <%= route_url %>
|
61
|
-
# POST <%= route_url %>.json
|
62
58
|
def create
|
63
|
-
<%
|
64
|
-
# @<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
|
65
|
-
<% else -%>
|
59
|
+
<% unless defined? CanCan -%>
|
66
60
|
@<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
|
67
|
-
<% end -%>
|
68
61
|
|
62
|
+
<% end -%>
|
63
|
+
<% if options.with_api? -%>
|
64
|
+
if @<%= orm_instance.save %>
|
65
|
+
redirect_to @<%= singular_table_name %>, notice: t('<%= table_name %>.was_created')
|
66
|
+
else
|
67
|
+
render :new
|
68
|
+
<% else -%>
|
69
69
|
respond_to do |format|
|
70
70
|
if @<%= orm_instance.save %>
|
71
71
|
format.html { redirect_to @<%= singular_table_name %>, notice: t('<%= table_name %>.was_created') }
|
@@ -74,12 +74,18 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
74
74
|
format.html { render :new }
|
75
75
|
format.json { render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity }
|
76
76
|
end
|
77
|
+
<% end -%>
|
77
78
|
end
|
78
79
|
end
|
79
80
|
|
80
81
|
# PATCH/PUT <%= route_url %>/1
|
81
|
-
# PATCH/PUT <%= route_url %>/1.json
|
82
82
|
def update
|
83
|
+
<% if options.with_api? -%>
|
84
|
+
if @<%= orm_instance.update("#{singular_table_name}_params") %>
|
85
|
+
redirect_to @<%= singular_table_name %>, notice: t('<%= table_name %>.was_updated')
|
86
|
+
else
|
87
|
+
render :edit
|
88
|
+
<% else -%>
|
83
89
|
respond_to do |format|
|
84
90
|
if @<%= orm_instance.update("#{singular_table_name}_params") %>
|
85
91
|
format.html { redirect_to @<%= singular_table_name %>, notice: t('<%= table_name %>.was_updated') }
|
@@ -88,22 +94,26 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
88
94
|
format.html { render :edit }
|
89
95
|
format.json { render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity }
|
90
96
|
end
|
97
|
+
<% end -%>
|
91
98
|
end
|
92
99
|
end
|
93
100
|
|
94
101
|
# DELETE <%= route_url %>/1
|
95
|
-
# DELETE <%= route_url %>/1.json
|
96
102
|
def destroy
|
97
103
|
@<%= orm_instance.destroy %>
|
104
|
+
<% if options.with_api? -%>
|
105
|
+
redirect_to <%= index_helper %>_url, notice: t('<%= table_name %>.was_deleted')
|
106
|
+
<% else -%>
|
98
107
|
respond_to do |format|
|
99
108
|
format.html { redirect_to <%= index_helper %>_url, notice: t('<%= table_name %>.was_deleted') }
|
100
109
|
format.json { head :no_content }
|
101
110
|
end
|
111
|
+
<% end -%>
|
102
112
|
end
|
103
113
|
|
104
114
|
private
|
105
115
|
|
106
|
-
<% if
|
116
|
+
<% if defined? CanCan -%>
|
107
117
|
# Use callbacks to share common setup or constraints between actions.
|
108
118
|
# def set_<%= singular_table_name %>
|
109
119
|
# @<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
|
@@ -117,14 +127,14 @@ class <%= controller_class_name %>Controller < ApplicationController
|
|
117
127
|
|
118
128
|
# Never trust parameters from the scary internet, only allow the white list through.
|
119
129
|
def <%= "#{singular_table_name}_params" %>
|
120
|
-
|
121
|
-
params
|
122
|
-
|
130
|
+
<%- if attributes_names.empty? -%>
|
131
|
+
params.fetch(:<%= singular_table_name %>, {})
|
132
|
+
<%- else -%>
|
123
133
|
list = [
|
124
134
|
<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>
|
125
135
|
]
|
126
|
-
params.require(
|
127
|
-
|
136
|
+
params.require(:<%= singular_table_name %>).permit(*list)
|
137
|
+
<%- end -%>
|
128
138
|
end
|
129
139
|
end
|
130
140
|
<% end -%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n_scaffold_controller_template
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitri Koulikoff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- i18n_scaffold_controller_template.gemspec
|
99
99
|
- lib/i18n_scaffold_controller_template.rb
|
100
100
|
- lib/i18n_scaffold_controller_template/generators/rails/scaffold_controller_generator.rb
|
101
|
+
- lib/i18n_scaffold_controller_template/generators/rails/templates/api_controller.rb
|
101
102
|
- lib/i18n_scaffold_controller_template/generators/rails/templates/controller.rb
|
102
103
|
- lib/i18n_scaffold_controller_template/railtie.rb
|
103
104
|
- spec/i18n_scaffold_controller_template_spec.rb
|
@@ -122,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
123
|
version: '0'
|
123
124
|
requirements: []
|
124
125
|
rubyforge_project:
|
125
|
-
rubygems_version: 2.
|
126
|
+
rubygems_version: 2.5.1
|
126
127
|
signing_key:
|
127
128
|
specification_version: 4
|
128
129
|
summary: Scaffold controller template expoiting i18n and aware of cancan and WiceGrid
|