trains 0.0.16 → 0.0.17

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: 4ec81a397d70c4affd856766de4b471fb2f6dbe40a545a089075b3f1e8361c43
4
- data.tar.gz: e59cb748ec77bddab7fd5ea61f216050485d773c618e568bff37f4b3eab68d16
3
+ metadata.gz: d9b0cdd1bee0a6ed5d222184662bb45dced14a141f00c166633ee177c3f83501
4
+ data.tar.gz: 75132b13c33a5cc68005cdbc6d525dfda2b3d97aad8144cbb923f759c299bd1e
5
5
  SHA512:
6
- metadata.gz: b194c73de6398aa702a487e4c5aaf182bbb3075a7580dcd15bbee2ec67e37a3743dd7abc08aeb8fd5c78612d2e220812c0c75df1d01db78d1954565152aa60b3
7
- data.tar.gz: f0b4abdd5ef3824e9e46000e53914d093240d4e919d551608a7e256860f5c0dd0cf5036f503560674de5928a46427355f526b61a80576d145fe2228a9fa242cd
6
+ metadata.gz: 754df75dcf500b11b1d45df65c5bfde168be9dc160912cbd4a2dc0da37f9be9a380158a078b5aafa457bf73315e10f96d47fc50d6d2b849f29c2dc0c59196aee
7
+ data.tar.gz: 4e8d8dbaad75395f686d5547cb633d162730858f8cc9fccb48fa4e84756ee942affdc2ec0aceaec5e755e523661bbfa944acdc6578344606630add7cbf68c767
@@ -46,9 +46,12 @@ module Trains
46
46
 
47
47
  # Stitch together migrations to create models
48
48
  def generate_models
49
+ # Parse models from schema.rb (used when brownfield project)
50
+ schema_models = parse_schema
51
+
49
52
  migrations = get_migrations.flatten.reject(&:nil?)
50
53
  migrations = [*migrations, *parse_models.flatten.reject(&:nil?)]
51
- Utils::MigrationTailor.stitch(migrations)
54
+ Utils::MigrationTailor.stitch(schema_models, migrations)
52
55
  end
53
56
 
54
57
  def get_routes
@@ -1,18 +1,19 @@
1
1
  module Trains
2
2
  module Utils
3
3
  module MigrationTailor
4
- def self.stitch(migrations)
5
- models = {}
6
-
4
+ def self.stitch(models = {}, migrations)
7
5
  migrations.each do |mig|
8
6
  case mig.modifier
9
7
  when :create_table, :create_join_table
10
- models[mig.table_name] = {}
11
- models[mig.table_name] = Trains::DTO::Model.new(
12
- name: mig.table_name,
13
- fields: mig.fields,
14
- version: mig.version
15
- )
8
+ if models.key?(mig.table_name)
9
+ models[mig.table_name].fields.push(*mig.fields)
10
+ else
11
+ models[mig.table_name] = Trains::DTO::Model.new(
12
+ name: mig.table_name,
13
+ fields: mig.fields,
14
+ version: mig.version
15
+ )
16
+ end
16
17
  when :add_column, :add_column_with_default, :add_reference
17
18
  models[mig.table_name].fields.push(*mig.fields)
18
19
  when :remove_column
@@ -1,3 +1,3 @@
1
1
  module Trains
2
- VERSION = '0.0.16'.freeze
2
+ VERSION = '0.0.17'.freeze
3
3
  end
@@ -9,9 +9,9 @@ module Trains
9
9
  PATTERN
10
10
 
11
11
  def_node_matcher :unversioned_schema?, <<~PATTERN
12
- (block
13
- (send (const (const nil? :ActiveRecord) :Schema) :define ...)
14
- ...)
12
+ (block
13
+ (send (const (const nil? :ActiveRecord) :Schema) :define ...)
14
+ ...)
15
15
  PATTERN
16
16
 
17
17
  def initialize
@@ -64,7 +64,7 @@ module Trains
64
64
  next if child.method?(:index)
65
65
 
66
66
  DTO::Field.new(
67
- name: child.first_argument.str_content,
67
+ name: child.first_argument.str_content.to_sym,
68
68
  type: child.method_name
69
69
  )
70
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trains
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Syed Faraaz Ahmad