trains 0.0.18 → 0.0.19

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: 7a1893b50977fd1adda92c2268df81b65f47fa4218961835c11c5534274774db
4
- data.tar.gz: aa0c28905214fa2d776d144e3e58bfa952ad154b91a4f007e0f9d506e6fe723d
3
+ metadata.gz: 93ee7909ca18c2d768daa77d9bfce0096ac1f1965fc3590d6d3cd4fd281698cd
4
+ data.tar.gz: 6e935fff8f51fdda8e95d49f3520aff2d0ce3d71a67e4267a385c1d915e0cd5f
5
5
  SHA512:
6
- metadata.gz: 87bf0d7266a6347d452434b83f19f3798ed68f97b0be036baed26390442894ccf725a0e54bb233cbb25523b9864e9bbc3d246bae5341c489121e1ef80b7195b4
7
- data.tar.gz: 377afeb54297eca4feb98a5c482a348250319f7d61b84650fb33910c91faa86d1c9eade41c34b82cf217c9833ebc5e238af7cc04c86c53255e29480fa4e0d605
6
+ metadata.gz: 77468c5ea8f22d4eba7daae1b188a1535a6de55cf21d4fc210cbaf8637e6afb587c21ed9a274eba27d35f674849863e125f413dcdbcc4927405ed39056ea7590
7
+ data.tar.gz: 20db296bfda78eee13f8affb92c1c4635ec5dd0bc35e24015e6e4b28de64faaef0277ce34cad88e3dde4c9e76eb9513ad3198a22571f1e3a1212c9b163f28c93
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Trains
2
4
  module Utils
5
+ # Combine multiple migrations into models
3
6
  module MigrationTailor
4
7
  def self.stitch(models = {}, migrations)
5
8
  migrations.each do |mig|
@@ -22,8 +25,46 @@ module Trains
22
25
  field.name == mig.fields.first.name
23
26
  end
24
27
  models[mig.table_name].fields.delete(column)
28
+ when :rename_column
29
+ column =
30
+ models[mig.table_name].fields.find do |field|
31
+ field.name == mig.fields.first.name
32
+ end
33
+ models[mig.table_name].fields.push(
34
+ Trains::DTO::Field.new(
35
+ name: mig.fields.first.type.to_sym,
36
+ type: column.type
37
+ )
38
+ )
39
+ models[mig.table_name].fields.delete(column)
25
40
  when :change_table
26
- # TODO: handle renaming columns
41
+ mig.fields.each do |field|
42
+ case field.type
43
+ when :remove
44
+ column =
45
+ models[mig.table_name].fields.find do |mod_field|
46
+ mod_field.name == field.name
47
+ end
48
+ models[mig.table_name].fields.delete(column)
49
+ when :rename
50
+ # find the field and store temporarily
51
+ column =
52
+ models[mig.table_name].fields.find do |mod_field|
53
+ mod_field.name == field.name[0]
54
+ end
55
+ # Create new field from temp with new name
56
+ models[mig.table_name].fields.push(
57
+ Trains::DTO::Field.new(
58
+ name: field.name[1],
59
+ type: column.type
60
+ )
61
+ )
62
+ # Delete the field
63
+ models[mig.table_name].fields.delete(column)
64
+ else
65
+ models[mig.table_name].fields.push(field)
66
+ end
67
+ end
27
68
  when :change_column
28
69
  # get column
29
70
  column =
@@ -34,6 +75,8 @@ module Trains
34
75
  models[mig.table_name].fields.delete(column)
35
76
 
36
77
  models[mig.table_name].fields << mig.fields.first
78
+ else
79
+ next
37
80
  end
38
81
 
39
82
  rescue NoMethodError
@@ -1,3 +1,3 @@
1
1
  module Trains
2
- VERSION = '0.0.18'.freeze
2
+ VERSION = '0.0.19'.freeze
3
3
  end
@@ -22,6 +22,7 @@ module Trains
22
22
  add_column_with_default
23
23
  change_column
24
24
  add_reference
25
+ rename_column
25
26
  remove_column
26
27
  ].freeze
27
28
 
@@ -181,7 +182,11 @@ module Trains
181
182
  # t.references
182
183
  type = :bigint
183
184
  value = "#{node.children[2].value}_id".to_sym
184
- fields << DTO::Field.new(value.to_sym, type)
185
+ fields << DTO::Field.new(value, type)
186
+ when :rename
187
+ type = :rename
188
+ value = node.children[2..3].map { |field| field.value.to_sym }
189
+ fields << DTO::Field.new(value, type)
185
190
  when :index
186
191
  else
187
192
  # t.string, t.integer etc.
@@ -35,7 +35,7 @@ module Trains
35
35
  @result << DTO::Migration.new(
36
36
  @model_class,
37
37
  :add_column,
38
- [DTO::Field.new(node.arguments.first.value, :bigint)],
38
+ [DTO::Field.new(node.arguments.first.value.to_sym, :bigint)],
39
39
  nil
40
40
  )
41
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trains
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.18
4
+ version: 0.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Syed Faraaz Ahmad
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-31 00:00:00.000000000 Z
11
+ date: 2023-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport