trains 0.0.15 → 0.0.17

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: 793494738c9807ca77e8f6fa6760d73e65a09928b9ea35be00d19ac95c5fbd74
4
- data.tar.gz: 98c93cd01f794a2e64bc00eeffc93d23c57f65226d95cfa74785d0fcfface8a3
3
+ metadata.gz: d9b0cdd1bee0a6ed5d222184662bb45dced14a141f00c166633ee177c3f83501
4
+ data.tar.gz: 75132b13c33a5cc68005cdbc6d525dfda2b3d97aad8144cbb923f759c299bd1e
5
5
  SHA512:
6
- metadata.gz: 8e2367c104b13db5218354dbf84fb52af8a386dfd40a40469b2e8ad41bf85a4ffdb1b3d147da60171c102472024d10202b7fb4650499ec6ef2b0149124f3dc7f
7
- data.tar.gz: a95c4312868e0ec5292e8bbed3580ee9abad8c7275e2ed8311f007f03c2d028f3fc9450c9f2e5231d814651a1b3875705230031a1fada3fab1ce341f243b063e
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.15'.freeze
2
+ VERSION = '0.0.17'.freeze
3
3
  end
@@ -53,7 +53,7 @@ module Trains
53
53
  end
54
54
 
55
55
  def controller?(parent_class)
56
- %w[ActionController::Base ApplicationController].include? parent_class
56
+ parent_class.include? 'Controller'
57
57
  end
58
58
 
59
59
  def parse_method(node)
@@ -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.15
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Syed Faraaz Ahmad