dockerfile-rails 1.5.0 → 1.5.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4478af556f6059702ab4b1fce65ab4735a024299796bdebce3014730f3d86220
4
- data.tar.gz: 941e1e7a2fd88238d3ee9dd7fe16ffb2e290e10568fd1ca2ed3e0001d5aceed8
3
+ metadata.gz: 1aca228134c031de432e9c059c2451da36827f11334c25498506e1dc1a5f7819
4
+ data.tar.gz: b661bfc9e1d9a3aafa0a10181a33927616e06162bb4ea24f960d33ff5598337c
5
5
  SHA512:
6
- metadata.gz: ed8adae939c867d565049530df18915c49f0cbd775cc9b909733960ea8b3075b9185132eaf1454e501f7ea211a3f903dca44ce394f20fe356168154d8c2165dd
7
- data.tar.gz: a289a97a457eedd708e9449172b5191685d5f120de3b04df18d6e35950131f681972bf009953967120e32d949b4aede461ac0fb675e14fff8858ccf38de7d522
6
+ metadata.gz: b432aedcdafad7b3aea076ad4501252aa2dc51f3cd980be1e6d4761d43b57773ec76ebc862d4f9cdd8526f1d5e3cf77c5f24b48d615fe558e0055b54aabd0803
7
+ data.tar.gz: c20b0900280252cef4eab686b3f0b2718e99e46779504174fd4898d86ec68868607acc1cc5179d5c815334c2d911e0bd587169dfe6ca023af40e2caa743f66fc
@@ -44,7 +44,7 @@ module DockerfileRails
44
44
  @sqlite3 = true
45
45
  elsif database == "postgresql"
46
46
  @postgresql = true
47
- elsif (database == "mysql") || (database == "mysql2")
47
+ elsif (database == "mysql") || (database == "mysql2") || (database == "trilogy")
48
48
  @mysql = true
49
49
  elsif database == "sqlserver"
50
50
  @sqlserver = true
@@ -52,7 +52,7 @@ module DockerfileRails
52
52
 
53
53
  @sqlite3 = true if @gemfile.include? "sqlite3"
54
54
  @postgresql = true if @gemfile.include? "pg"
55
- @mysql = true if @gemfile.include? "mysql2"
55
+ @mysql = true if @gemfile.include?("mysql2") || using_trilogy?
56
56
 
57
57
  ### node modules ###
58
58
 
@@ -81,5 +81,9 @@ module DockerfileRails
81
81
 
82
82
  @redis = @redis_cable || @redis_cache
83
83
  end
84
+
85
+ def using_trilogy?
86
+ @gemfile.include?("trilogy") || @gemfile.include?("activerecord-trilogy-adapter")
87
+ end
84
88
  end
85
89
  end
@@ -38,7 +38,7 @@ class DockerfileGenerator < Rails::Generators::Base
38
38
  "variant" => "slim",
39
39
  "windows" => false,
40
40
  "yjit" => false,
41
- }.then { |hash| Struct.new(*hash.keys.map(&:to_sym)).new(*hash.values) }
41
+ }.yield_self { |hash| Struct.new(*hash.keys.map(&:to_sym)).new(*hash.values) }
42
42
 
43
43
  OPTION_DEFAULTS = BASE_DEFAULTS.dup
44
44
 
@@ -282,14 +282,12 @@ class DockerfileGenerator < Rails::Generators::Base
282
282
  fly_attach_consul
283
283
  end
284
284
 
285
- if fly_processes # therefore File.exist?('fly.toml')
285
+ if File.exist?("fly.toml") && (fly_processes || !options.prepare)
286
286
  if File.stat("fly.toml").size > 0
287
287
  template "fly.toml.erb", "fly.toml"
288
288
  else
289
- toml = fly_make_processes(fly_processes)
290
- if toml != IO.read("fly.toml")
291
- File.write "fly.toml", toml
292
- end
289
+ toml = fly_make_toml
290
+ File.write "fly.toml", toml if toml != ""
293
291
  end
294
292
  end
295
293
 
