modulorails 1.4.0.1 → 1.5.0.pre2

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/Gemfile +3 -0
  4. data/lib/generators/modulorails/bundleraudit/bundleraudit_generator.rb +13 -8
  5. data/lib/generators/modulorails/docker/docker_generator.rb +58 -15
  6. data/lib/generators/modulorails/docker/templates/config/cable.yml.tt +6 -6
  7. data/lib/generators/modulorails/docker/templates/config/database.yml.tt +3 -15
  8. data/lib/generators/modulorails/docker/templates/config/initializers/0_redis.rb +2 -0
  9. data/lib/generators/modulorails/docker/templates/config/puma.rb +41 -0
  10. data/lib/generators/modulorails/docker/templates/docker-compose.yml.tt +14 -7
  11. data/lib/generators/modulorails/docker/templates/{Dockerfile.prod.tt → dockerfiles/modulotech/Dockerfile.prod.tt} +9 -7
  12. data/lib/generators/modulorails/docker/templates/{Dockerfile.tt → dockerfiles/modulotech/Dockerfile.tt} +3 -1
  13. data/lib/generators/modulorails/docker/templates/dockerfiles/rails/Dockerfile.prod.tt +87 -0
  14. data/lib/generators/modulorails/docker/templates/entrypoints/docker-entrypoint.sh.tt +13 -9
  15. data/lib/generators/modulorails/githooks/githooks_generator.rb +57 -0
  16. data/lib/generators/modulorails/githooks/templates/dockeruby.sh +112 -0
  17. data/lib/generators/modulorails/githooks/templates/post-rewrite.sh +5 -0
  18. data/lib/generators/modulorails/githooks/templates/pre-merge-commit.sh +2 -0
  19. data/lib/generators/modulorails/githooks/templates/refresh_generations.sh +25 -0
  20. data/lib/generators/modulorails/gitlabci/gitlabci_generator.rb +5 -19
  21. data/lib/generators/modulorails/gitlabci/templates/.gitlab-ci.yml.tt +15 -3
  22. data/lib/generators/modulorails/gitlabci/templates/config/deploy/production.yaml.tt +15 -0
  23. data/lib/generators/modulorails/gitlabci/templates/config/deploy/review.yaml.tt +15 -0
  24. data/lib/generators/modulorails/gitlabci/templates/config/deploy/staging.yaml.tt +15 -0
  25. data/lib/generators/modulorails/health_check/health_check_generator.rb +29 -0
  26. data/lib/generators/modulorails/{healthcheck → health_check}/templates/.modulorails-health_check +2 -0
  27. data/lib/generators/modulorails/moduloproject/moduloproject_generator.rb +42 -0
  28. data/lib/generators/modulorails/moduloproject/templates/config/environments/production.rb.tt +109 -0
  29. data/lib/generators/modulorails/rubocop/rubocop_generator.rb +1 -0
  30. data/lib/generators/modulorails/self_update/self_update_generator.rb +3 -2
  31. data/lib/generators/modulorails/service/service_generator.rb +2 -2
  32. data/lib/generators/modulorails/service/templates/service.rb.tt +4 -11
  33. data/lib/generators/modulorails/sidekiq/sidekiq_generator.rb +41 -45
  34. data/lib/modulorails/data.rb +10 -6
  35. data/lib/modulorails/generators/base.rb +79 -0
  36. data/lib/modulorails/railtie.rb +6 -0
  37. data/lib/modulorails/services/base_service.rb +22 -12
  38. data/lib/modulorails/services/logs_for_method_service.rb +5 -0
  39. data/lib/modulorails/version.rb +1 -1
  40. data/lib/modulorails.rb +23 -12
  41. data/modulorails.gemspec +9 -10
  42. metadata +37 -54
  43. data/lib/generators/modulorails/docker/templates/docker-compose.prod.yml.tt +0 -49
  44. data/lib/generators/modulorails/healthcheck/health_check_generator.rb +0 -40
  45. /data/lib/generators/modulorails/{healthcheck → health_check}/templates/config/initializers/health_check.rb.tt +0 -0
