pg_scaffold 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +3 -0
- data/lib/generators/pg_active_record/model/model_generator.rb +23 -0
- data/lib/generators/pg_active_record/model/templates/create_table_migration.rb.tt +46 -0
- data/lib/generators/pg_active_record/model/templates/migration.rb.tt +48 -0
- data/lib/generators/pg_active_record/model/templates/model.rb +46 -0
- data/lib/generators/pg_active_record/model/templates/module.rb +9 -0
- data/lib/generators/pg_decorator/USAGE +8 -0
- data/lib/generators/pg_decorator/pg_decorator_generator.rb +30 -0
- data/lib/generators/pg_decorator/templates/decorator.rb +28 -0
- data/lib/generators/pg_factory_bot/model/model_generator.rb +93 -0
- data/lib/generators/pg_factory_bot/model/templates/factories.erb +14 -0
- data/lib/generators/pg_pundit/USAGE +8 -0
- data/lib/generators/pg_pundit/pg_pundit_generator.rb +18 -0
- data/lib/generators/pg_pundit/templates/policy.rb +37 -0
- data/lib/generators/pg_rails/instalar/USAGE +8 -0
- data/lib/generators/pg_rails/instalar/instalar_generator.rb +17 -0
- data/lib/generators/pg_rails/instalar/templates/pg_rails.rb +10 -0
- data/lib/generators/pg_rspec/model/model_generator.rb +27 -0
- data/lib/generators/pg_rspec/model/templates/model_spec.rb +15 -0
- data/lib/generators/pg_rspec/scaffold/scaffold_generator.rb +43 -0
- data/lib/generators/pg_rspec/scaffold/templates/api_controller_spec.rb +167 -0
- data/lib/generators/pg_rspec/scaffold/templates/controller_spec.rb +248 -0
- data/lib/generators/pg_rspec/scaffold/templates/edit_spec.rb +34 -0
- data/lib/generators/pg_rspec/scaffold/templates/index_spec.rb +28 -0
- data/lib/generators/pg_rspec/scaffold/templates/new_spec.rb +34 -0
- data/lib/generators/pg_rspec/scaffold/templates/routing_spec.rb +50 -0
- data/lib/generators/pg_rspec/scaffold/templates/show_spec.rb +26 -0
- data/lib/generators/pg_scaffold/USAGE +8 -0
- data/lib/generators/pg_scaffold/pg_scaffold_generator.rb +63 -0
- data/lib/generators/pg_scaffold/templates/controller.rb +62 -0
- data/lib/generators/pg_slim/USAGE +8 -0
- data/lib/generators/pg_slim/pg_slim_generator.rb +23 -0
- data/lib/generators/pg_slim/templates/_form.html.slim +8 -0
- data/lib/generators/pg_slim/templates/download.xlsx.axlsx +14 -0
- data/lib/generators/pg_slim/templates/edit.html.slim +5 -0
- data/lib/generators/pg_slim/templates/index.html.slim +50 -0
- data/lib/generators/pg_slim/templates/new.html.slim +5 -0
- data/lib/generators/pg_slim/templates/partial.html.slim +1 -0
- data/lib/generators/pg_slim/templates/show.html.slim +39 -0
- data/lib/pg_scaffold/monkey_patches/mejoras_a_named_base.rb +37 -0
- data/lib/pg_scaffold/monkey_patches/mejoras_de_atributos.rb +116 -0
- data/lib/pg_scaffold/railtie.rb +18 -0
- data/lib/pg_scaffold/version.rb +3 -0
- data/lib/pg_scaffold.rb +6 -0
- data/lib/tasks/pg_scaffold_tasks.rake +4 -0
- metadata +110 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# generado con pg_rails
|
4
|
+
|
5
|
+
<% if namespaced? -%>
|
6
|
+
require_dependency "<%= namespaced_path %>/application_controller"
|
7
|
+
|
8
|
+
<% end -%>
|
9
|
+
<% module_namespacing_2 do -%>
|
10
|
+
class <%= controller_class_name.split('::').last %>Controller < ApplicationController
|
11
|
+
before_action { @clase_modelo = <%= class_name %> }
|
12
|
+
|
13
|
+
before_action(only: :index) { authorize <%= class_name %> }
|
14
|
+
|
15
|
+
before_action :set_instancia_modelo, only: %i[new create show edit update destroy]
|
16
|
+
|
17
|
+
add_breadcrumb <%= class_name %>.nombre_plural, :<%= plural_route_name %>_path
|
18
|
+
|
19
|
+
def index
|
20
|
+
@<%= plural_name %> = filtros_y_policy %i[<%= atributos_a_filtrar.map(&:name).join(' ') %>]
|
21
|
+
@<%= plural_name %> = sort_collection(@<%= plural_name %>)
|
22
|
+
pg_respond_index(@<%= plural_name %>)
|
23
|
+
end
|
24
|
+
|
25
|
+
def show
|
26
|
+
add_breadcrumb @<%= singular_name %>, @<%= singular_name %>.target_object
|
27
|
+
|
28
|
+
pg_respond_show
|
29
|
+
end
|
30
|
+
|
31
|
+
def new
|
32
|
+
add_breadcrumb "Crear #{<%= class_name %>.nombre_singular.downcase}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def edit
|
36
|
+
add_breadcrumb @<%= singular_name %>, @<%= singular_name %>.target_object
|
37
|
+
add_breadcrumb 'Editando'
|
38
|
+
end
|
39
|
+
|
40
|
+
def create
|
41
|
+
pg_respond_create
|
42
|
+
end
|
43
|
+
|
44
|
+
def update
|
45
|
+
pg_respond_update
|
46
|
+
end
|
47
|
+
|
48
|
+
def destroy
|
49
|
+
pg_respond_destroy(@<%= singular_name %>, <%= index_helper %>_url)
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def render_smart_listing
|
55
|
+
@<%= plural_name %> = @<%= plural_name %>.page(params[:page]).per(current_page_size)
|
56
|
+
end
|
57
|
+
|
58
|
+
def atributos_permitidos
|
59
|
+
%i[<%= attributes_names.join(' ') %>]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
<% end -%>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'generators/slim/scaffold/scaffold_generator'
|
4
|
+
|
5
|
+
class PgSlimGenerator < Slim::Generators::ScaffoldGenerator
|
6
|
+
source_root File.expand_path('templates', __dir__)
|
7
|
+
|
8
|
+
class_option :paranoia, type: :boolean, default: false, desc: 'Paranoid y deleted_at.'
|
9
|
+
class_option :discard, type: :boolean, default: false, desc: 'Discard y discarded_at.'
|
10
|
+
class_option :trackeo_de_usuarios, type: :boolean, default: true,
|
11
|
+
desc: 'Genera campos creado_por y actualizado_por.'
|
12
|
+
|
13
|
+
def copiar_download
|
14
|
+
template 'download.xlsx.axlsx',
|
15
|
+
File.join('app', 'views', controller_file_path, 'download.xlsx.axlsx')
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def available_views
|
21
|
+
%w[index edit show new _form]
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
wb = xlsx_package.workbook
|
4
|
+
wb.add_worksheet(name: '<%= human_name %>') do |sheet|
|
5
|
+
sheet.add_row [
|
6
|
+
<%= attributes.map {|attribute| "@clase_modelo.human_attribute_name(:#{ attribute.name })" }.join(",\n ") %>
|
7
|
+
]
|
8
|
+
|
9
|
+
@<%= plural_name %>.decorate.each do |<%= singular_name %>|
|
10
|
+
sheet.add_row [
|
11
|
+
<%= attributes.map {|attribute| "#{ singular_name }.#{ attribute.name }" }.join(",\n ") %>
|
12
|
+
]
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
- content_for(:title, @clase_modelo.nombre_plural)
|
2
|
+
- content_for :actions do
|
3
|
+
button.btn.btn-sm.btn-primary type="button" data-bs-toggle="collapse" data-bs-target="#filtros" aria-expanded="false" aria-controls="filtros"
|
4
|
+
span.bi.bi-funnel-fill
|
5
|
+
span.d-none.d-sm-inline Filtrar
|
6
|
+
.ms-1
|
7
|
+
= @clase_modelo.new.decorate.new_link
|
8
|
+
.ms-1
|
9
|
+
= @clase_modelo.new.decorate.export_link(request.url)
|
10
|
+
.collapse.p-2.border-bottom#filtros class="#{ 'show' if any_filter? }"
|
11
|
+
.d-flex.align-items-center
|
12
|
+
.px-2.d-none.d-sm-inline-block
|
13
|
+
span.bi.bi-funnel-fill
|
14
|
+
= form_tag nil, class: '', method: :get do
|
15
|
+
.row.g-1
|
16
|
+
= @filtros.filtros_html
|
17
|
+
.col-auto
|
18
|
+
= button_tag class: 'btn btn-sm btn-primary col-auto' do
|
19
|
+
span.bi.bi-search
|
20
|
+
.col-auto
|
21
|
+
= link_to <%= plural_route_name %>_path(clean: true), class: 'btn btn-sm btn-secondary col-auto' do
|
22
|
+
| Limpiar
|
23
|
+
|
24
|
+
div
|
25
|
+
- if @<%= plural_name %>.any?
|
26
|
+
.table-responsive
|
27
|
+
table.table.table-sm.listado.xpg-revert-width.xborder-end
|
28
|
+
caption.ps-3 = page_entries_info @<%= plural_name %>
|
29
|
+
thead.table-light
|
30
|
+
tr
|
31
|
+
<%- for attribute in attributes -%>
|
32
|
+
th = encabezado :<%= attribute.name %>, ordenable: true
|
33
|
+
<%- end -%>
|
34
|
+
th
|
35
|
+
tbody
|
36
|
+
- @<%= plural_name %>.each do |<%= singular_name %>|
|
37
|
+
- <%= singular_name %> = <%= singular_name %>.decorate
|
38
|
+
tr id="#{dom_id(<%= singular_name %>)}"
|
39
|
+
<%- for attribute in attributes -%>
|
40
|
+
td = <%= singular_name %>.<%= attribute.name %>
|
41
|
+
<%- end -%>
|
42
|
+
td.text-nowrap.text-end.ps-5
|
43
|
+
= <%= singular_name %>.show_link
|
44
|
+
= <%= singular_name %>.edit_link
|
45
|
+
= <%= singular_name %>.destroy_link
|
46
|
+
|
47
|
+
.ps-3.justify-content-center
|
48
|
+
= paginate(@<%= plural_name %>)
|
49
|
+
- else
|
50
|
+
p.m-3 No hay #{@clase_modelo.nombre_plural.downcase} que mostrar
|
@@ -0,0 +1 @@
|
|
1
|
+
h1 el partiaaal
|
@@ -0,0 +1,39 @@
|
|
1
|
+
- content_for :title do
|
2
|
+
= @<%= singular_name %>.to_s
|
3
|
+
- content_for :actions do
|
4
|
+
= @<%= singular_name %>.destroy_link
|
5
|
+
.ms-1
|
6
|
+
= @<%= singular_name %>.edit_link
|
7
|
+
|
8
|
+
table.table.table-borderless.table-sm.w-auto.mb-0.m-3
|
9
|
+
<%- for attribute in attributes -%>
|
10
|
+
tr
|
11
|
+
th = @clase_modelo.human_attribute_name(:<%= attribute.name %>)
|
12
|
+
td = @<%= singular_name %>.<%= attribute.name %>
|
13
|
+
<%- end -%>
|
14
|
+
<%- if options[:trackeo_de_usuarios] -%>
|
15
|
+
tr
|
16
|
+
th = t(:creado_por)
|
17
|
+
td = @<%= singular_name %>.creado_por
|
18
|
+
<%- end -%>
|
19
|
+
tr
|
20
|
+
th = I18n.t(:created_at)
|
21
|
+
td = dmy_time @<%= singular_name %>.created_at
|
22
|
+
<%- if options[:trackeo_de_usuarios] -%>
|
23
|
+
tr
|
24
|
+
th = t(:actualizado_por)
|
25
|
+
td = @<%= singular_name %>.actualizado_por
|
26
|
+
<%- end -%>
|
27
|
+
tr
|
28
|
+
th = I18n.t(:updated_at)
|
29
|
+
td = dmy_time @<%= singular_name %>.updated_at
|
30
|
+
<%- if options[:paranoia] -%>
|
31
|
+
tr
|
32
|
+
th = t(:deleted_at)
|
33
|
+
td = dmy_time @<%= singular_name %>.deleted_at
|
34
|
+
<%- end -%>
|
35
|
+
<%- if options[:discard] -%>
|
36
|
+
tr
|
37
|
+
th = t(:discarded_at)
|
38
|
+
td = dmy_time @<%= singular_name %>.discarded_at
|
39
|
+
<%- end -%>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generators/named_base'
|
4
|
+
|
5
|
+
module Rails
|
6
|
+
module Generators
|
7
|
+
class NamedBase < Base
|
8
|
+
def nombre_clase_completo
|
9
|
+
# if namespaced?
|
10
|
+
# (namespaced_class_path + [file_name]).map!(&:camelize).join('::')
|
11
|
+
# else
|
12
|
+
# (regular_class_path + [file_name]).map!(&:camelize).join('::')
|
13
|
+
# end
|
14
|
+
file_name.camelize
|
15
|
+
end
|
16
|
+
|
17
|
+
def nombre_tabla_completo_singular
|
18
|
+
if namespaced?
|
19
|
+
(namespaced_class_path + [singular_name]).join('_')
|
20
|
+
else
|
21
|
+
(regular_class_path + [singular_name]).join('_')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
# Deprecado?
|
28
|
+
def ruta_vistas
|
29
|
+
if namespaced?
|
30
|
+
namespaced_class_path.dup.push(plural_name).join('/')
|
31
|
+
else
|
32
|
+
regular_class_path.dup.push(plural_name).join('/')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generators'
|
4
|
+
require 'rails/generators/generated_attribute'
|
5
|
+
require 'generators/rspec'
|
6
|
+
|
7
|
+
module Rails
|
8
|
+
module Generators
|
9
|
+
class GeneratedAttribute # :nodoc:
|
10
|
+
class << self
|
11
|
+
private
|
12
|
+
|
13
|
+
def parse_type_and_options(type)
|
14
|
+
case type
|
15
|
+
when /(string|text|binary|integer)\{(\d+)\}/
|
16
|
+
[Regexp.last_match(1), { limit: Regexp.last_match(2).to_i }]
|
17
|
+
when /(string|text|binary|float|integer|date|datetime)\{(.+)\}/
|
18
|
+
type = Regexp.last_match(1)
|
19
|
+
provided_options = Regexp.last_match(2).split(/[,.-]/)
|
20
|
+
options = provided_options.map { |opt| [opt.to_sym, true] }.to_h
|
21
|
+
[type, options]
|
22
|
+
when /decimal\{(\d+)[,.-](\d+)\}/
|
23
|
+
[:decimal, { precision: Regexp.last_match(1).to_i, scale: Regexp.last_match(2).to_i }]
|
24
|
+
when /(references|belongs_to)\{(.+)\}/
|
25
|
+
type = Regexp.last_match(1)
|
26
|
+
provided_options = Regexp.last_match(2).split(/[,.-]/)
|
27
|
+
options = provided_options.map { |opt| parsear_opcion(opt) }.to_h
|
28
|
+
|
29
|
+
# si es referencia le mando índice siempre
|
30
|
+
options[:index] = true
|
31
|
+
[type, options]
|
32
|
+
else
|
33
|
+
[type, {}]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def parsear_opcion(opcion)
|
38
|
+
partes = opcion.split('=')
|
39
|
+
if partes.count == 2
|
40
|
+
[partes[0].to_sym, partes[1]]
|
41
|
+
else
|
42
|
+
[opcion.to_sym, true]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def clase_con_modulo
|
48
|
+
return name.camelize unless tiene_nombre_de_clase_explicito?
|
49
|
+
|
50
|
+
@attr_options[:clase].gsub('/', '::')
|
51
|
+
end
|
52
|
+
|
53
|
+
# def tiene_modulo?
|
54
|
+
# @attr_options[:modulo].present?
|
55
|
+
# end
|
56
|
+
|
57
|
+
def tiene_nombre_de_clase_explicito?
|
58
|
+
@attr_options[:clase].present?
|
59
|
+
end
|
60
|
+
|
61
|
+
# def tiene_tabla?
|
62
|
+
# @attr_options[:tabla].present?
|
63
|
+
# end
|
64
|
+
|
65
|
+
def es_enum?
|
66
|
+
@attr_options[:enum].present?
|
67
|
+
end
|
68
|
+
|
69
|
+
def tabla_referenciada_singular
|
70
|
+
return singular_name unless tiene_nombre_de_clase_explicito?
|
71
|
+
|
72
|
+
@attr_options[:clase].gsub('/', '').underscore
|
73
|
+
end
|
74
|
+
|
75
|
+
def tabla_referenciada
|
76
|
+
return plural_name unless tiene_nombre_de_clase_explicito?
|
77
|
+
|
78
|
+
@attr_options[:clase].gsub('/', '').underscore.pluralize
|
79
|
+
end
|
80
|
+
|
81
|
+
# pisa geneators/rspec
|
82
|
+
def input_type
|
83
|
+
@input_type ||= if type == :text
|
84
|
+
'textarea'
|
85
|
+
elsif es_enum? || type == :references
|
86
|
+
'select'
|
87
|
+
else
|
88
|
+
'input'
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def required?
|
93
|
+
attr_options[:required]
|
94
|
+
end
|
95
|
+
|
96
|
+
private
|
97
|
+
|
98
|
+
def options_for_migration
|
99
|
+
@attr_options.dup.tap do |options|
|
100
|
+
if required?
|
101
|
+
options.delete(:required)
|
102
|
+
options[:null] = false
|
103
|
+
end
|
104
|
+
|
105
|
+
if reference? && !polymorphic? && !tiene_nombre_de_clase_explicito?
|
106
|
+
options[:foreign_key] =
|
107
|
+
true
|
108
|
+
end
|
109
|
+
# options.delete(:modulo)
|
110
|
+
# options.delete(:tabla)
|
111
|
+
options.delete(:clase)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PgScaffold
|
2
|
+
class Railtie < ::Rails::Railtie
|
3
|
+
|
4
|
+
initializer 'configurar_generators', after: 'factory_bot.set_fixture_replacement' do
|
5
|
+
require 'pg_scaffold/monkey_patches/mejoras_de_atributos'
|
6
|
+
require 'pg_scaffold/monkey_patches/mejoras_a_named_base'
|
7
|
+
|
8
|
+
config.app_generators do |g|
|
9
|
+
g.test_framework :pg_rspec
|
10
|
+
g.orm :pg_active_record
|
11
|
+
|
12
|
+
g.fallbacks[:pg_rspec] = :rspec
|
13
|
+
g.fallbacks[:pg_active_record] = :active_record
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
data/lib/pg_scaffold.rb
ADDED
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pg_scaffold
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Martín Rosso
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-01-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '7.1'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 7.1.3
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '7.1'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 7.1.3
|
33
|
+
description: Scaffolding for rails.
|
34
|
+
email:
|
35
|
+
- mrosso10@gmail.com
|
36
|
+
executables: []
|
37
|
+
extensions: []
|
38
|
+
extra_rdoc_files: []
|
39
|
+
files:
|
40
|
+
- MIT-LICENSE
|
41
|
+
- README.md
|
42
|
+
- Rakefile
|
43
|
+
- lib/generators/pg_active_record/model/model_generator.rb
|
44
|
+
- lib/generators/pg_active_record/model/templates/create_table_migration.rb.tt
|
45
|
+
- lib/generators/pg_active_record/model/templates/migration.rb.tt
|
46
|
+
- lib/generators/pg_active_record/model/templates/model.rb
|
47
|
+
- lib/generators/pg_active_record/model/templates/module.rb
|
48
|
+
- lib/generators/pg_decorator/USAGE
|
49
|
+
- lib/generators/pg_decorator/pg_decorator_generator.rb
|
50
|
+
- lib/generators/pg_decorator/templates/decorator.rb
|
51
|
+
- lib/generators/pg_factory_bot/model/model_generator.rb
|
52
|
+
- lib/generators/pg_factory_bot/model/templates/factories.erb
|
53
|
+
- lib/generators/pg_pundit/USAGE
|
54
|
+
- lib/generators/pg_pundit/pg_pundit_generator.rb
|
55
|
+
- lib/generators/pg_pundit/templates/policy.rb
|
56
|
+
- lib/generators/pg_rails/instalar/USAGE
|
57
|
+
- lib/generators/pg_rails/instalar/instalar_generator.rb
|
58
|
+
- lib/generators/pg_rails/instalar/templates/pg_rails.rb
|
59
|
+
- lib/generators/pg_rspec/model/model_generator.rb
|
60
|
+
- lib/generators/pg_rspec/model/templates/model_spec.rb
|
61
|
+
- lib/generators/pg_rspec/scaffold/scaffold_generator.rb
|
62
|
+
- lib/generators/pg_rspec/scaffold/templates/api_controller_spec.rb
|
63
|
+
- lib/generators/pg_rspec/scaffold/templates/controller_spec.rb
|
64
|
+
- lib/generators/pg_rspec/scaffold/templates/edit_spec.rb
|
65
|
+
- lib/generators/pg_rspec/scaffold/templates/index_spec.rb
|
66
|
+
- lib/generators/pg_rspec/scaffold/templates/new_spec.rb
|
67
|
+
- lib/generators/pg_rspec/scaffold/templates/routing_spec.rb
|
68
|
+
- lib/generators/pg_rspec/scaffold/templates/show_spec.rb
|
69
|
+
- lib/generators/pg_scaffold/USAGE
|
70
|
+
- lib/generators/pg_scaffold/pg_scaffold_generator.rb
|
71
|
+
- lib/generators/pg_scaffold/templates/controller.rb
|
72
|
+
- lib/generators/pg_slim/USAGE
|
73
|
+
- lib/generators/pg_slim/pg_slim_generator.rb
|
74
|
+
- lib/generators/pg_slim/templates/_form.html.slim
|
75
|
+
- lib/generators/pg_slim/templates/download.xlsx.axlsx
|
76
|
+
- lib/generators/pg_slim/templates/edit.html.slim
|
77
|
+
- lib/generators/pg_slim/templates/index.html.slim
|
78
|
+
- lib/generators/pg_slim/templates/new.html.slim
|
79
|
+
- lib/generators/pg_slim/templates/partial.html.slim
|
80
|
+
- lib/generators/pg_slim/templates/show.html.slim
|
81
|
+
- lib/pg_scaffold.rb
|
82
|
+
- lib/pg_scaffold/monkey_patches/mejoras_a_named_base.rb
|
83
|
+
- lib/pg_scaffold/monkey_patches/mejoras_de_atributos.rb
|
84
|
+
- lib/pg_scaffold/railtie.rb
|
85
|
+
- lib/pg_scaffold/version.rb
|
86
|
+
- lib/tasks/pg_scaffold_tasks.rake
|
87
|
+
homepage: https://github.com/martin-rosso/pg_scaffold
|
88
|
+
licenses:
|
89
|
+
- MIT
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
requirements: []
|
106
|
+
rubygems_version: 3.3.22
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: Scaffolding for rails
|
110
|
+
test_files: []
|