@@ -321,7 +319,7 @@ private
321
319
  scope = (Class.new do
322
320
  def initialize(obj, locals)
323
321
  @_obj = obj
324
- @_locals = locals.then do |hash|
322
+ @_locals = locals.yield_self do |hash|
325
323
  return nil if hash.empty?
326
324
  Struct.new(*hash.keys.map(&:to_sym)).new(*hash.values)
327
325
  end
@@ -400,6 +398,14 @@ private
400
398
  using_node? && options.parallel
401
399
  end
402
400
 
401
+ def has_mysql_gem?
402
+ @gemfile.include? "mysql2" or using_trilogy?
403
+ end
404
+
405
+ def using_trilogy?
406
+ @gemfile.include?("trilogy") || @gemfile.include?("activerecord-trilogy-adapter")
407
+ end
408
+
403
409
  def keeps?
404
410
  return @keeps if @keeps != nil
405
411
  @keeps = !!Dir["**/.keep"]
@@ -419,7 +425,7 @@ private
419
425
  end
420
426
 
421
427
  if options.mysql? || @mysql
422
- system "bundle add mysql2 --skip-install" unless @gemfile.include? "mysql2"
428
+ system "bundle add mysql2 --skip-install" unless has_mysql_gem?
423
429
  end
424
430
 
425
431
  if options.redis? || using_redis?
@@ -511,7 +517,10 @@ private
511
517
  # add databases: sqlite3, postgres, mysql
512
518
  packages << "pkg-config" if options.sqlite3? || @sqlite3
513
519
  packages << "libpq-dev" if options.postgresql? || @postgresql
514
- packages << "default-libmysqlclient-dev" if options.mysql? || @mysql
520
+
521
+ if (options.mysql? || @mysql) && !using_trilogy?
522
+ packages << "default-libmysqlclient-dev"
523
+ end
515
524
 
516
525
  # add git if needed to install gems
517
526
  packages << "git" if @git
@@ -857,7 +866,7 @@ private
857
866
  # use presence of "pg" or "mysql2" in the bundle as evidence of intent.
858
867
  if options.postgresql? || @postgresql || @gemfile.include?("pg")
859
868
  "postgresql"
860
- elsif options.mysql? || @mysql || @gemfile.include?("mysql2")
869
+ elsif options.mysql? || @mysql || has_mysql_gem?
861
870
  "mysql"
862
871
  else
863
872
  "sqlite3"
@@ -1042,19 +1051,31 @@ private
1042
1051
  system "#{flyctl} consul attach"
1043
1052
  end
1044
1053
 
1045
- def fly_make_processes(list)
1054
+ def fly_make_toml
1046
1055
  toml = File.read("fly.toml")
1047
1056
 
1048
- if toml.include? "[processes]"
1049
- toml.sub!(/\[processes\].*?(\n\n|\n?\z)/m, "[processes]\n" +
1050
- list.map { |name, cmd| " #{name} = #{cmd.inspect}" }.join("\n") + '\1')
1051
- else
1052
- toml += "\n[processes]\n" +
1053
- list.map { |name, cmd| " #{name} = #{cmd.inspect}\n" }.join
1057
+ list = fly_processes
1058
+ if list
1059
+ if toml.include? "[processes]"
1060
+ toml.sub!(/\[processes\].*?(\n\n|\n?\z)/m, "[processes]\n" +
1061
+ list.map { |name, cmd| " #{name} = #{cmd.inspect}" }.join("\n") + '\1')
1062
+ else
1063
+ toml += "\n[processes]\n" +
1064
+ list.map { |name, cmd| " #{name} = #{cmd.inspect}\n" }.join
1054
1065
 
1055
- app = list.has_key?("app") ? "app" : list.keys.first
1066
+ app = list.has_key?("app") ? "app" : list.keys.first
1056
1067
 
1057
- toml.sub! "[http_service]\n", "\\0 processes = [#{app.inspect}]\n"
1068
+ toml.sub! "[http_service]\n", "\\0 processes = [#{app.inspect}]\n"
1069
+ end
1070
+ end
1071
+
1072
+ if options.prepare == false
1073
+ deploy = "[deploy]\n release_command = #{dbprep_command.inspect}\n\n"
1074
+ if toml.include? "[deploy]"
1075
+ toml.sub!(/\[deploy\].*?(\n\n|\n?\z)/m, deploy)
1076
+ else
1077
+ toml += deploy
1078
+ end
1058
1079
  end
1059
1080
 
1060
1081
  toml
@@ -20,7 +20,7 @@ RUN curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz
20
20
  <% if yarn_version < '2' -%>
21
21
  <% if node_version -%> <% else %>RUN<% end %> npm install -g yarn@$YARN_VERSION<% if node_version -%> && \<% end %>
22
22
  <% else -%>
23
- <% if (node_version.split('.').map(&:to_i) <=> [16,10,0]) < 0 -%>
23
+ <% if node_version && (node_version.split('.').map(&:to_i) <=> [16,10,0]) < 0 -%>
24
24
  npm i -g corepack && \
25
25
  <% else -%>
26
26
  corepack enable && \
@@ -21,8 +21,12 @@ services:
21
21
  <% if deploy_database == 'postgresql' -%>
22
22
  - DATABASE_URL=postgres://root:password@postgres-db/
23
23
  <% elsif deploy_database == 'mysql' -%>
24
+ <% if using_trilogy? -%>
25
+ - DATABASE_URL=trilogy://root:password@mysql-db/
26
+ <% else -%>
24
27
  - DATABASE_URL=mysql2://root:password@mysql-db/
25
28
  <% end -%>
29
+ <% end -%>
26
30
  <% if deploy_database == 'sqlite3' -%>
27
31
  volumes:
28
32
  - ./db:/rails/db
@@ -89,7 +93,11 @@ services:
89
93
  <% if deploy_database == 'postgresql' -%>
90
94
  - DATABASE_URL=postgres://root:password@postgres-db/
91
95
  <% elsif deploy_database == 'mysql' -%>
96
+ <% if using_trilogy? -%>
97
+ - DATABASE_URL=trilogy://root:password@mysql-db/
98
+ <% else -%>
92
99
  - DATABASE_URL=mysql2://root:password@mysql-db/
100
+ <% end -%>
93
101
  <% end -%>
94
102
  depends_on:
95
103
  redis-db:
@@ -1 +1 @@
1
- <%= fly_make_processes(fly_processes) -%>
1
+ <%= fly_make_toml -%>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerfile-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-22 00:00:00.000000000 Z
11
+ date: 2023-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -65,7 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 2.6.0
69
69
  required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - ">="