base_editing_bootstrap 0.1.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e95ef3ba43c9fd79ca3df0c1950e3b5b16fe52730e77174f227f7c7a046c7d4a
4
- data.tar.gz: 631eae428893bf3722901da4d2fa28984f55507edfb2f6e8fe34c8c82d488fae
3
+ metadata.gz: 7468c063d06ad4be7aea4786ffe79b06e7aea328286d1f3db23a9c8155e16112
4
+ data.tar.gz: 495f2835ef4de6c905cf39b8ed886d1187231dd566d3e005437c951f8fb6723c
5
5
  SHA512:
6
- metadata.gz: '0659da3676b00f197ebf69b15b55db8e733e51eae8f2b5c95088c8f136ceac3269040eed02c1f850f5c9861421b7e3669d6828c2f9570125fcb2c327b811d53a'
7
- data.tar.gz: 4d34b433a33117af8b9c8e3470d93fa9da92e7bcf9dc3156e5e5e001611cb44d18db68dcd205dc2ecfc26c9c959d15639c5da3f01cbb98cef445fa8147b378bb
6
+ metadata.gz: 31e7c1be7578adc8f78cd3f10f2b09a0f66f359eb6a62719857f76bddbcf53e77d321835b0a060ed161df0d1182f87d279b2e19bcafe5cb25d4b7b612e92a771
7
+ data.tar.gz: 1fdd1a212e2be5888561827980fc74d2c3916b7ef6210fc7cc541d5ee2d436c6f6bf320eb4ea570043869a084ec8d43bd2a4341c2f5ddd47523971ff235df7fd
data/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
  All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
3
3
 
4
4
  - - -
5
+ ## 0.3.0 - 2024-04-27
6
+ #### Bug Fixes
7
+ - Remove files from gem - (660cb3d) - Marino Bonetti
8
+ #### Documentation
9
+ - Update documentation - (42472ff) - Marino Bonetti
10
+ - Add documentation for spec helper - (170dd5a) - Marino Bonetti
11
+ #### Features
12
+ - Add configurations to change redirect after edit/create - (f8f3048) - Marino Bonetti
13
+ #### Refactoring
14
+ - Gem dependency organization - (7fb8caf) - Marino Bonetti
15
+ - Gem dependency organization - (f997fd9) - Marino Bonetti
16
+ #### Tests
17
+ - Aggiunta test per controllo redirect post success o update - (4c28e38) - Marino Bonetti
18
+ - Add Seed for generating multiple post in dummy - (bcbe986) - Marino Bonetti
19
+
20
+ - - -
21
+
22
+ ## 0.2.0 - 2024-04-23
23
+ #### Documentation
24
+ - Add documntation for installation - (b528daa) - Marino Bonetti
25
+ - Fix documentation - (28e2e0b) - Marino Bonetti
26
+ #### Features
27
+ - Add Automatic Enum editing - (aab85a5) - Marino Bonetti
28
+ #### Miscellaneous Chores
29
+ - Remove code - (e07516a) - Marino Bonetti
30
+ - Fix Cog hooks - (2045412) - Marino Bonetti
31
+ #### Refactoring
32
+ - Rewrite helpers for base request editing - (1a08528) - Marino Bonetti
33
+ #### Tests
34
+ - Add test for enum helper - (4f48b48) - Marino Bonetti
35
+
36
+ - - -
37
+
5
38
  ## 0.1.4 - 2024-04-21
6
39
  #### Miscellaneous Chores