@@ -9,11 +9,11 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
9
9
  desc 'This generator adds Sidekiq to the project'
10
10
 
11
11
  def add_to_docker_compose
12
- add_to_docker_compose_yml_file(Rails.root.join('docker-compose.yml'))
13
- end
14
-
15
- def add_to_docker_compose_prod
16
- add_to_docker_compose_yml_file(Rails.root.join('docker-compose.prod.yml'))
12
+ if Rails.root.join('compose.yml').exist?
13
+ add_to_docker_compose_yml_file(Rails.root.join('compose.yml'))
14
+ elsif Rails.root.join('docker-compose.yml').exist?
15
+ add_to_docker_compose_yml_file(Rails.root.join('docker-compose.yml'))
16
+ end
17
17
  end
18
18
 
19
19
  def add_to_deploy_files
@@ -26,18 +26,16 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
26
26
  gemfile_path = Rails.root.join('Gemfile')
27
27
 
28
28
  # Add gem redis unless already present
29
- unless File.read(gemfile_path).match?(/^\s*gem ['"]redis['"]/)
30
- append_to_file(gemfile_path, "gem 'redis'\n")
31
- end
29
+ append_to_file(gemfile_path, "gem 'redis'\n") unless File.read(gemfile_path).match?(/^\s*gem ['"]redis['"]/)
32
30
 
33
31
  # Add gem sidekiq unless already present
34
- unless File.read(gemfile_path).match?(/^\s*gem ['"]sidekiq['"]/)
35
- append_to_file(gemfile_path, "gem 'sidekiq'\n")
36
- end
32
+ return if File.read(gemfile_path).match?(/^\s*gem ['"]sidekiq['"]/)
33
+
34
+ append_to_file(gemfile_path, "gem 'sidekiq'\n")
37
35
  end
38
36
 
39
37
  def add_to_config
40
- Dir.glob(Rails.root.join('config/environments/*.rb')) do |file|
38
+ Rails.root.glob('config/environments/*.rb') do |file|
41
39
  add_to_config_file(file)
42
40
  end
43
41
  end
@@ -49,23 +47,24 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
49
47
  def add_routes
50
48
  routes_path = Rails.root.join('config/routes.rb')
51
49
 
52
- unless File.read(routes_path).match?(%r{require ['"]sidekiq/web["']})
53
- inject_into_file routes_path, after: "Rails.application.routes.draw do\n" do
54
- <<-RUBY
50
+ return if File.read(routes_path).match?(%r{require ['"]sidekiq/web["']})
51
+
52
+ inject_into_file routes_path, after: "Rails.application.routes.draw do\n" do
53
+ <<-RUBY
55
54
  require 'sidekiq/web'
56
55
  mount Sidekiq::Web => '/sidekiq'
57
56
 
58
- RUBY
59
- end
57
+ RUBY
60
58
  end
61
59
  end
62
60
 
63
61
  def add_health_check
64
62
  file_path = Rails.root.join('config/initializers/health_check.rb')
65
63
 
66
- unless File.read(file_path).match?(%r{add_custom_check\s*\(?\s*['"]sidekiq-queues['"]\s*\)?})
67
- inject_into_file file_path, after: /^HealthCheck.setup do \|config\|\n$/ do
68
- <<-RUBY
64
+ return if File.read(file_path).match?(/add_custom_check\s*\(?\s*['"]sidekiq-queues['"]\s*\)?/)
65
+
66
+ inject_into_file file_path, after: /^HealthCheck.setup do \|config\|\n$/ do
67
+ <<-RUBY
69
68
 
70
69
  # Add one or more custom checks that return a blank string if ok, or an error message if there is an error
71
70
  config.add_custom_check('sidekiq-queues') do
@@ -87,14 +86,13 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
87
86
  # Less than 200 jobs to retry, ok!
88
87
  retry_jobs_count < 200 ? '' : "\#{retry_jobs_count} are waiting for retry."
89
88
  end
90
- RUBY
91
- end
89
+ RUBY
92
90
  end
93
91
  end
94
92
 
95
93
  def add_entrypoint
96
- template 'entrypoints/sidekiq-entrypoint.sh'
97
- chmod 'entrypoints/sidekiq-entrypoint.sh', 0755
94
+ template 'entrypoints/sidekiq-entrypoint.sh', 'bin/sidekiq-entrypoint'
95
+ chmod 'bin/sidekiq-entrypoint', 0o755
98
96
  end
99
97
 
100
98
  private
@@ -103,10 +101,7 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
103
101
  @image_name ||= Modulorails.data.name.parameterize
104
102
 
105
103
  # Create docker-compose.yml unless present
106
- unless File.exist?(file_path)
107
- # Modulorails::GitlabciGenerator.new([], {}, {}).invoke_all
108
- invoke(Modulorails::DockerGenerator, [])
109
- end
104
+ invoke(Modulorails::DockerGenerator, []) unless File.exist?(file_path)
110
105
 
111
106
  return if File.read(file_path).match?(/^ {2}sidekiq:$/)
112
107
 
@@ -129,7 +124,7 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
129
124
  #{@image_name.upcase}_DATABASE_HOST: database
130
125
  #{@image_name.upcase}_DATABASE_NAME: #{@image_name}
131
126
  REDIS_URL: redis://redis:6379/1
132
- entrypoint: ./entrypoints/sidekiq-entrypoint.sh
127
+ entrypoint: ./bin/sidekiq-entrypoint
133
128
  stdin_open: true
134
129
  tty: true
135
130
  YAML
@@ -156,23 +151,24 @@ class Modulorails::SidekiqGenerator < Rails::Generators::Base
156
151
 
157
152
  # Add sidekiq to deploy file
158
153
  insert_into_file file_path do
159
- <<-YAML
160
-
161
- sidekiq:
162
- enabled: true
163
- resources:
164
- requests:
165
- cpu: 100m
166
- memory: 512Mi
167
- limits:
168
- cpu: 100m
169
- memory: 512Mi
170
- autoscaling:
171
- enabled: true
172
- minReplicas: 1
173
- maxReplicas: 10
174
- targetCPUUtilizationPercentage: 80
154
+ <<~YAML
155
+
156
+ sidekiq:
157
+ enabled: true
158
+ resources:
159
+ requests:
160
+ cpu: 100m
161
+ memory: 512Mi
162
+ limits:
163
+ cpu: 100m
164
+ memory: 512Mi
165
+ autoscaling:
166
+ enabled: true
167
+ minReplicas: 1
168
+ maxReplicas: 10
169
+ targetCPUUtilizationPercentage: 80
175
170
  YAML
176
171
  end
177
172
  end
173
+
178
174
  end
@@ -125,23 +125,27 @@ module Modulorails
125
125
  loaded_specs = Gem.loaded_specs
126
126
 
127
127
  # The Rails version used by the application
128
- @rails_version = loaded_specs['rails'].version.version
128
+ @rails_version = gem_version(loaded_specs['rails'])
129
129
 
130
130
  # The bundler version used by the application (especially useful since Bundler 2 and
131
131
  # Bundler 1 are not compatible)
132
- @bundler_version = loaded_specs['bundler'].version.version
132
+ @bundler_version = gem_version(loaded_specs['bundler'])
133
133
 
134
134
  # The version of the ActiveRecord adapter
135
- @adapter_version = loaded_specs[@adapter]&.version&.version
135
+ @adapter_version = gem_version(loaded_specs[@adapter])
136
136
 
137
137
  # The version of the webpacker gem - might be nil
138
- @webpacker_version = loaded_specs['webpacker']&.version&.version
138
+ @webpacker_version = gem_version(loaded_specs['webpacker'])
139
139
 
140
140
  # The version of the importmap-rails gem - might be nil
141
- @importmap_version = loaded_specs['importmap-rails']&.version&.version
141
+ @importmap_version = gem_version(loaded_specs['importmap-rails'])
142
142
 
143
143
  # The version of the jsbundling-rails gem - might be nil
144
- @jsbundling_version = loaded_specs['jsbundling-rails']&.version&.version
144
+ @jsbundling_version = gem_version(loaded_specs['jsbundling-rails'])
145
+ end
146
+
147
+ def gem_version(spec)
148
+ spec&.version&.version
145
149
  end
146
150
 
147
151
  def initialize_from_git
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module Modulorails
6
+
7
+ module Generators
8
+
9
+ class Base < Rails::Generators::Base
10
+
11
+ def self.base_root
12
+ File.expand_path('../../generators', __dir__)
13
+ end
14
+
15
+ class_option :force, type: :boolean, default: false
16
+
17
+ def call
18
+ return if keep_file_present? && !options['force']
19
+
20
+ begin
21
+ create_config
22
+ create_keep_file
23
+ rescue StandardError => e
24
+ warn("[Modulorails][#{generator_name}] Error: #{e.message}")
25
+ warn(e.backtrace.join("\n"))
26
+ end
27
+ end
28
+
29
+ protected
30
+
31
+ def version
32
+ self.class.const_get('VERSION')
33
+ rescue NameError
34
+ 1
35
+ end
36
+
37
+ def generator_name
38
+ self.class.name.split('::').last.gsub('Generator', '').parameterize
39
+ end
40
+
41
+ def keep_file_name
42
+ ".modulorails-#{generator_name}"
43
+ end
44
+
45
+ def keep_file_present?
46
+ pathname = Rails.root.join(keep_file_name)
47
+
48
+ res = pathname.exist?
49
+ return res if version < 2
50
+
51
+ res && pathname.readlines(keep_file_name).first
52
+ .match(/version: (\d+)/i)&.send(:[], 1).to_i >= version
53
+ end
54
+
55
+ def create_keep_file
56
+ file = keep_file_name
57
+
58
+ remove_file(file)
59
+
60
+ content = <<~TEXT
61
+ Version: #{version}
62
+
63
+ If you want to reset your configuration, you can run `rails g modulorails:#{generator_name} --force`.
64
+ TEXT
65
+ create_file(file, content)
66
+
67
+ say "Add #{file} to git"
68
+ git add: file
69
+ end
70
+
71
+ def create_config
72
+ raise NotImplementedError
73
+ end
74
+
75
+ end
76
+
77
+ end
78
+
79
+ end
@@ -43,12 +43,18 @@ module Modulorails
43
43
  # Effectively send the data to the intranet
44
44
  Modulorails.send_data
45
45
 
46
+ # Generate a template for Docker configuration
47
+ Modulorails.generate_docker_template
48
+
46
49
  # Generate a template for CI/CD
47
50
  Modulorails.generate_ci_template
48
51
 
49
52
  # Add/update Rubocop config
50
53
  Modulorails.generate_rubocop_template
51
54
 
55
+ # Add git hooks
56
+ Modulorails.generate_git_hooks_template
57
+
52
58
  # Add/update Bundler-audit config
53
59
  Modulorails.generate_bundleraudit_template
54
60
 
@@ -4,7 +4,7 @@
4
4
  class Modulorails::BaseService
5
5
 
6
6
  # Allow to instantiate the service and call the service in one go.
7
- if Modulorails::COMPARABLE_RUBY_VERSION < Gem::Version.new('3.0')
7
+ if Gem::Version.new('3.0') > Modulorails::COMPARABLE_RUBY_VERSION
8
8
  def self.call(*args, &block)
9
9
  new(*args, &block).call
10
10
  end
@@ -45,18 +45,22 @@ class Modulorails::BaseService
45
45
  # @param method [#to_s] The method calling `#log`
46
46
  # @param message [Hash,#to_s] The message to log; Hash will be logged after a #to_json call
47
47
  def log(method, message)
48
+ ActiveSupport::Deprecation.warn(<<~MESSAGE)
49
+ Modulorails::BaseService#log is deprecated and will be removed with version 2.0.
50
+ Use Rails.logger.debug directly with objects instead.
51
+ MESSAGE
52
+
48
53
  Modulorails::LogsForMethodService.call(method: method, message: message, tags: [self])
49
54
  end
50
55
 
56
+ # @param data [Object] The data to pass to the block
51
57
  # @yield Wrap the given block in an ActiveRecord transaction.
52
58
  # @yieldreturn [Object] Will be available as data of the `SuccessData` returned by the method
53
59
  # @return [SuccessData] If the transaction was not rollbacked; give access to the block's return.
54
60
  # @return [ErrorData] If the transaction was rollbacked; give access to the rollbacking exception.
55
- def with_transaction
56
- data = nil
57
-
58
- ActiveRecord::Base.transaction do
59
- data = yield
61
+ def with_transaction(data: nil)
62
+ data = ActiveRecord::Base.transaction do
63
+ yield(data)
60
64
  end
61
65
 
62
66
  ::Modulorails::SuccessData.new(data)
@@ -65,22 +69,28 @@ class Modulorails::BaseService
65
69
  ::Modulorails::ErrorData.new(e.message, exception: e)
66
70
  rescue StandardError => e
67
71
  # Unknown error, log the error
68
- Rails.logger.error("#{self}: #{e.message}")
69
- Rails.logger.error("Local variables: #{local_variables.map! { |v|
70
- { v => binding.local_variable_get(v) }
71
- } }")
72
- Rails.logger.error(e.backtrace&.join("\n"))
72
+ log_exception(e, caller: self, method: __method__)
73
73
 
74
74
  # Return the error
75
75
  ::Modulorails::ErrorData.new(e.message, exception: e)
76
76
  end
77
77
 
78
+ def log_exception(exception, user: nil, caller: self, method: __method__)
79
+ message = {
80
+ controller: caller.class.name, action: method,
81
+ error: { kind: exception.class.name, message: exception.message, stack: exception.backtrace },
82
+ time: Time.zone.now.iso8601, user: user
83
+ }
84
+
85
+ Rails.logger.error(message.to_json)
86
+ end
87
+
78
88
  # Cast the date/datetime parameters to time with zones.
79
89
  # @param from [String,ActiveSupport::TimeWithZone] the minimum date
80
90
  # @param to [String,ActiveSupport::TimeWithZone] the maximum date
81
91
  # @return [[ActiveSupport::TimeWithZone, ActiveSupport::TimeWithZone]] The given dates casted.
82
92
  def params_to_time(from, to=nil)
83
- from = from.is_a?(String) && from.present? ? from.to_time_with_zone : from
93
+ from = from.to_time_with_zone if from.is_a?(String) && from.present?
84
94
  to = if to.is_a?(String) && to.present?
85
95
  to = to.to_time_with_zone
86
96
 
@@ -14,6 +14,11 @@ class Modulorails::LogsForMethodService < Modulorails::BaseService
14
14
 
15
15
  # Write a formatted debug log using given initialization parameters
16
16
  def call
17
+ ActiveSupport::Deprecation.warn(<<~MESSAGE)
18
+ Modulorails::LogsForMethodService is deprecated and will be removed with version 2.0.
19
+ Use Rails.logger.debug directly with objects instead.
20
+ MESSAGE
21
+
17
22
  # Map the tags (either objects responding to #to_tag or strings) to prefix the log body
18
23
  tag_strings = @tags.map do |tag|
19
24
  tag.respond_to?(:to_tag) ? "[#{tag.to_tag}]" : "[#{tag}]"
@@ -1,6 +1,6 @@
1
1
  module Modulorails
2
2
 
3
- VERSION = '1.4.0.1'.freeze
3
+ VERSION = '1.5.0.pre2'.freeze
4
4
 
5
5
  # Useful to compare the current Ruby version
6
6
  COMPARABLE_RUBY_VERSION = Gem::Version.new(RUBY_VERSION)
data/lib/modulorails.rb CHANGED
@@ -2,11 +2,13 @@ require 'modulorails/version'
2
2
  require 'modulorails/configuration'
3
3
  require 'modulorails/data'
4
4
  require 'modulorails/railtie' if defined?(Rails::Railtie)
5
+ require 'generators/modulorails/docker/docker_generator'
5
6
  require 'generators/modulorails/gitlabci/gitlabci_generator'
6
- require 'generators/modulorails/healthcheck/health_check_generator'
7
+ require 'generators/modulorails/health_check/health_check_generator'
7
8
  require 'generators/modulorails/self_update/self_update_generator'
8
9
  require 'generators/modulorails/rubocop/rubocop_generator'
9
10
  require 'generators/modulorails/bundleraudit/bundleraudit_generator'
11
+ require 'generators/modulorails/githooks/githooks_generator'
10
12
  require 'httparty'
11
13
  require 'modulorails/error_data'
12
14
  require 'modulorails/success_data'
@@ -75,9 +77,7 @@ module Modulorails
75
77
  # If no endpoint and/or no API key is configured, it is impossible to send the data to the
76
78
  # intranet and thus we raise an error: it is the only error we want to raise since it goes
77
79
  # against one of the main goals of the gem and the gem's user is responsible.
78
- unless configuration.endpoint && configuration.api_key
79
- raise Error.new('No endpoint or api key')
80
- end
80
+ raise Error.new('No endpoint or api key') unless configuration.endpoint && configuration.api_key
81
81
 
82
82
  # Define the headers of the request ; sending JSON and API key to authenticate the gem on
83
83
  # the intranet
@@ -97,25 +97,31 @@ module Modulorails
97
97
  # went wrong with an `errors` field. We do not want to raise since the gem's user is not
98
98
  # (necessarily) responsible for the error but we still need to display it somewhere to warn
99
99
  # the user something went wrong.
100
- puts("[Modulorails] Error: #{response['errors'].join(', ')}") if response.code == 400
100
+ Rails.logger.debug { "[Modulorails] Error: #{response['errors'].join(', ')}" } if response.code == 400
101
101
 
102
102
  # Return the response to allow users to do some more
103
103
  response
104
104
  rescue StandardError => e
105
105
  # Still need to notify the user
106
- puts("[Modulorails] Error: Could not post to #{configuration.endpoint}")
107
- puts e.message
106
+ Rails.logger.debug { "[Modulorails] Error: Could not post to #{configuration.endpoint}" }
107
+ Rails.logger.debug e.message
108
108
  nil
109
109
  end
110
110
  end
111
111
 
112
+ # @author Matthieu 'ciappa_m' Ciappara
113
+ #
114
+ # Generate a Docker config template unless it was already done.
115
+ # The check is done using a 'keepfile'.
116
+ def generate_docker_template
117
+ Modulorails::DockerGenerator.new([], {}, {}).invoke_all
118
+ end
119
+
112
120
  # @author Matthieu 'ciappa_m' Ciappara
113
121
  #
114
122
  # Generate a CI/CD template unless it was already done.
115
123
  # The check is done using a 'keepfile'.
116
124
  def generate_ci_template
117
- return if File.exist?(Rails.root.join('.modulorails-gitlab-ci'))
118
-
119
125
  Modulorails::GitlabciGenerator.new([], {}, {}).invoke_all
120
126
  end
121
127
 
@@ -128,7 +134,7 @@ module Modulorails
128
134
 
129
135
  Modulorails::SelfUpdateGenerator.new([], {}, {}).invoke_all
130
136
  rescue StandardError => e
131
- puts("[Modulorails] An error occured: #{e.class} - #{e.message}")
137
+ Rails.logger.debug { "[Modulorails] An error occured: #{e.class} - #{e.message}" }
132
138
  end
133
139
 
134
140
  # @author Matthieu 'ciappa_m' Ciappara
@@ -136,8 +142,6 @@ module Modulorails
136
142
  # Generate a health_check configuration unless it was already done.
137
143
  # The check is done using a 'keepfile'.
138
144
  def generate_healthcheck_template
139
- return if File.exist?(Rails.root.join('.modulorails-health_check'))
140
-
141
145
  Modulorails::HealthCheckGenerator.new([], {}, {}).invoke_all
142
146
  end
143
147
 
@@ -155,6 +159,13 @@ module Modulorails
155
159
  Modulorails::BundlerauditGenerator.new([], {}, {}).invoke_all
156
160
  end
157
161
 
162
+ # @author Matthieu 'ciappa_m' Ciappara
163
+ #
164
+ # Generate git hooks.
165
+ def generate_git_hooks_template
166
+ Modulorails::GithooksGenerator.new([], {}, {}).invoke_all
167
+ end
168
+
158
169
  end
159
170
 
160
171
  end
data/modulorails.gemspec CHANGED
@@ -29,15 +29,14 @@ Gem::Specification.new do |spec|
29
29
  end
30
30
  spec.require_paths = ['lib']
31
31
 
32
- spec.add_runtime_dependency 'git', '~> 1.7', '>= 1.7.0'
33
- spec.add_runtime_dependency 'health_check', '~> 3.1'
34
- spec.add_runtime_dependency 'httparty', '>= 0.13.3'
35
- spec.add_runtime_dependency 'i18n', '>= 0.9.5'
36
- spec.add_runtime_dependency 'railties', '>= 4.2.0'
37
- spec.add_runtime_dependency 'rubocop', '>= 1.28.2'
38
- spec.add_runtime_dependency 'rubocop-rails', '>= 2.14.2'
39
- spec.add_runtime_dependency 'bundler-audit', '~> 0.9.1'
32
+ spec.add_dependency 'bundler-audit', '~> 0.9.1'
33
+ spec.add_dependency 'git', '~> 1.7', '>= 1.7.0'
34
+ spec.add_dependency 'health_check', '~> 3.1'
35
+ spec.add_dependency 'httparty', '>= 0.13.3'
36
+ spec.add_dependency 'i18n', '>= 0.9.5'
37
+ spec.add_dependency 'railties', '>= 4.2.0'
38
+ spec.add_dependency 'rubocop', '>= 1.28.2'
39
+ spec.add_dependency 'rubocop-rails', '>= 2.14.2'
40
40
 
41
- spec.add_development_dependency 'activerecord', '>= 4.2.0'
42
- spec.add_development_dependency 'appraisal'
41
+ spec.metadata['rubygems_mfa_required'] = 'true'
43
42
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modulorails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.1
4
+ version: 1.5.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu Ciappara
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-11 00:00:00.000000000 Z
11
+ date: 2024-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler-audit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.9.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.1
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: git
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,48 +128,6 @@ dependencies:
114
128
  - - ">="
115
129
  - !ruby/object:Gem::Version
116
130
  version: 2.14.2
117
- - !ruby/object:Gem::Dependency
118
- name: bundler-audit
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: 0.9.1
124
- type: :runtime
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: 0.9.1
131
- - !ruby/object:Gem::Dependency
132
- name: activerecord
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: 4.2.0
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: 4.2.0
145
- - !ruby/object:Gem::Dependency
146
- name: appraisal
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
131
  description: |
160
132
  Modulorails is the common base for the Ruby on Rails project at Modulotech
161
133
  (https://www.modulotech.fr/).
@@ -200,23 +172,32 @@ files:
200
172
  - gemfiles/rails_70.gemfile
201
173
  - lib/generators/modulorails/bundleraudit/bundleraudit_generator.rb
202
174
  - lib/generators/modulorails/docker/docker_generator.rb
203
- - lib/generators/modulorails/docker/templates/Dockerfile.prod.tt
204
- - lib/generators/modulorails/docker/templates/Dockerfile.tt
205
175
  - lib/generators/modulorails/docker/templates/config/cable.yml.tt
206
176
  - lib/generators/modulorails/docker/templates/config/database.yml.tt
207
- - lib/generators/modulorails/docker/templates/docker-compose.prod.yml.tt
177
+ - lib/generators/modulorails/docker/templates/config/initializers/0_redis.rb
178
+ - lib/generators/modulorails/docker/templates/config/puma.rb
208
179
  - lib/generators/modulorails/docker/templates/docker-compose.yml.tt
180
+ - lib/generators/modulorails/docker/templates/dockerfiles/modulotech/Dockerfile.prod.tt
181
+ - lib/generators/modulorails/docker/templates/dockerfiles/modulotech/Dockerfile.tt
182
+ - lib/generators/modulorails/docker/templates/dockerfiles/rails/Dockerfile.prod.tt
209
183
  - lib/generators/modulorails/docker/templates/entrypoints/docker-entrypoint.sh.tt
210
184
  - lib/generators/modulorails/docker/templates/entrypoints/webpack-entrypoint.sh.tt
185
+ - lib/generators/modulorails/githooks/githooks_generator.rb
186
+ - lib/generators/modulorails/githooks/templates/dockeruby.sh
187
+ - lib/generators/modulorails/githooks/templates/post-rewrite.sh
188
+ - lib/generators/modulorails/githooks/templates/pre-merge-commit.sh
189
+ - lib/generators/modulorails/githooks/templates/refresh_generations.sh
211
190
  - lib/generators/modulorails/gitlabci/gitlabci_generator.rb
212
191
  - lib/generators/modulorails/gitlabci/templates/.gitlab-ci.yml.tt
213
192
  - lib/generators/modulorails/gitlabci/templates/.modulorails-gitlab-ci
214
193
  - lib/generators/modulorails/gitlabci/templates/config/deploy/production.yaml.tt
215
194
  - lib/generators/modulorails/gitlabci/templates/config/deploy/review.yaml.tt
216
195
  - lib/generators/modulorails/gitlabci/templates/config/deploy/staging.yaml.tt
217
- - lib/generators/modulorails/healthcheck/health_check_generator.rb
218
- - lib/generators/modulorails/healthcheck/templates/.modulorails-health_check
219
- - lib/generators/modulorails/healthcheck/templates/config/initializers/health_check.rb.tt
196
+ - lib/generators/modulorails/health_check/health_check_generator.rb
197
+ - lib/generators/modulorails/health_check/templates/.modulorails-health_check
198
+ - lib/generators/modulorails/health_check/templates/config/initializers/health_check.rb.tt
199
+ - lib/generators/modulorails/moduloproject/moduloproject_generator.rb
200
+ - lib/generators/modulorails/moduloproject/templates/config/environments/production.rb.tt
220
201
  - lib/generators/modulorails/rubocop/rubocop_generator.rb
221
202
  - lib/generators/modulorails/rubocop/templates/rubocop.yml.tt
222
203
  - lib/generators/modulorails/self_update/self_update_generator.rb
@@ -234,6 +215,7 @@ files:
234
215
  - lib/modulorails/errors/errors.rb
235
216
  - lib/modulorails/errors/invalid_format_error.rb
236
217
  - lib/modulorails/errors/invalid_value_error.rb
218
+ - lib/modulorails/generators/base.rb
237
219
  - lib/modulorails/railtie.rb
238
220
  - lib/modulorails/services/base_service.rb
239
221
  - lib/modulorails/services/logs_for_method_service.rb
@@ -248,7 +230,8 @@ metadata:
248
230
  homepage_uri: https://github.com/moduloTech/modulorails
249
231
  source_code_uri: https://github.com/moduloTech/modulorails
250
232
  changelog_uri: https://github.com/moduloTech/modulorails/blob/master/CHANGELOG.md
251
- post_install_message:
233
+ rubygems_mfa_required: 'true'
234
+ post_install_message:
252
235
  rdoc_options: []
253
236
  require_paths:
254
237
  - lib
@@ -263,8 +246,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
246
  - !ruby/object:Gem::Version
264
247
  version: '0'
265
248
  requirements: []
266
- rubygems_version: 3.3.7
267
- signing_key:
249
+ rubygems_version: 3.5.3
250
+ signing_key:
268
251
  specification_version: 4
269
252
  summary: Common base for Ruby on Rails projects at Modulotech
270
253
  test_files: []