trains 0.0.15 → 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: 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