zutils 2.0.1 → 3.0.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/app/views/shared/_btn_action_links.html.erb +81 -0
- data/app/views/shared/_card_list.html.erb +30 -14
- data/app/views/shared/_flash.html.erb +3 -0
- data/app/views/shared/_form.html.erb +20 -20
- data/app/views/shared/_index.html.erb +41 -66
- data/app/views/shared/_list.html.erb +27 -25
- data/app/views/shared/_show.html.erb +168 -192
- data/lib/zutils/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d324c51d55fbc3c4b4b504b566b4cfcec75add45d14ed79995c1613f010fdc1
|
4
|
+
data.tar.gz: 7c582d7a7ea2a95368fb69ed3c4c7db3758abe1ef3b07aacb30919c19d01ed7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1931449bd2e9cfaad73a415c1cded45c8fd30c0d9ba0cede4008cddc6ee4866bd33380765e74aef22003c54ef3baa75611ed06c2b2a48441ee22a18672cda24b
|
7
|
+
data.tar.gz: d8d96656c6bc5713ca863b717f040814538ed8f84c96e0ef5e6b3915dfe71f4d52ae69c5a282147330114496e4d3863b0baf986e9773a0ebf7066cfc203c7044
|
@@ -0,0 +1,81 @@
|
|
1
|
+
<% size ||= "md" %>
|
2
|
+
<% labels ||= false %>
|
3
|
+
<% hide ||= [] %>
|
4
|
+
<div class="row">
|
5
|
+
<div class="col text-nowrap">
|
6
|
+
<% unless hide.include? "show" %>
|
7
|
+
<%= link_to object, class: "mb-1 btn btn-#{size} btn-default",
|
8
|
+
data: { "bs-toggle": "tooltip", "bs-placement": "top", "bs-title": "Visualizar" } do %>
|
9
|
+
<% if labels %>
|
10
|
+
<div class="d-none d-sm-inline-block">
|
11
|
+
Ver
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
<i class="fa fa-fw fa-eye"></i>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<% unless hide.include? "new" %>
|
18
|
+
<%= link_to eval_with_rescue("new_#{[object].flatten.map{|x| x.class.to_s.underscore}.join("_")}_path"),
|
19
|
+
class: "mb-1 btn btn-#{size} btn-danger", data: { "bs-toggle": "tooltip", "bs-placement": "top", "bs-title": "Cadastrar" } do %>
|
20
|
+
<% if labels %>
|
21
|
+
<div class="d-none d-sm-inline-block">
|
22
|
+
Cadastrar
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
<i class="fa fa-fw fa-plus"></i>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
<% unless hide.include? "edit" %>
|
29
|
+
<%= link_to eval_with_rescue("edit_#{[object].flatten.map{|x| x.class.to_s.underscore}.join("_")}_path(#{object.id})"),
|
30
|
+
class: "mb-1 btn btn-#{size} btn-warning", data: { "bs-toggle": "tooltip", "bs-placement": "top", "bs-title": "Editar" } do %>
|
31
|
+
<% if labels %>
|
32
|
+
<div class="d-none d-sm-inline-block">
|
33
|
+
Editar
|
34
|
+
</div>
|
35
|
+
<% end %>
|
36
|
+
<i class="fa fa-fw fa-pen"></i>
|
37
|
+
<% end %>
|
38
|
+
<% end %>
|
39
|
+
<% unless hide.include? "back" %>
|
40
|
+
<%= link_to eval_with_rescue("#{[object].flatten.map{|x| x.class.to_s.underscore.pluralize}.join("_")}_path"),
|
41
|
+
class: "mb-1 btn btn-#{size}", data: { "bs-toggle": "tooltip", "bs-placement": "top", "bs-title": "Voltar" } do %>
|
42
|
+
<% if labels %>
|
43
|
+
<div class="d-none d-sm-inline-block">
|
44
|
+
Voltar
|
45
|
+
</div>
|
46
|
+
<% end %>
|
47
|
+
<i class="fa fa-fw fa-arrow-left"></i>
|
48
|
+
<% end %>
|
49
|
+
<% end %>
|
50
|
+
<% unless hide.include? "delete" %>
|
51
|
+
<%= button_to object, method: :delete, form: { data: { turbo_confirm: 'Tem certeza?' }, class: 'd-inline'},
|
52
|
+
data: { "bs-toggle": "tooltip", "bs-placement": "top", "bs-title": "Apagar" },
|
53
|
+
class: "mb-1 btn btn-#{size} btn-dark" do %>
|
54
|
+
<% if labels %>
|
55
|
+
<div class="d-none d-sm-inline-block">
|
56
|
+
Apagar
|
57
|
+
</div>
|
58
|
+
<% end %>
|
59
|
+
<i class="fa fa-fw fa-trash"></i>
|
60
|
+
<% end %>
|
61
|
+
<% end %>
|
62
|
+
</div>
|
63
|
+
<% unless hide.include? "delete_right" %>
|
64
|
+
<div class="col col-auto text-right">
|
65
|
+
<%= button_to object, method: :delete, form: { data: { turbo_confirm: 'Tem certeza?' }, class: 'd-inline'},
|
66
|
+
data: { "bs-toggle": "tooltip", "bs-placement": "top", "bs-title": "Apagar" },
|
67
|
+
class: "mb-1 btn btn-#{size} btn-dark" do %>
|
68
|
+
<% if labels %>
|
69
|
+
<div class="d-none d-sm-inline-block">
|
70
|
+
Apagar
|
71
|
+
</div>
|
72
|
+
<% end %>
|
73
|
+
<i class="fa fa-fw fa-trash"></i>
|
74
|
+
<% end %>
|
75
|
+
</div>
|
76
|
+
<% end %>
|
77
|
+
<!-- adicionar menus via bloco -->
|
78
|
+
<% if block_given? %>
|
79
|
+
<%= yield %>
|
80
|
+
<% end %>
|
81
|
+
</div>
|
@@ -1,10 +1,13 @@
|
|
1
1
|
<% exceptions ||= ['created_at', 'updated_at', 'deleted_at'] %>
|
2
2
|
<% show_columns ||= [] %>
|
3
|
-
<%
|
4
|
-
<% card_class ||= 'primary' %>
|
3
|
+
<% card_color ||= 'danger' %>
|
5
4
|
<% sort_all ||= false %>
|
6
|
-
<% show_new &&= true %>
|
7
5
|
<% sort_fields ||= [] %>
|
6
|
+
<% table_class ||= 'bootstrap-table' %>
|
7
|
+
|
8
|
+
<% hide ||= %w[new back delete_right] %>
|
9
|
+
<% size ||= "xs" %>
|
10
|
+
<% controller ||= "bootstrap-table" %>
|
8
11
|
|
9
12
|
<% hide_actions ||= false %>
|
10
13
|
|
@@ -12,18 +15,22 @@
|
|
12
15
|
<% show_columns = list.klass.column_names - exceptions %>
|
13
16
|
<% end %>
|
14
17
|
|
15
|
-
<div class="card card-outline card-<%=
|
18
|
+
<div class="card card-outline card-<%= card_color %>" data-controller="<%= controller %>">
|
16
19
|
<div class="card-header with-border">
|
17
20
|
<h3 class="card-title">
|
18
21
|
<strong>
|
19
|
-
<i class="fa fa
|
20
|
-
Listagem
|
22
|
+
<i class="fa fa-<%= list.klass.icon %>"></i>
|
23
|
+
Listagem de
|
24
|
+
<%= list.klass.model_name.human.pluralize %>
|
21
25
|
</strong>
|
22
|
-
<%
|
23
|
-
<%= link_to eval("new_#{list.klass.model_name.singular}_path"), class: "btn btn-xs btn-#{
|
26
|
+
<% unless hide.include? "header_new" %>
|
27
|
+
<%= link_to eval("new_#{list.klass.model_name.singular}_path"), class: "btn btn-xs btn-#{card_color}" do %>
|
24
28
|
Cadastar <i class="fa fa-plus"></i>
|
25
29
|
<% end %>
|
26
30
|
<% end %>
|
31
|
+
<% if block_given? %>
|
32
|
+
<%= yield %>
|
33
|
+
<% end %>
|
27
34
|
<div class="text-muted text-xs">
|
28
35
|
<%= page_entries_info list, entry_name: '' %>
|
29
36
|
</div>
|
@@ -33,12 +40,21 @@
|
|
33
40
|
</div>
|
34
41
|
</div>
|
35
42
|
<div class="card-body p-0">
|
36
|
-
<%= render 'shared/list', list: list, show_columns: show_columns,
|
37
|
-
|
38
|
-
hide_actions: hide_actions
|
43
|
+
<%= render 'shared/list', list: list, show_columns: show_columns, card_color: card_color, table_class: table_class,
|
44
|
+
exceptions: exceptions, sort_all: sort_all, sort_fields: sort_fields, hide: hide, size: size, hide_actions: hide_actions
|
39
45
|
%>
|
40
46
|
</div>
|
41
|
-
|
42
|
-
|
47
|
+
</div>
|
48
|
+
<div class="row">
|
49
|
+
<div class="col" >
|
50
|
+
<div class="text-muted text-xs">
|
51
|
+
<%= page_entries_info list, entry_name: '' %>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
<div class="col">
|
55
|
+
<div class="float-right">
|
56
|
+
<%= paginate list, window: 1 %>
|
57
|
+
</div>
|
43
58
|
</div>
|
44
|
-
</div>
|
59
|
+
</div>
|
60
|
+
<br>
|
@@ -4,30 +4,22 @@
|
|
4
4
|
<% nested_resource ||= false %>
|
5
5
|
<% parent_resource ||= false %>
|
6
6
|
<% back_link ||= false %>
|
7
|
-
<%
|
7
|
+
<% card_color ||= 'primary' %>
|
8
8
|
<% show_columns ||= [] %>
|
9
|
-
|
10
9
|
<% form_fields ||= (object.class.respond_to?('form_fields') ? object.class.form_fields : {}) %>
|
11
10
|
<% form_ordered_fields ||= (form_fields.empty? ? object.class.column_names : form_fields.keys) %>
|
12
|
-
|
13
11
|
<% if show_columns.empty? %>
|
14
12
|
<% show_columns = form_ordered_fields - ['id', 'created_at', 'updated_at', 'deleted_at'] - excluded_columns + additional_columns %>
|
15
13
|
<% end %>
|
16
|
-
|
17
14
|
<%= simple_form_for(nested_resource ? [parent_resource, object] : object) do |f| %>
|
18
|
-
<div class="
|
19
|
-
<div class="
|
20
|
-
<h3 class="
|
15
|
+
<div class="card card-outline card-<%= card_color %>">
|
16
|
+
<div class="card-header">
|
17
|
+
<h3 class="card-title">
|
18
|
+
<i class="fa-fw <%= object.class.icon %>"></i>
|
21
19
|
Dados do <%= object.class.model_name.human %>
|
22
|
-
<% if parent_resource %>
|
23
|
-
<%= link_to 'Cancelar', eval_with_rescue("#{parent_resource.class.model_name.to_s.downcase}_#{controller_name}_path(#{parent_resource.id})"), class: "btn btn-default btn-xs" %>
|
24
|
-
<% else %>
|
25
|
-
<%= link_to 'Cancelar', eval_with_rescue("#{controller_name}_path"), class: "btn btn-default btn-xs" %>
|
26
|
-
<% end %>
|
27
|
-
<%= f.submit 'Salvar', class: "btn btn-#{box_class} btn-xs" %>
|
28
20
|
</h3>
|
29
21
|
</div>
|
30
|
-
<div class="
|
22
|
+
<div class="card-body">
|
31
23
|
<%= render 'shared/fields', object: object, f: f,
|
32
24
|
excluded_columns: excluded_columns,
|
33
25
|
additional_columns: additional_columns,
|
@@ -35,18 +27,26 @@
|
|
35
27
|
show_columns: show_columns
|
36
28
|
%>
|
37
29
|
</div>
|
38
|
-
<div class="
|
30
|
+
<div class="card-footer text-right">
|
39
31
|
<% if back_link %>
|
40
|
-
<%= link_to 'Cancelar', "javascript:history.back()", class: "btn
|
32
|
+
<%= link_to 'Cancelar', "javascript:history.back()", class: "btn" %>
|
41
33
|
<% else %>
|
42
34
|
<% if parent_resource %>
|
43
|
-
<%= link_to
|
35
|
+
<%= link_to eval_with_rescue("#{parent_resource.class.model_name.to_s.downcase}_#{controller_name}_path(#{parent_resource.id})"), class: "btn" do %>
|
36
|
+
Cancelar
|
37
|
+
<i class="fa fa-cancel fa-fw"></i>
|
38
|
+
<% end %>
|
44
39
|
<% else %>
|
45
|
-
<%= link_to
|
40
|
+
<%= link_to eval_with_rescue("#{controller_name}_path"), class: "btn" do %>
|
41
|
+
Cancelar
|
42
|
+
<i class="fa fa-cancel fa-fw"></i>
|
43
|
+
<% end %>
|
46
44
|
<% end %>
|
47
45
|
<% end %>
|
48
|
-
|
49
|
-
|
46
|
+
<%= button_tag type: :submit, class: "btn btn-#{card_color}" do %>
|
47
|
+
Salvar
|
48
|
+
<i class="fa fa-fw fa-save"></i>
|
49
|
+
<% end %>
|
50
50
|
</div>
|
51
51
|
</div>
|
52
52
|
<% end %>
|
@@ -1,5 +1,4 @@
|
|
1
1
|
<% exceptions ||= ['created_at', 'updated_at', 'deleted_at'] %>
|
2
|
-
<% search_fields ||= [] %>
|
3
2
|
<% sort_fields ||= [] %>
|
4
3
|
<% sort_all ||= false %>
|
5
4
|
<% nested_resource ||= false %>
|
@@ -7,83 +6,59 @@
|
|
7
6
|
<% show_columns ||= [] %>
|
8
7
|
<% additional_columns ||= [] %>
|
9
8
|
<% additional_actions ||= [] %>
|
10
|
-
<%
|
11
|
-
<%
|
12
|
-
<% table_class ||= '
|
9
|
+
<% card_color ||= 'danger' %>
|
10
|
+
<% table_padding ||= false %>
|
11
|
+
<% table_class ||= 'bootstrap-table' %>
|
13
12
|
|
14
|
-
<%
|
15
|
-
<%
|
16
|
-
<%
|
17
|
-
<% hide_footer ||= false %>
|
13
|
+
<% hide ||= %w[new back delete_right] %>
|
14
|
+
<% size ||= "xs" %>
|
15
|
+
<% controller ||= "bootstrap-table" %>
|
18
16
|
|
19
|
-
<%
|
20
|
-
<% hide_new_action ||= false %>
|
21
|
-
<% hide_edit_action ||= false %>
|
22
|
-
<% hide_destroy_action ||= false %>
|
17
|
+
<% hide_actions ||= false %>
|
23
18
|
|
24
|
-
<div class=
|
25
|
-
<% unless
|
26
|
-
<div class="
|
27
|
-
<h3 class="
|
19
|
+
<div class="card card-outline card-<%= card_color %>" data-controller="<%= controller %>">
|
20
|
+
<% unless hide.include? 'header' %>
|
21
|
+
<div class="card-header with-border">
|
22
|
+
<h3 class="card-title">
|
28
23
|
<strong>
|
24
|
+
<i class="fa fa-<%= list.klass.icon %>"></i>
|
25
|
+
Listagem de
|
29
26
|
<%= list.klass.model_name.human.pluralize %>
|
30
27
|
</strong>
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
<% end %>
|
35
|
-
</div>
|
36
|
-
<% end %>
|
37
|
-
<div class="box-body card-body <%= 'no-padding' if table_no_padding %> <%= 'p-0' if table_no_padding %>">
|
38
|
-
<% unless search_fields.empty? %>
|
39
|
-
<div class="row">
|
40
|
-
<%= search_form_for @q, url: eval(nested_resource ? "#{parent_resource}_#{controller_name}_path" : "#{controller_name}_path") do |f| %>
|
41
|
-
<% search_fields.each do |sf| %>
|
42
|
-
<%= f.input sf[:field], label: sf[:label], required: false, as: sf[:as], collection: sf[:collection], wrapper_html: { class: 'col-md-3' } %>
|
28
|
+
<% unless hide.include? "header_new" %>
|
29
|
+
<%= link_to eval("new_#{list.klass.model_name.singular}_path"), class: "btn btn-xs btn-#{card_color}" do %>
|
30
|
+
Cadastar <i class="fa fa-plus"></i>
|
43
31
|
<% end %>
|
44
|
-
<div class="col-md-3 top-25 ">
|
45
|
-
<%= f.submit "Pesquisar", class: "btn btn-#{box_class}" %>
|
46
|
-
</div>
|
47
32
|
<% end %>
|
33
|
+
<% if block_given? %>
|
34
|
+
<%= yield %>
|
35
|
+
<% end %>
|
36
|
+
<div class="text-muted text-xs">
|
37
|
+
<%= page_entries_info list, entry_name: '' %>
|
38
|
+
</div>
|
39
|
+
</h3>
|
40
|
+
<div class='card-tools'>
|
41
|
+
<%= paginate list, window: 1 %>
|
48
42
|
</div>
|
49
|
-
|
43
|
+
</div>
|
44
|
+
<% end %>
|
45
|
+
<div class="card-body <%= 'p-0' unless table_padding %>">
|
50
46
|
<%= render 'shared/list', list: list, exceptions: exceptions, excluded_columns: excluded_columns,
|
51
47
|
additional_columns: additional_columns, sort_fields: sort_fields, sort_all: sort_all,
|
52
48
|
additional_actions: additional_actions, hide_actions: hide_actions, table_class: table_class,
|
53
|
-
show_columns: show_columns,
|
54
|
-
hide_destroy_action: hide_destroy_action, box_class: box_class
|
49
|
+
show_columns: show_columns, hide: hide, size: size, card_color: card_color, controller: controller
|
55
50
|
%>
|
56
|
-
<% if defined? list.total_pages %>
|
57
|
-
<div class='col-md-4'>
|
58
|
-
<%= page_entries_info list, entry_name: 'resultado(s)' %>
|
59
|
-
</div>
|
60
|
-
<div class='col-md-8 text-right hidden-xs'>
|
61
|
-
<%= paginate list, window: 4 %>
|
62
|
-
</div>
|
63
|
-
<div class='col-md-8 text-center visible-xs'>
|
64
|
-
<%= paginate list, window: 1 %>
|
65
|
-
</div>
|
66
|
-
<% end %>
|
67
51
|
</div>
|
68
|
-
|
69
|
-
<% unless hide_links %>
|
70
|
-
<% unless controller_name == 'users' %>
|
71
|
-
<div class="box-footer card-footer">
|
72
|
-
<% if !hide_new_action && can?(:new, list.klass) %>
|
73
|
-
<% if nested_resource == true %>
|
74
|
-
<% if parent_resource %>
|
75
|
-
<%= link_to eval("new_#{parent_resource.class.model_name.singular}_#{list.klass.model_name.singular}_path(#{parent_resource.id})"), class: "btn btn-#{box_class}" do %>
|
76
|
-
<%= t('.new', default: t("helpers.links.new")) %> <%= list.klass.model_name.human %> <i class='fa fa-plus'></i>
|
77
|
-
<% end %>
|
78
|
-
<% end %>
|
79
|
-
<% else %>
|
80
|
-
<%= link_to eval("new_#{list.klass.model_name.singular}_path"), class: "btn btn-#{box_class}" do %>
|
81
|
-
<%= t('.new', default: t("helpers.links.new")) %> <%= list.klass.model_name.human %> <i class='fa fa-plus'></i>
|
82
|
-
<% end %>
|
83
|
-
<% end %>
|
84
|
-
<% end %>
|
85
|
-
</div>
|
86
|
-
<% end %>
|
87
|
-
<% end %>
|
88
|
-
|
89
52
|
</div>
|
53
|
+
<div class="row">
|
54
|
+
<div class="col" >
|
55
|
+
<div class="text-muted text-xs">
|
56
|
+
<%= page_entries_info list, entry_name: '' %>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
<div class="col">
|
60
|
+
<div class="float-right">
|
61
|
+
<%= paginate list, window: 1 %>
|
62
|
+
</div>
|
63
|
+
</div>
|
64
|
+
</div>
|
@@ -2,25 +2,23 @@
|
|
2
2
|
<% excluded_columns ||= [] %>
|
3
3
|
<% additional_columns ||= [] %>
|
4
4
|
<% additional_actions ||= [] %>
|
5
|
-
<% hide_actions ||= false %>
|
6
5
|
<% sort_fields ||= [] %>
|
7
6
|
<% sort_all ||= false %>
|
8
|
-
<% table_class ||= 'datatables styletable' %>
|
9
7
|
|
10
|
-
<%
|
11
|
-
<%
|
8
|
+
<% card_color ||= 'primary' %>
|
9
|
+
<% table_class ||= 'table table-striped bootstrap-table' %>
|
12
10
|
|
13
11
|
<% show_columns ||= [] %>
|
14
12
|
|
15
|
-
<%
|
16
|
-
<%
|
17
|
-
<%
|
13
|
+
<% hide_actions ||= false %>
|
14
|
+
<% hide ||= %w[new back delete_right] %>
|
15
|
+
<% size ||= "xs" %>
|
18
16
|
|
19
17
|
<% if show_columns.empty? %>
|
20
18
|
<% show_columns = list.klass.column_names - exceptions - excluded_columns + additional_columns %>
|
21
19
|
<% end %>
|
22
20
|
|
23
|
-
<table class="
|
21
|
+
<table class="<%= table_class %>">
|
24
22
|
<thead>
|
25
23
|
<tr>
|
26
24
|
<% show_columns.each do |column| %>
|
@@ -32,6 +30,7 @@
|
|
32
30
|
<% column_name = column[:attribute] %>
|
33
31
|
<% column_method = column[:method] %>
|
34
32
|
<% column_align = column[:align] %>
|
33
|
+
<% column_title = column[:title] %>
|
35
34
|
<% end %>
|
36
35
|
|
37
36
|
<% next if /_currency$/ =~ column_name %>
|
@@ -43,38 +42,38 @@
|
|
43
42
|
<% cname = column_name.split('.')[-1] %>
|
44
43
|
<% model = Kernel.const_get(mname) %>
|
45
44
|
<%= sort_link(@q, column_name.split('.').join('_'),
|
46
|
-
"#{model.model_name.human} (#{model.human_attribute_name(cname)})")
|
45
|
+
column_title || "#{model.model_name.human} (#{model.human_attribute_name(cname)})")
|
47
46
|
%>
|
48
47
|
<% elsif /_id$/ =~ column_name %>
|
49
|
-
<%= sort_link(@q, column_name, list.klass.human_attribute_name(column_name.split("_id")[0])) %>
|
48
|
+
<%= sort_link(@q, column_name, column_title || list.klass.human_attribute_name(column_name.split("_id")[0])) %>
|
50
49
|
<% elsif /_cents$/ =~ column_name %>
|
51
|
-
<%= sort_link(@q, column_name, list.klass.human_attribute_name(column_name.split("_cents")[0])) %>
|
50
|
+
<%= sort_link(@q, column_name, column_title || list.klass.human_attribute_name(column_name.split("_cents")[0])) %>
|
52
51
|
<% elsif /_currency$/ =~ column_name %>
|
53
52
|
<!-- faz nada -->
|
54
53
|
<% elsif column_name == 'id' %>
|
55
|
-
<%= sort_link(@q, column_name, '#') %>
|
54
|
+
<%= sort_link(@q, column_name, column_title || '#') %>
|
56
55
|
<% else %>
|
57
|
-
<%= sort_link(@q, column_name, list.klass.human_attribute_name(column_name)) %>
|
56
|
+
<%= sort_link(@q, column_name, column_title || list.klass.human_attribute_name(column_name)) %>
|
58
57
|
<% end %>
|
59
58
|
<% else %>
|
60
59
|
<% if column_name.include?('.') %>
|
61
|
-
<% s_name = column_method || column_name %>
|
60
|
+
<% s_name = column_title || column_method || column_name %>
|
62
61
|
<%= "#{s_name.split('.')[-2]&.camelize} (#{s_name.split('.')[-1]})" %>
|
63
62
|
<% elsif /_id$/ =~ column_name %>
|
64
|
-
<%= list.klass.human_attribute_name(column_name.split("_id")[0]) %>
|
63
|
+
<%= column_title || list.klass.human_attribute_name(column_name.split("_id")[0]) %>
|
65
64
|
<% elsif /_cents$/ =~ column_name %>
|
66
|
-
<%= list.klass.human_attribute_name(column_name.split("_cents")[0]) %>
|
65
|
+
<%= column_title || list.klass.human_attribute_name(column_name.split("_cents")[0]) %>
|
67
66
|
<% elsif /_currency$/ =~ column_name %>
|
68
67
|
<% elsif column_name == 'id' %>
|
69
|
-
#
|
68
|
+
<%= column_title || "#" %>
|
70
69
|
<% else %>
|
71
|
-
<%= list.klass.human_attribute_name(column_name) %>
|
70
|
+
<%= column_title || list.klass.human_attribute_name(column_name) %>
|
72
71
|
<% end %>
|
73
72
|
<% end %>
|
74
73
|
</th>
|
75
74
|
<% end %>
|
76
75
|
<% unless hide_actions %>
|
77
|
-
<th>Ações</th>
|
76
|
+
<th data-align="center">Ações</th>
|
78
77
|
<% end %>
|
79
78
|
</tr>
|
80
79
|
</thead>
|
@@ -88,6 +87,7 @@
|
|
88
87
|
<% if column.class == Hash %>
|
89
88
|
<% column_name = column[:attribute] %>
|
90
89
|
<% column_method = column[:method] %>
|
90
|
+
<% column_format = column[:format] %>
|
91
91
|
<% end %>
|
92
92
|
|
93
93
|
<% next if /_currency$/ =~ column_name %>
|
@@ -105,11 +105,15 @@
|
|
105
105
|
object.send(column_name).class == DateTime or
|
106
106
|
object.send(column_name).class == ActiveSupport::TimeWithZone or
|
107
107
|
object.send(column_name).class == Time %>
|
108
|
-
|
108
|
+
<% if column_format %>
|
109
|
+
<%= l(object.send(column_name), format: (column_format.is_a?(Symbol) ? column_format : column_format.to_sym)) %>
|
110
|
+
<% else %>
|
111
|
+
<%=l object.send(column_name) %>
|
112
|
+
<% end %>
|
109
113
|
<% elsif object.send(column_name).respond_to? 'attached?' %>
|
110
114
|
<% if object.send(column_name).class == ActiveStorage::Attached::One %>
|
111
115
|
<% if object.send(column_name).attached? %>
|
112
|
-
<%= link_to rails_blob_path(object.send(column_name)), class: "btn btn-#{
|
116
|
+
<%= link_to rails_blob_path(object.send(column_name)), class: "btn btn-#{card_color} btn-xs", target: '_blank' do %>
|
113
117
|
<i class="fa fa-file-o"></i> Arquivo
|
114
118
|
<% end %>
|
115
119
|
<% end %>
|
@@ -131,12 +135,10 @@
|
|
131
135
|
<% end %>
|
132
136
|
<% unless hide_actions %>
|
133
137
|
<td>
|
134
|
-
<%= render 'shared/
|
135
|
-
hide_read_action: hide_read_action, hide_edit_action: hide_edit_action, hide_destroy_action: hide_destroy_action
|
136
|
-
%>
|
138
|
+
<%= render 'shared/btn_action_links', object: object, additional_actions: additional_actions, hide: hide, size: size %>
|
137
139
|
</td>
|
138
140
|
<% end %>
|
139
141
|
</tr>
|
140
142
|
<% end %>
|
141
143
|
</tbody>
|
142
|
-
</table>
|
144
|
+
</table>
|
@@ -4,11 +4,10 @@
|
|
4
4
|
|
5
5
|
<% nested_resource ||= false %>
|
6
6
|
<% relationships ||= {} %>
|
7
|
-
|
8
|
-
<%
|
9
|
-
<%
|
10
|
-
<%
|
11
|
-
<% hide_table_header ||= false %>
|
7
|
+
|
8
|
+
<% card_color ||= 'danger' %>
|
9
|
+
<% hide ||= %w[show delete] %>
|
10
|
+
<% size ||= "xs" %>
|
12
11
|
|
13
12
|
<% if show_columns.empty? %>
|
14
13
|
<% form_fields ||= (object.class.respond_to?('form_fields') ? object.class.form_fields : {}) %>
|
@@ -16,218 +15,195 @@
|
|
16
15
|
<% show_columns = form_ordered_fields - ['id', 'created_at', 'updated_at', 'deleted_at'] - excluded_columns + additional_columns %>
|
17
16
|
<% end %>
|
18
17
|
|
19
|
-
<div class="
|
20
|
-
|
21
|
-
<div class="
|
22
|
-
<
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
<% end %>
|
34
|
-
<% end %>
|
35
|
-
<% end %>
|
36
|
-
<% if show_actions.include?('edit') && can?(:edit, object) %>
|
37
|
-
<% if nested_resource %>
|
38
|
-
<%= link_to eval_with_rescue("edit_#{parent_resource.class.model_name.singular}_#{object.class.model_name.singular}_path(#{parent_resource.id},#{object.id})"), class: "btn btn-#{box_class} btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Editar' } do %>
|
39
|
-
Editar <i class="fa fa-pencil fa-pen"></i>
|
40
|
-
<% end %>
|
41
|
-
<% else %>
|
42
|
-
<%= link_to eval_with_rescue("edit_#{object.class.model_name.singular}_path(#{object.id})"), class: "btn btn-warning btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Editar' } do %>
|
43
|
-
Editar <i class="fa fa-pencil fa-pen"></i>
|
44
|
-
<% end %>
|
45
|
-
<% end %>
|
46
|
-
<% end %>
|
47
|
-
<% if show_actions.include?('index') %>
|
48
|
-
<% if nested_resource %>
|
49
|
-
<%= link_to eval_with_rescue("#{parent_resource.class.model_name.singular}_#{object.class.model_name.plural}_path(#{parent_resource.id})"), class: "btn btn-default btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Listagem' } do %>
|
50
|
-
Listagem <i class="fa fa-bars"></i>
|
51
|
-
<% end %>
|
52
|
-
<% else %>
|
53
|
-
<%= link_to eval_with_rescue("#{object.class.model_name.plural}_path"), class: "btn btn-default btn-xs", data: { toggle: 'tooltip', placement: 'top', title: 'Listagem' } do %>
|
54
|
-
Listagem <i class="fa fa-bars"></i>
|
55
|
-
<% end %>
|
56
|
-
<% end %>
|
57
|
-
<% end %>
|
58
|
-
<% end %>
|
59
|
-
<% if block_given? %>
|
60
|
-
<%= yield %>
|
18
|
+
<div class="card card-outline card-<%= card_color %>">
|
19
|
+
<div class="card-header">
|
20
|
+
<div class="row align-items-center">
|
21
|
+
<div class="col-12 col-md-auto">
|
22
|
+
<h3 class="card-title">
|
23
|
+
<strong>
|
24
|
+
<i class="fa fa<%= object.class.icon %>"></i>
|
25
|
+
Visualizar <%=t object.class.model_name.human %>
|
26
|
+
</strong>
|
27
|
+
</h3>
|
28
|
+
</div>
|
29
|
+
<div class="col-12 col-md mr-auto">
|
30
|
+
<% if can? :manage, object %>
|
31
|
+
<%= render "shared/btn_action_links", size: "xs", object: object, labels: true, hide: hide %>
|
61
32
|
<% end %>
|
62
|
-
</
|
33
|
+
</div>
|
63
34
|
</div>
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
<% if lookup_context.find_all("#{object.class.model_name.plural}/_#{object.class.model_name.singular}").any? %>
|
38
|
+
<%= render object %>
|
39
|
+
<% else %>
|
40
|
+
<div class="card card-outline card-<%= card_color %>">
|
41
|
+
<div class="card-body p-0">
|
42
|
+
<table class="table table-bordered table-striped p-0">
|
68
43
|
<thead>
|
69
44
|
<tr>
|
70
|
-
<th width='15%'
|
71
|
-
<th
|
45
|
+
<th width='15%'>Campo</th>
|
46
|
+
<th>Valor</th>
|
72
47
|
</tr>
|
73
48
|
</thead>
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
49
|
+
<% show_columns.each do |column| %>
|
50
|
+
<% unless /_currency$/ =~ column %>
|
51
|
+
<tr>
|
52
|
+
<th>
|
53
|
+
<% if /_id$/ =~ column && object.respond_to?(column.split('_id')[0]) %>
|
54
|
+
<%= object.class.human_attribute_name(column.split("_id")[0]) %>
|
55
|
+
<% elsif /_cents$/ =~ column %>
|
56
|
+
<%= object.class.human_attribute_name(column.split("_cents")[0]) %>
|
57
|
+
<% else %>
|
58
|
+
<%= object.class.human_attribute_name(column) %>
|
59
|
+
<% end %>
|
60
|
+
</th>
|
61
|
+
<td>
|
62
|
+
<% if column.to_s.include?('.') %>
|
63
|
+
<% o = object %>
|
64
|
+
<% column.split('.').each{|m| o = o.send(m) if o } %>
|
65
|
+
<%= o %>
|
66
|
+
<% elsif object.send(column).class == Date or
|
67
|
+
object.send(column).class == DateTime or
|
68
|
+
object.send(column).class == ActiveSupport::TimeWithZone or
|
69
|
+
object.send(column).class == Time %>
|
70
|
+
<%=l object.send(column) %>
|
71
|
+
<% elsif object.send(column).respond_to? 'attached?' %>
|
72
|
+
<% if object.send(column).class == ActiveStorage::Attached::One %>
|
73
|
+
<% if object.send(column).attached? %>
|
74
|
+
<%= link_to rails_blob_path(object.send(column)), class: "btn btn-#{card_color} btn-xs", target: '_blank' do %>
|
75
|
+
<i class="fa fa-file-o"></i> Arquivo
|
76
|
+
<% end %>
|
102
77
|
<% end %>
|
103
78
|
<% end %>
|
79
|
+
<% elsif /_id$/ =~ column && object.respond_to?(column.split('_id')[0]) %>
|
80
|
+
<%= object.send(column.split("_id")[0])&.name %>
|
81
|
+
<% elsif /_cents$/ =~ column %>
|
82
|
+
<%= number_to_currency object.send(column.split("_cents")[0]) %>
|
83
|
+
<% else %>
|
84
|
+
<%= object.send(column) %>
|
104
85
|
<% end %>
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
<%= number_to_currency object.send(column.split("_cents")[0]) %>
|
109
|
-
<% else %>
|
110
|
-
<%= object.send(column) %>
|
111
|
-
<% end %>
|
112
|
-
</td>
|
113
|
-
</tr>
|
86
|
+
</td>
|
87
|
+
</tr>
|
88
|
+
<% end %>
|
114
89
|
<% end %>
|
115
|
-
|
116
|
-
</
|
90
|
+
</table>
|
91
|
+
</div>
|
117
92
|
</div>
|
118
|
-
</div>
|
119
93
|
|
120
|
-
<% if relationships.any? %>
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
94
|
+
<% if relationships.any? %>
|
95
|
+
<% relationships.each do |key, value| %>
|
96
|
+
<% if object.association(key.to_s).kind_of?(ActiveRecord::Associations::BelongsToAssociation) ||
|
97
|
+
object.association(key.to_s).kind_of?(ActiveRecord::Associations::HasOneAssociation) %>
|
98
|
+
<div class="box card-<%= card_color %>">
|
99
|
+
<div class="card-header with-border">
|
100
|
+
<h3 class="card-title">
|
101
|
+
<%= Kernel.const_get(key.to_s.singularize.camelize).model_name.human %>
|
102
|
+
</h3>
|
103
|
+
</div>
|
104
|
+
<div class="card-body p-0">
|
105
|
+
<table class="table table-bordered table-striped p-0">
|
106
|
+
<% unless hide_table_header %>
|
107
|
+
<thead>
|
108
|
+
<tr>
|
109
|
+
<th width='15%'><%= t('field') %></th>
|
110
|
+
<th><%= t('value') %></th>
|
111
|
+
</tr>
|
112
|
+
</thead>
|
113
|
+
<% end %>
|
114
|
+
<tbody>
|
115
|
+
<% value.each do |v| %>
|
116
|
+
<tr>
|
117
|
+
<td>
|
118
|
+
<strong>
|
119
|
+
<% if /_id$/ =~ v && Kernel.const_get(key.to_s.singularize.camelize).new.respond_to?(v.split('_id')[0]) %>
|
120
|
+
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v.split('_id')[0]) %>
|
121
|
+
<% elsif /_cents$/ =~ v %>
|
122
|
+
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v.split("_cents")[0]) %>
|
123
|
+
<% else %>
|
124
|
+
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v) %>
|
125
|
+
<% end %>
|
126
|
+
</strong>
|
127
|
+
</td>
|
128
|
+
<td>
|
129
|
+
<% if object.send(key.to_s).send(v).class == Date or
|
130
|
+
object.send(key.to_s).send(v).class == DateTime or
|
131
|
+
object.send(key.to_s).send(v).class == ActiveSupport::TimeWithZone or
|
132
|
+
object.send(key.to_s).send(v).class == Time %>
|
133
|
+
<%=l object.send(key.to_s).send(v) %>
|
134
|
+
<% elsif /_id$/ =~ v && object.send(key.to_s).respond_to?(v.split('_id')[0]) %>
|
135
|
+
<%= object.send(key.to_s).send(v.split("_id")[0])&.name %>
|
136
|
+
<% elsif /_cents$/ =~ v %>
|
137
|
+
<%= number_to_currency object.send(key.to_s).send(v.split("_cents")[0]) %>
|
138
|
+
<% else %>
|
139
|
+
<%= object.send(key.to_s).send(v) %>
|
140
|
+
<% end %>
|
141
|
+
</td>
|
142
|
+
</tr>
|
143
|
+
<% end %>
|
144
|
+
</tbody>
|
145
|
+
</table>
|
146
|
+
</div>
|
129
147
|
</div>
|
130
|
-
|
131
|
-
|
132
|
-
|
148
|
+
<% else %>
|
149
|
+
<div class="box card-<%= card_color %>">
|
150
|
+
<div class="card-header with-border">
|
151
|
+
<h3 class="card-title">
|
152
|
+
<%= Kernel.const_get(key.to_s.singularize.camelize).model_name.human.pluralize %>
|
153
|
+
</h3>
|
154
|
+
</div>
|
155
|
+
<div class="card-body p-0">
|
156
|
+
<table class="table table-bordered table-striped p-0">
|
133
157
|
<thead>
|
134
158
|
<tr>
|
135
|
-
|
136
|
-
|
137
|
-
</tr>
|
138
|
-
</thead>
|
139
|
-
<% end %>
|
140
|
-
<tbody>
|
141
|
-
<% value.each do |v| %>
|
142
|
-
<tr>
|
143
|
-
<td>
|
144
|
-
<strong>
|
159
|
+
<% value.each do |v| %>
|
160
|
+
<th>
|
145
161
|
<% if /_id$/ =~ v && Kernel.const_get(key.to_s.singularize.camelize).new.respond_to?(v.split('_id')[0]) %>
|
146
162
|
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v.split('_id')[0]) %>
|
147
|
-
<% elsif /_cents$/ =~ v %>
|
148
|
-
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v.split("_cents")[0]) %>
|
149
163
|
<% else %>
|
150
164
|
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v) %>
|
151
165
|
<% end %>
|
152
|
-
</
|
153
|
-
|
154
|
-
<td>
|
155
|
-
<% if object.send(key.to_s).send(v).class == Date or
|
156
|
-
object.send(key.to_s).send(v).class == DateTime or
|
157
|
-
object.send(key.to_s).send(v).class == ActiveSupport::TimeWithZone or
|
158
|
-
object.send(key.to_s).send(v).class == Time %>
|
159
|
-
<%=l object.send(key.to_s).send(v) %>
|
160
|
-
<% elsif /_id$/ =~ v && object.send(key.to_s).respond_to?(v.split('_id')[0]) %>
|
161
|
-
<%= object.send(key.to_s).send(v.split("_id")[0])&.name %>
|
162
|
-
<% elsif /_cents$/ =~ v %>
|
163
|
-
<%= number_to_currency object.send(key.to_s).send(v.split("_cents")[0]) %>
|
164
|
-
<% else %>
|
165
|
-
<%= object.send(key.to_s).send(v) %>
|
166
|
-
<% end %>
|
167
|
-
</td>
|
166
|
+
</th>
|
167
|
+
<% end %>
|
168
168
|
</tr>
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
<%= Kernel.const_get(key.to_s.singularize.camelize).human_attribute_name(v) %>
|
191
|
-
<% end %>
|
192
|
-
</th>
|
193
|
-
<% end %>
|
194
|
-
</tr>
|
195
|
-
</thead>
|
196
|
-
<tbody>
|
197
|
-
<% object.send(key.to_s).each do |r| %>
|
198
|
-
<tr>
|
199
|
-
<% value.each do |v| %>
|
200
|
-
<td>
|
201
|
-
<% if v.include?('.') %>
|
202
|
-
<% o = r %>
|
203
|
-
<% v.split('.').each{|m| o = o.send(m) if o } %>
|
204
|
-
<%= o %>
|
205
|
-
<% elsif r.send(v).class == Date or
|
206
|
-
r.send(v).class == DateTime or
|
207
|
-
r.send(v).class == ActiveSupport::TimeWithZone or
|
208
|
-
r.send(v).class == Time %>
|
209
|
-
<%=l r.send(v) %>
|
210
|
-
<% elsif r.send(v).respond_to? 'attached?' %>
|
211
|
-
<% if r.send(v).class == ActiveStorage::Attached::One %>
|
212
|
-
<% if r.send(v).attached? %>
|
213
|
-
<%= link_to rails_blob_path(r.send(v)), class: "btn btn-#{box_class} btn-xs", target: '_blank' do %>
|
214
|
-
<i class="fa fa-file-o"></i> Arquivo
|
169
|
+
</thead>
|
170
|
+
<tbody>
|
171
|
+
<% object.send(key.to_s).each do |r| %>
|
172
|
+
<tr>
|
173
|
+
<% value.each do |v| %>
|
174
|
+
<td>
|
175
|
+
<% if v.include?('.') %>
|
176
|
+
<% o = r %>
|
177
|
+
<% v.split('.').each{|m| o = o.send(m) if o } %>
|
178
|
+
<%= o %>
|
179
|
+
<% elsif r.send(v).class == Date or
|
180
|
+
r.send(v).class == DateTime or
|
181
|
+
r.send(v).class == ActiveSupport::TimeWithZone or
|
182
|
+
r.send(v).class == Time %>
|
183
|
+
<%=l r.send(v) %>
|
184
|
+
<% elsif r.send(v).respond_to? 'attached?' %>
|
185
|
+
<% if r.send(v).class == ActiveStorage::Attached::One %>
|
186
|
+
<% if r.send(v).attached? %>
|
187
|
+
<%= link_to rails_blob_path(r.send(v)), class: "btn btn-#{card_color} btn-xs", target: '_blank' do %>
|
188
|
+
<i class="fa fa-file-o"></i> Arquivo
|
189
|
+
<% end %>
|
215
190
|
<% end %>
|
216
191
|
<% end %>
|
192
|
+
<% elsif /_id$/ =~ v && r.respond_to?(v.split('_id')[0]) %>
|
193
|
+
<%= r.send(v.split("_id")[0])&.name %>
|
194
|
+
<% else %>
|
195
|
+
<%= r.send(v) %>
|
217
196
|
<% end %>
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
</tr>
|
226
|
-
<% end %>
|
227
|
-
</tbody>
|
228
|
-
</table>
|
197
|
+
</td>
|
198
|
+
<% end %>
|
199
|
+
</tr>
|
200
|
+
<% end %>
|
201
|
+
</tbody>
|
202
|
+
</table>
|
203
|
+
</div>
|
229
204
|
</div>
|
230
|
-
|
205
|
+
<% end %>
|
231
206
|
<% end %>
|
232
207
|
<% end %>
|
233
208
|
<% end %>
|
209
|
+
<%= render "shared/btn_action_links", object: object, labels: true, hide: hide %>
|
data/lib/zutils/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Viana
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -68,8 +68,10 @@ files:
|
|
68
68
|
- app/assets/javascripts/zutils.js
|
69
69
|
- app/assets/stylesheets/zutils.scss
|
70
70
|
- app/views/shared/_action_links.html.erb
|
71
|
+
- app/views/shared/_btn_action_links.html.erb
|
71
72
|
- app/views/shared/_card_list.html.erb
|
72
73
|
- app/views/shared/_fields.html.erb
|
74
|
+
- app/views/shared/_flash.html.erb
|
73
75
|
- app/views/shared/_form.html.erb
|
74
76
|
- app/views/shared/_index.html.erb
|
75
77
|
- app/views/shared/_list.html.erb
|
@@ -85,7 +87,7 @@ homepage: http://gitlab.tjpi.jus.br/
|
|
85
87
|
licenses:
|
86
88
|
- MIT
|
87
89
|
metadata: {}
|
88
|
-
post_install_message:
|
90
|
+
post_install_message:
|
89
91
|
rdoc_options: []
|
90
92
|
require_paths:
|
91
93
|
- lib
|
@@ -100,8 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
102
|
- !ruby/object:Gem::Version
|
101
103
|
version: '0'
|
102
104
|
requirements: []
|
103
|
-
rubygems_version: 3.
|
104
|
-
signing_key:
|
105
|
+
rubygems_version: 3.5.18
|
106
|
+
signing_key:
|
105
107
|
specification_version: 4
|
106
108
|
summary: Utilidades gerais para aplicações rails
|
107
109
|
test_files: []
|