7
40
  - Fix Cog hooks - (ebd2d77) - Marino Bonetti
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # BaseEditingBootstrap
2
+ [![Gem Version](https://badge.fury.io/rb/base_editing_bootstrap.svg)](https://badge.fury.io/rb/base_editing_bootstrap)
3
+
2
4
  WIP
3
5
 
4
6
  ## Installation
@@ -42,10 +44,46 @@ config.generators do |g|
42
44
  g.factory_bot dir: 'spec/factories'
43
45
  end
44
46
  ```
47
+ ### Initializers
48
+ E' possibile configurare BaseEditingBootstrap con alcune impostazioni:
49
+ ```ruby
50
+ BaseEditingBootstrap.configure do |config|
51
+ ##
52
+ # Controller da cui derivare poi il BaseEditingController da cui derivano
53
+ # tutti i controller sottostanti
54
+ # @default "ApplicationController"
55
+ # config.inherited_controller = 'ApplicationController'
56
+
57
+ ##
58
+ # Configurazione per alterare lo standard di azione post aggiornamento record
59
+ # il default è andare nella pagina di editing del record
60
+ # possibili valori :edit , :index
61
+ # config_accessor :after_success_update_redirect, default: :edit
62
+
63
+ ##
64
+ # Configurazione per alterare lo standard di azione post creazione record
65
+ # il default è andare nella pagina di editing del record
66
+ # possibili valori :edit , :index
67
+ # config_accessor :after_success_create_redirect, default: :edit
68
+
69
+ end
70
+
71
+ ```
72
+
45
73
  ## Usage
46
74
  Utilizzo per modello base, in questo esempio prendiamo come modello Post come esempio del dummy.
47
75
 
48
- - Creare il Modello ed includere `include BaseEditingBootstrap::BaseModel`
76
+ - Creare il Modello ed includere
77
+ ```ruby
78
+ include BaseEditingBootstrap::BaseModel
79
+ ```
80
+ - La factory nelle spec deve contenere il trait `with_invalid_attributes` per definire la situazione di dati per record
81
+ non valido. ES:
82
+ ```ruby
83
+ trait :with_invalid_attributes do
84
+ name {nil} # name dovrebbe essere obbligatorio nel modello
85
+ end
86
+ ```
49
87
  - Creare Controller:
50
88
  ```ruby
51
89
  class PostsController < BaseEditingController
@@ -99,11 +137,15 @@ Utilizzo per modello base, in questo esempio prendiamo come modello Post come es
99
137
  - updated_at => timestamps.html.erb
100
138
  - default => base.html.erb
101
139
  **Form Field**
102
- - Integer => _integer.html.erb
103
- - Float => _decimal.html.erb
104
- - Decimal => _decimal.html.erb
105
- - DateTime => _detetime.html.erb
106
- - Date => _date.html.erb
140
+ - Integer => _integer.html.erb
141
+ - Float => _decimal.html.erb
142
+ - Decimal => _decimal.html.erb
143
+ - DateTime => _detetime.html.erb
144
+ - Date => _date.html.erb
145
+ - Enum => _enum.html.erb
146
+ Per gli enum, le traduzioni dei labels di ogni valore provvengono da i18n
147
+ attraverso l'helper: `Utilities::EnumHelper#enum_translation`
148
+ il quale utilizza il nome dell'attributo con
107
149
  - Default/String => _base.html.erb
108
150
 
109
151
  In futuro si prevede di aggiungere automatismi per renderizzare senza
@@ -186,7 +186,13 @@ class BaseEditingController < RestrictedAreaController
186
186
 
187
187
  def _successful_create(format)
188
188
  format.all do
189
- redirect_to edit_custom_polymorphic_path(@object),
189
+ path = case BaseEditingBootstrap.after_success_create_redirect
190
+ when :index
191
+ index_custom_polymorphic_path(@object.class)
192
+ else
193
+ edit_custom_polymorphic_path(@object)
194
+ end
195
+ redirect_to path,
190
196
  status: :see_other,
191
197
  notice: t('activerecord.successful.messages.created', model: base_class.model_name.human)
192
198
  end
@@ -201,7 +207,13 @@ class BaseEditingController < RestrictedAreaController
201
207
 
202
208
  def _successful_update(format)
203
209
  format.all do
204
- redirect_to edit_custom_polymorphic_path(@object),
210
+ path = case BaseEditingBootstrap.after_success_update_redirect
211
+ when :index
212
+ index_custom_polymorphic_path(@object.class)
213
+ else
214
+ edit_custom_polymorphic_path(@object)
215
+ end
216
+ redirect_to path,
205
217
  status: :see_other,
206
218
  notice: t('activerecord.successful.messages.updated', model: base_class.model_name.human)
207
219
  end
@@ -18,7 +18,10 @@ module Utilities
18
18
  def enum_translation(model, attribute, value, variant = nil)
19
19
  return '' if value.nil?
20
20
  variant = "_#{variant}" unless variant.nil?
21
- model.human_attribute_name("#{attribute}.#{value}#{variant}")
21
+ model.human_attribute_name(
22
+ "#{attribute}.#{value}#{variant}",
23
+ default: model.human_attribute_name("#{attribute}.#{value}")
24
+ )
22
25
  end
23
26
  end
24
27
  end
@@ -1,6 +1,7 @@
1
1
  module Utilities
2
2
  module FormHelper
3
3
  include TemplateHelper
4
+ include EnumHelper
4
5
  ##
5
6
  # Metodo su cui eseguire override per i campi specifici rispetto all'oggetto gestito dal controller
6
7
  # @deprecated Utilizza form_print_field(form, field) senza sovrascriverlo
@@ -17,7 +18,8 @@ module Utilities
17
18
  # @param [Symbol] field
18
19
  def form_print_field(form, field)
19
20
  locals = {form:, field:}
20
- case form.object.class.type_for_attribute(field).type
21
+ type = form.object.class.type_for_attribute(field).type
22
+ case type
21
23
  when :datetime
22
24
  generic_field = "datetime"
23
25
  when :date
@@ -31,7 +33,11 @@ module Utilities
31
33
  when :integer
32
34
  generic_field = "integer"
33
35
  else
34
- generic_field = "base"
36
+ if form.object.class.defined_enums.key?(field.to_s)
37
+ generic_field = "enum"
38
+ else
39
+ generic_field = "base"
40
+ end
35
41
  end
36
42
 
37
43
  template = find_template_with_fallbacks(
@@ -40,7 +46,7 @@ module Utilities
40
46
  "form_field",
41
47
  generic_field
42
48
  )
43
- Rails.logger.debug { "#{template}->#{ locals.inspect}" }
49
+ Rails.logger.debug { "#{type}->#{generic_field}->#{template}->#{ locals.inspect}" }
44
50
  render template, **locals
45
51
  end
46
52
 
@@ -0,0 +1,2 @@
1
+ <%# locals: (form:, field:) -%>
2
+ <%= form.select(field, enum_collection(form.object.class, field)) %>
@@ -13,27 +13,42 @@ Gem::Specification.new do |spec|
13
13
 
14
14
  spec.metadata["homepage_uri"] = spec.homepage
15
15
  spec.metadata["source_code_uri"] = "https://github.com/oniram88/BaseEditingBootstrap"
16
- spec.metadata["changelog_uri"] = "https://github.com/oniram88/BaseEditingBootstrap/CHANGELOG"
16
+ spec.metadata["changelog_uri"] = "https://github.com/oniram88/BaseEditingBootstrap/blob/main/CHANGELOG.md"
17
17
 
18
18
  # Specify which files should be added to the gem when it is released.
19
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
20
  spec.files = Dir.chdir(__dir__) do
21
21
  `git ls-files -z`.split("\x0").reject do |f|
22
22
  (File.expand_path(f) == __FILE__) ||
23
- f.start_with?(*%w[bin/ test/ spec/ features/ .git .gitlab-ci.yml appveyor Gemfile])
23
+ f.start_with?(*[
24
+ "bin/", "test/", "spec/", "features/",
25
+ ".git", ".gitlab-ci.yml", "appveyor", "Gemfile",
26
+ "cog.toml", "docker-compose.yml", "Dockerfile",
27
+ ".rspec", ".rubocop.yml"
28
+ ])
24
29
  end
25
30
  end
26
31
  spec.files += Dir['spec/support/external_shared/*.rb']
27
32
 
28
- spec.add_dependency "rails", ">= 7.0"
29
- spec.add_dependency "pundit", ">= 2.3.1"
30
-
33
+ spec.add_dependency "rails", [">= 7.0", "< 8.0"]
34
+ # Policy
35
+ spec.add_dependency "pundit", ["~> 2.3", ">= 2.3.1"]
31
36
  # Search
32
- spec.add_dependency 'ransack', '>= 4.0.0'
37
+ spec.add_dependency 'ransack', ['~> 4.0', '>= 4.0.0']
33
38
  # Pagination
34
- spec.add_dependency 'kaminari', '>= 1.2.2'
39
+ spec.add_dependency 'kaminari', ['~> 1.2', '>= 1.2.2']
35
40
 
36
- spec.add_development_dependency "rspec-rails"
37
- spec.add_development_dependency "factory_bot_rails"
41
+ spec.add_development_dependency "rspec-rails", '~> 6.0'
42
+ spec.add_development_dependency "factory_bot_rails", '~> 6.4'
43
+ spec.add_development_dependency 'faker'
44
+ spec.add_development_dependency "puma"
45
+ spec.add_development_dependency "sqlite3"
46
+ spec.add_development_dependency "sprockets-rails"
47
+ spec.add_development_dependency 'rails-i18n', '~> 7.0.0' # For 7.0.0
48
+ spec.add_development_dependency "i18n-debug"
49
+ spec.add_development_dependency "cssbundling-rails"
50
+ spec.add_development_dependency "rspec-parameterized", ">= 1.0.0" # https://github.com/tomykaira/rspec-parameterized
51
+ spec.add_development_dependency 'rspec-html-matchers' # https://github.com/kucaahbe/rspec-html-matchers
52
+ spec.add_development_dependency 'rails-controller-testing'
38
53
 
39
54
  end
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.3.0
@@ -15,7 +15,24 @@ loader.setup
15
15
 
16
16
  module BaseEditingBootstrap
17
17
  include ActiveSupport::Configurable
18
+
19
+ ##
20
+ # Controller da cui derivare poi il BaseEditingController da cui derivano
21
+ # tutti i controller sottostanti
22
+ # @default "ApplicationController"
18
23
  config_accessor :inherited_controller, default: "ApplicationController"
24
+
25
+ ##
26
+ # Configurazione per alterare lo standard di azione post aggiornamento record
27
+ # il default è andare nella pagina di editing del record
28
+ # possibili valori :edit , :index
29
+ config_accessor :after_success_update_redirect, default: :edit
30
+
31
+ ##
32
+ # Configurazione per alterare lo standard di azione post creazione record
33
+ # il default è andare nella pagina di editing del record
34
+ # possibili valori :edit , :index
35
+ config_accessor :after_success_create_redirect, default: :edit
19
36
 
20
37
  def self.deprecator
21
38
  @deprecator ||= ActiveSupport::Deprecation.new("1.0", "BaseEditingBootstrap")
@@ -10,6 +10,32 @@ end
10
10
  ##
11
11
  # Helper per testare controller derivanti da base editing
12
12
  # only e except servono per filtrare o escludere determinate actions
13
+ # @!attribute factory [Symbol] -> nome della factory da usare per il modello
14
+ # @!attribute only [Array[Symbol]] -> nome delle sole action da controllare
15
+ # - delete
16
+ # - create
17
+ # - update
18
+ # - edit
19
+ # - new
20
+ # - index
21
+ # @!attribute expect [Array[Symbol]] -> nome delle action da non controllare
22
+ # @!attribute skip_invalid_checks [Boolean] -> se serve saltare il check delle azioni con dati non validi
23
+ #
24
+ # Sono poi disponibili diversi let per poter fare l'override arbitrario degli url,
25
+ # tutti abbastanza auto-descrittivi
26
+ #
27
+ # :url_for_new
28
+ # :url_for_index
29
+ # :url_for_create
30
+ # :url_for_succ_delete
31
+ # :url_for_fail_delete
32
+ # :url_for_edit -> Rispetto agli altri questo risulta essere pià complicato in quanto
33
+ # deve ritornare una proc a cui passiamo il valore dell'istanza persistente
34
+ # che nei casi del after create non abbiamo a priori.
35
+ # :url_for_unauthorized
36
+ # :url_for_update
37
+ #
38
+ #
13
39
  RSpec.shared_examples "base editing controller" do |factory: nil, only: [], except: [], skip_invalid_checks: false|
14
40
  if factory
15
41
  let(:inside_factory) { factory }
@@ -23,13 +49,15 @@ RSpec.shared_examples "base editing controller" do |factory: nil, only: [], exce
23
49
  ##
24
50
  # Possibili override per la costruzione delle path
25
51
  #
26
- let(:url_for_new) { [model.new, action: :new] }
52
+ let(:url_for_new) { url_for([model.new, action: :new]) }
27
53
  let(:url_for_index) { url_for(model) }
28
- let(:url_for_create) { [model.new] }
54
+ let(:url_for_create) { url_for(model.new) }
29
55
  let(:url_for_succ_delete) { url_for(model) }
30
56
  let(:url_for_fail_delete) { url_for_succ_delete }
31
- let(:url_for_edit) { [persisted_instance, action: :edit] }
32
- let(:url_for_update) { [persisted_instance, params: {param_key => valid_attributes}] }
57
+ let(:url_for_edit) { ->(p = persisted_instance) {
58
+ url_for([p, action: :edit])
59
+ } }
60
+ let(:url_for_update) { url_for(persisted_instance) }
33
61
  ## non sempre abbiamo l'index nelle action disponibili, dobbiamo quindi avere modo di eseguire un override
34
62
  let(:url_for_unauthorized) { url_for_index }
35
63
  ##
@@ -69,7 +97,7 @@ RSpec.shared_examples "base editing controller" do |factory: nil, only: [], exce
69
97
  if check_if_should_execute(only, except, :new)
70
98
  describe "new" do
71
99
  it "response" do
72
- get url_for(url_for_new)
100
+ get url_for_new
73
101
  expect(response).to have_http_status(:ok)
74
102
  expect(assigns[:object]).to be_an_instance_of(model)
75
103
  end
@@ -79,7 +107,7 @@ RSpec.shared_examples "base editing controller" do |factory: nil, only: [], exce
79
107
  if check_if_should_execute(only, except, :edit)
80
108
  describe "edit" do
81
109
  it "response" do
82
- get url_for(url_for_edit)
110
+ get url_for_edit.call
83
111
  expect(response).to have_http_status(:ok)
84
112
  expect(assigns[:object]).to be_an_instance_of(model)
85
113
  end
@@ -89,14 +117,21 @@ RSpec.shared_examples "base editing controller" do |factory: nil, only: [], exce
89
117
  if check_if_should_execute(only, except, :update)
90
118
  describe "update" do
91
119
  it "response" do
92
- put url_for(url_for_update)
120
+ put url_for_update, params: {param_key => valid_attributes}
93
121
  expect(assigns[:object]).to be_an_instance_of(model)
94
122
  expect(response).to have_http_status(:see_other)
123
+ case BaseEditingBootstrap.after_success_update_redirect
124
+ when :index
125
+ expect(response).to redirect_to(url_for_index)
126
+ else
127
+ # edit
128
+ expect(response).to redirect_to(url_for_edit.call(assigns[:object]))
129
+ end
95
130
  end
96
131
 
97
132
  unless skip_invalid_checks
98
133
  it "not valid" do
99
- put url_for([persisted_instance, params: {param_key => invalid_attributes}])
134
+ put url_for_update, params: {param_key => invalid_attributes}
100
135
  expect(response).to have_http_status(:unprocessable_entity)
101
136
  end
102
137
  end
@@ -106,14 +141,21 @@ RSpec.shared_examples "base editing controller" do |factory: nil, only: [], exce
106
141
  if check_if_should_execute(only, except, :create)
107
142
  describe "create" do
108
143
  it "response" do
109
- post url_for([*url_for_create, params: {param_key => valid_attributes}])
144
+ post url_for_create, params: {param_key => valid_attributes}
110
145
  expect(assigns[:object]).to be_an_instance_of(model)
111
146
  expect(response).to have_http_status(:see_other)
147
+ case BaseEditingBootstrap.after_success_create_redirect
148
+ when :index
149
+ expect(response).to redirect_to(url_for_index)
150
+ else
151
+ # edit
152
+ expect(response).to redirect_to(url_for_edit.call(assigns[:object]))
153
+ end
112
154
  end
113
155
 
114
156
  unless skip_invalid_checks
115
157
  it "not valid" do
116
- post url_for([*url_for_create, params: {param_key => invalid_attributes}])
158
+ post url_for_create, params: {param_key => invalid_attributes}
117
159
  expect(response).to have_http_status(:unprocessable_entity)
118
160
  end
119
161
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: base_editing_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marino Bonetti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-21 00:00:00.000000000 Z
11
+ date: 2024-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '7.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,10 +27,16 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '7.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: pundit
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.3'
31
40
  - - ">="
32
41
  - !ruby/object:Gem::Version
33
42
  version: 2.3.1
@@ -35,6 +44,9 @@ dependencies:
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.3'
38
50
  - - ">="
39
51
  - !ruby/object:Gem::Version
40
52
  version: 2.3.1
@@ -42,6 +54,9 @@ dependencies:
42
54
  name: ransack
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '4.0'
45
60
  - - ">="
46
61
  - !ruby/object:Gem::Version
47
62
  version: 4.0.0
@@ -49,6 +64,9 @@ dependencies:
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4.0'
52
70
  - - ">="
53
71
  - !ruby/object:Gem::Version
54
72
  version: 4.0.0
@@ -56,6 +74,9 @@ dependencies:
56
74
  name: kaminari
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.2'
59
80
  - - ">="
60
81
  - !ruby/object:Gem::Version
61
82
  version: 1.2.2
@@ -63,11 +84,42 @@ dependencies:
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
66
90
  - - ">="
67
91
  - !ruby/object:Gem::Version
68
92
  version: 1.2.2
69
93
  - !ruby/object:Gem::Dependency
70
94
  name: rspec-rails
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '6.0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: '6.0'
107
+ - !ruby/object:Gem::Dependency
108
+ name: factory_bot_rails
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '6.4'
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '6.4'
121
+ - !ruby/object:Gem::Dependency
122
+ name: faker
71
123
  requirement: !ruby/object:Gem::Requirement
72
124
  requirements:
73
125
  - - ">="
@@ -81,7 +133,119 @@ dependencies:
81
133
  - !ruby/object:Gem::Version
82
134
  version: '0'
83
135
  - !ruby/object:Gem::Dependency
84
- name: factory_bot_rails
136
+ name: puma
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ type: :development
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: sqlite3
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ - !ruby/object:Gem::Dependency
164
+ name: sprockets-rails
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: rails-i18n
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: 7.0.0
184
+ type: :development
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: 7.0.0
191
+ - !ruby/object:Gem::Dependency
192
+ name: i18n-debug
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ - !ruby/object:Gem::Dependency
206
+ name: cssbundling-rails
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '0'
219
+ - !ruby/object:Gem::Dependency
220
+ name: rspec-parameterized
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: 1.0.0
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 1.0.0
233
+ - !ruby/object:Gem::Dependency
234
+ name: rspec-html-matchers
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ - !ruby/object:Gem::Dependency
248
+ name: rails-controller-testing
85
249
  requirement: !ruby/object:Gem::Requirement
86
250
  requirements:
87
251
  - - ">="
@@ -101,11 +265,8 @@ executables: []
101
265
  extensions: []
102
266
  extra_rdoc_files: []
103
267
  files:
104
- - ".rspec"
105
- - ".rubocop.yml"
106
268
  - CHANGELOG.md
107
269
  - CODE_OF_CONDUCT.md
108
- - Dockerfile
109
270
  - LICENSE.txt
110
271
  - MIT-LICENSE
111
272
  - README.md
@@ -121,7 +282,6 @@ files:
121
282
  - app/helpers/base_editing_helper.rb
122
283
  - app/helpers/utilities/enum_helper.rb
123
284
  - app/helpers/utilities/form_helper.rb
124
- - app/helpers/utilities/modal_helper.rb
125
285
  - app/helpers/utilities/page_helper.rb
126
286
  - app/helpers/utilities/search_helper.rb
127
287
  - app/helpers/utilities/template_helper.rb
@@ -155,6 +315,7 @@ files:
155
315
  - app/views/base_editing/form_field/_date.html.erb
156
316
  - app/views/base_editing/form_field/_datetime.html.erb
157
317
  - app/views/base_editing/form_field/_decimal.html.erb
318
+ - app/views/base_editing/form_field/_enum.html.erb
158
319
  - app/views/base_editing/form_field/_integer.html.erb
159
320
  - app/views/base_editing/index.html.erb
160
321
  - app/views/base_editing/new.html.erb
@@ -167,11 +328,9 @@ files:
167
328
  - app/views/kaminari/_paginator.html.erb
168
329
  - app/views/kaminari/_prev_page.html.erb
169
330
  - base_editing_bootstrap.gemspec
170
- - cog.toml
171
331
  - config/initializers/base_field_error_proc.rb
172
332
  - config/locales/it.yml
173
333
  - config/routes.rb
174
- - docker-compose.yml
175
334
  - lib/base_editing_bootstrap.rb
176
335
  - lib/base_editing_bootstrap/VERSION
177
336
  - lib/base_editing_bootstrap/base_model.rb
@@ -192,7 +351,7 @@ licenses:
192
351
  metadata:
193
352
  homepage_uri: https://github.com/oniram88/BaseEditingBootstrap
194
353
  source_code_uri: https://github.com/oniram88/BaseEditingBootstrap
195
- changelog_uri: https://github.com/oniram88/BaseEditingBootstrap/CHANGELOG
354
+ changelog_uri: https://github.com/oniram88/BaseEditingBootstrap/blob/main/CHANGELOG.md
196
355
  post_install_message:
197
356
  rdoc_options: []
198
357
  require_paths:
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require rails_helper
data/.rubocop.yml DELETED
@@ -1,13 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 3.0
3
-
4
- Style/StringLiterals:
5
- Enabled: true
6
- EnforcedStyle: double_quotes
7
-
8
- Style/StringLiteralsInInterpolation:
9
- Enabled: true
10
- EnforcedStyle: double_quotes
11
-
12
- Layout/LineLength:
13
- Max: 120
data/Dockerfile DELETED
@@ -1,57 +0,0 @@
1
- # syntax = docker/dockerfile:1
2
-
3
- # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
4
- ARG RUBY_VERSION=3.3.0
5
- FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base
6
-
7
- # Rails app lives here
8
- WORKDIR /app
9
-
10
- # Set production environment
11
- ENV RAILS_ENV="production"
12
-
13
-
14
- # Throw-away build stage to reduce size of final image
15
- FROM base as build_dev_image
16
-
17
- # Install packages needed to build gems and node modules
18
- RUN apt-get update -qq && \
19
- apt-get install --no-install-recommends -y build-essential curl git libvips node-gyp pkg-config python-is-python3
20
-
21
- # Install JavaScript dependencies
22
- ARG NODE_VERSION=20.11.1
23
- ARG YARN_VERSION=1.22.22
24
- ENV PATH=/usr/local/node/bin:$PATH
25
- RUN curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz -C /tmp/ && \
26
- /tmp/node-build-master/bin/node-build "${NODE_VERSION}" /usr/local/node && \
27
- npm install -g yarn@$YARN_VERSION && \
28
- rm -rf /tmp/node-build-master
29
-
30
- #------------------------------------------------------------
31
- # IMMAGINE DI SVILUPPO
32
- FROM build_dev_image as development_image
33
-
34
- ARG default_editor
35
- RUN apt-get install -y nano gpg gpg-agent git-lfs git ssh
36
- #questo serve per editare le credentials
37
- ENV EDITOR='nano' \
38
- BUNDLE_PATH="/bundle"
39
- # helper per webpacker
40
- RUN touch /.yarnrc && chmod 777 /.yarnrc
41
- RUN mkdir /.cache && chmod 777 /.cache
42
- RUN adduser --system -D --uid 1000 -h /home/nobody --shell /bin/bash rails rails
43
-
44
-
45
- RUN mkdir /bundle && chmod -R ugo+rwt /bundle
46
- VOLUME /bundle
47
-
48
- RUN gem install foreman
49
- ##
50
- # Installiamo:
51
- # bundle-audit : gemma per controllo di sicurezza https://github.com/rubysec/bundler-audit
52
- # bummr : gemma per upgrade automatizzato delle gemme con singoli commit per gemma
53
- RUN gem install bundle-audit bummr
54
-
55
- RUN mkdir -p /home/nobody && chmod 777 /home/nobody
56
- ENV HOME="/home/nobody"
57
-
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Utilities::ModalHelper
4
- ##
5
- # Metodo speciale per l'inclusione del contenuto nelle modal, forzando il flush in modo da poter utilizzare
6
- # più modal contemporaneamente
7
- def content_for_modal(*args, &block)
8
- opts = args.extract_options!
9
- content_for(*args, opts.merge(flush: true), &block)
10
- end
11
- end
data/cog.toml DELETED
@@ -1,31 +0,0 @@
1
- from_latest_tag = false
2
- ignore_merge_commits = false
3
- disable_changelog = false
4
- generate_mono_repository_global_tag = true
5
- branch_whitelist = []
6
- skip_ci = "[skip ci]"
7
- skip_untracked = false
8
- pre_bump_hooks = [
9
- "echo '{{version}}' > lib/base_editing_bootstrap/VERSION",
10
- "docker compose run app bundle"
11
- ]
12
- post_bump_hooks = [
13
- "git push",
14
- "git push origin {{version}}",
15
- "docker compose run app gem build base_editing_bootstrap.gemspec",
16
- "docker compose run app gem push base_editing_bootstrap-{{version}}.gem"
17
- ]
18
- pre_package_bump_hooks = []
19
- post_package_bump_hooks = []
20
-
21
- [git_hooks]
22
-
23
- [commit_types]
24
-
25
- [changelog]
26
- path = "CHANGELOG.md"
27
- authors = []
28
-
29
- [bump_profiles]
30
-
31
- [packages]
data/docker-compose.yml DELETED
@@ -1,20 +0,0 @@
1
- services:
2
- app:
3
- command: /app/spec/dummy/bin/dev
4
- build:
5
- context: .
6
- user: ${CMPS_UID_GID}
7
- volumes:
8
- - '.:/app'
9
- - 'bundle:/bundle'
10
- - '~/.gitconfig:/home/nobody/.gitconfig'
11
- - '~/.gnupg:/home/nobody/.gnupg'
12
- - '~/.gem:/home/nobody/.gem'
13
- - '~/.ssh:/home/nobody/.ssh'
14
- environment:
15
- RAILS_ENV: development
16
- ports:
17
- - 3000:3000
18
-
19
- volumes:
20
- bundle: