ridgepole 0.6.4 → 0.6.5.beta

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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +18 -8
  4. data/Appraisals +8 -0
  5. data/README.md +26 -2
  6. data/docker-compose.yml +12 -0
  7. data/gemfiles/activerecord_4.2.gemfile +8 -0
  8. data/gemfiles/activerecord_5.0.gemfile +7 -0
  9. data/lib/ridgepole/diff.rb +3 -1
  10. data/lib/ridgepole/version.rb +1 -1
  11. data/ridgepole.gemspec +6 -2
  12. data/spec/cli_helper.rb +63 -0
  13. data/spec/mysql/bigint_pk/bigint_pk_spec.rb +45 -0
  14. data/spec/mysql/cli/config_spec.rb +0 -2
  15. data/spec/mysql/cli/ridgepole_spec.rb +58 -56
  16. data/spec/mysql/collation/collation_spec.rb +134 -138
  17. data/spec/mysql/diff/diff2_spec.rb +1 -3
  18. data/spec/mysql/diff/diff_spec.rb +1 -3
  19. data/spec/mysql/dump/dump_class_method_spec.rb +29 -11
  20. data/spec/mysql/dump/dump_some_tables_spec.rb +18 -8
  21. data/spec/mysql/dump/dump_spec.rb +28 -10
  22. data/spec/mysql/dump/dump_without_table_options_spec.rb +29 -33
  23. data/spec/mysql/fk/migrate_change_fk_spec.rb +2 -4
  24. data/spec/mysql/fk/migrate_create_fk_spec.rb +39 -29
  25. data/spec/mysql/fk/migrate_drop_fk_spec.rb +20 -22
  26. data/spec/mysql/migrate/check_orphan_index_spec.rb +2 -4
  27. data/spec/mysql/migrate/migrate_add_column2_spec.rb +33 -26
  28. data/spec/mysql/migrate/migrate_add_column_spec.rb +32 -22
  29. data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +26 -16
  30. data/spec/mysql/migrate/migrate_add_column_with_script_spec.rb +27 -17
  31. data/spec/mysql/migrate/migrate_change_column2_spec.rb +26 -16
  32. data/spec/mysql/migrate/migrate_change_column3_spec.rb +54 -44
  33. data/spec/mysql/migrate/migrate_change_column4_spec.rb +8 -10
  34. data/spec/mysql/migrate/migrate_change_column5_spec.rb +32 -22
  35. data/spec/mysql/migrate/migrate_change_column6_spec.rb +28 -30
  36. data/spec/mysql/migrate/migrate_change_column_default_spec.rb +34 -36
  37. data/spec/mysql/migrate/migrate_change_column_float_spec.rb +10 -12
  38. data/spec/mysql/migrate/migrate_change_column_spec.rb +41 -29
  39. data/spec/mysql/migrate/migrate_change_index2_spec.rb +12 -14
  40. data/spec/mysql/migrate/migrate_change_index3_spec.rb +24 -26
  41. data/spec/mysql/migrate/migrate_change_index4_spec.rb +34 -24
  42. data/spec/mysql/migrate/migrate_change_index5_spec.rb +26 -16
  43. data/spec/mysql/migrate/migrate_change_index6_spec.rb +38 -28
  44. data/spec/mysql/migrate/migrate_change_index_spec.rb +39 -29
  45. data/spec/mysql/migrate/migrate_change_table_option_spec.rb +26 -13
  46. data/spec/mysql/migrate/migrate_create_index2_spec.rb +30 -20
  47. data/spec/mysql/migrate/migrate_create_index_spec.rb +28 -18
  48. data/spec/mysql/migrate/migrate_create_table_spec.rb +24 -14
  49. data/spec/mysql/migrate/migrate_create_table_with_options_spec.rb +4 -6
  50. data/spec/mysql/migrate/migrate_create_table_with_script_spec.rb +23 -13
  51. data/spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb +32 -22
  52. data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +35 -25
  53. data/spec/mysql/migrate/migrate_drop_column_spec.rb +36 -26
  54. data/spec/mysql/migrate/migrate_drop_index_spec.rb +28 -18
  55. data/spec/mysql/migrate/migrate_drop_table_spec.rb +29 -19
  56. data/spec/mysql/migrate/migrate_duplicate_index_spec.rb +2 -4
  57. data/spec/mysql/migrate/migrate_duplicate_table_spec.rb +2 -4
  58. data/spec/mysql/migrate/migrate_empty_spec.rb +24 -14
  59. data/spec/mysql/migrate/migrate_execute_spec.rb +78 -65
  60. data/spec/mysql/migrate/migrate_log_file_spec.rb +22 -12
  61. data/spec/mysql/migrate/migrate_merge_mode_spec.rb +31 -21
  62. data/spec/mysql/migrate/migrate_noop_spec.rb +55 -45
  63. data/spec/mysql/migrate/migrate_rename_column_spec.rb +38 -28
  64. data/spec/mysql/migrate/migrate_rename_table_spec.rb +43 -33
  65. data/spec/mysql/migrate/migrate_same_default_null_spec.rb +28 -18
  66. data/spec/mysql/migrate/migrate_same_spec.rb +26 -12
  67. data/spec/mysql/migrate/migrate_script_error_spec.rb +3 -5
  68. data/spec/mysql/migrate/migrate_skip_rename_column_spec.rb +30 -20
  69. data/spec/mysql/migrate/migrate_skip_rename_table_spec.rb +30 -20
  70. data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +44 -46
  71. data/spec/mysql/migrate/migrate_with_pre_post_query_spec.rb +6 -8
  72. data/spec/mysql/migrate/migrate_with_tables_spec.rb +20 -22
  73. data/spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb +22 -12
  74. data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +22 -12
  75. data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
  76. data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +39 -29
  77. data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
  78. data/spec/postgresql/diff/diff_spec.rb +7 -9
  79. data/spec/postgresql/dump/dump_spec.rb +2 -4
  80. data/spec/postgresql/fk/migrate_change_fk_spec.rb +8 -10
  81. data/spec/postgresql/fk/migrate_create_fk_spec.rb +24 -26
  82. data/spec/postgresql/fk/migrate_drop_fk_spec.rb +21 -23
  83. data/spec/postgresql/migrate/migrate_add_column_spec.rb +19 -22
  84. data/spec/postgresql/migrate/migrate_change_column_default_spec.rb +6 -8
  85. data/spec/postgresql/migrate/migrate_change_column_spec.rb +17 -19
  86. data/spec/postgresql/migrate/migrate_change_index_spec.rb +11 -13
  87. data/spec/postgresql/migrate/migrate_create_table_spec.rb +6 -9
  88. data/spec/postgresql/migrate/migrate_drop_column_spec.rb +12 -14
  89. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +12 -14
  90. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +10 -12
  91. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +7 -9
  92. data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +6 -8
  93. data/spec/postgresql/migrate/migrate_rename_column_spec.rb +12 -14
  94. data/spec/postgresql/migrate/migrate_rename_table_spec.rb +14 -16
  95. data/spec/postgresql/migrate/migrate_same_spec.rb +4 -6
  96. data/spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
  97. data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +24 -26
  98. data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
  99. data/spec/processing_for_travis.rb +9 -0
  100. data/spec/spec_condition.rb +24 -0
  101. data/spec/spec_const.rb +18 -0
  102. data/spec/spec_helper.rb +125 -196
  103. data/spec/string_ext.rb +0 -13
  104. metadata +106 -32
  105. data/spec/mysql/bigint_pk/bigint_pkspec.rb +0 -47
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4c53abe50208291f89c751bb47e3b9db9b524c45
4
- data.tar.gz: 85babaf19329e4ccfe3ec9131b6a17cc548540c1
3
+ metadata.gz: 1afe38c33e11fab6506b3b4803488aec6058ddfb
4
+ data.tar.gz: 84819c79b7e1d2756f84682f2749ee9c51f09181
5
5
  SHA512:
6
- metadata.gz: 6913c4d2e9b388486f4ca9ec3eb1ccac6d86e5ac62d573c3fea97ed921415085fd1191347c55da44baeb7d1fa1ad936907e41e8707462c2f93c8edaf44c67f45
7
- data.tar.gz: cca33607a613f756c5d0d596a83bbdc6b63e2371e2ebf08951fdb9b03749de9dfc928f1d8fe9bc5e41b7139e60a25ec93adf07b844b3f7015f2ed2243e2b9381
6
+ metadata.gz: a1c834a74ee2b5f861f0a29fccb41b5411dfb9013aeebc9823ae5232a5994ee6b1b14075a1a74b85af005df6f9c4f799f375b7ac3ffd39ba8e1d1a9448404db5
7
+ data.tar.gz: 7153c5acdb81e28810c40049490a321ade6bd2f986b0d4a64435cb227ee1d73dd63480e5c8be0af2691af7333775d5664f4852f7281cd24c7091e2bd70fea99d
data/.gitignore CHANGED
@@ -21,3 +21,4 @@ Schemafile
21
21
  *.schema
22
22
  _site/
23
23
  config.yml
24
+ /gemfiles/*.lock
data/.travis.yml CHANGED
@@ -1,26 +1,36 @@
1
1
  dist: trusty
2
2
  sudo: required
3
3
  language: ruby
4
- cache: bundler
4
+ cache:
5
+ - bundler
6
+ - apt
5
7
  rvm:
6
- - 2.0.0
7
- - 2.1.8
8
8
  - 2.2.4
9
9
  - 2.3.0
10
10
  before_install:
11
11
  - gem install bundler
12
+ - sudo service postgresql stop
13
+ before_script:
14
+ - docker-compose up -d
15
+ - function mysql_ping { mysqladmin -u root -h 127.0.0.1 -ppassword ping > /dev/null 2> /dev/null; }
16
+ - function pg_ping { PGPASSWORD=password pg_isready -U postgres -h 127.0.0.1 > /dev/null 2> /dev/null; }
17
+ - for i in {1..60}; do mysql_ping && break; sleep 1; done
18
+ - for i in {1..60}; do pg_ping && break; sleep 1; done
12
19
  script:
13
- - bundle install
14
20
  - bundle exec rake
21
+ gemfile:
22
+ - gemfiles/activerecord_4.2.gemfile
23
+ #- gemfiles/activerecord_5.0.gemfile
15
24
  env:
16
25
  matrix:
17
26
  - ENABLE_MYSQL_AWESOME=0
18
27
  - ENABLE_MYSQL_AWESOME=1
19
28
  - POSTGRESQL=1
29
+ services:
30
+ - docker
20
31
  addons:
21
- postgresql: "9.4"
22
32
  apt:
23
33
  packages:
24
- - mysql-server-5.6
25
- - mysql-client-core-5.6
26
- - mysql-client-5.6
34
+ - mysql-client-core-5.6
35
+ - mysql-client-5.6
36
+ - postgresql-client-9.4
data/Appraisals ADDED
@@ -0,0 +1,8 @@
1
+ appraise "activerecord-4.2" do
2
+ gem 'activerecord', '~> 4.2.0'
3
+ gem 'activerecord-mysql-awesome', '>= 0.0.7'
4
+ end
5
+
6
+ appraise 'activerecord-5.0' do
7
+ gem 'activerecord', '>= 5.0.0.beta3'
8
+ end
data/README.md CHANGED
@@ -50,6 +50,8 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
50
50
  * Support `t.index` ([pull#64](https://github.com/winebarrel/ridgepole/pull/64))
51
51
  * Remove migration_comments
52
52
  * Fix foreign key apply order
53
+ * `>= 0.6.5`
54
+ * Fix rails version '>= 4.2', '< 6'
53
55
 
54
56
  ## Installation
55
57
 
@@ -307,13 +309,35 @@ $ ridgepole -a -c database.yml --mysql-use-alter --debug
307
309
  Apply `Schemafile`
308
310
  ...
309
311
  -- remove_index("dept_manager", {:name=>"emp_no"})
310
- (19.2ms) ALTER TABLE `dept_manager` DROP INDEX `emp_no`,LOCK=NONE
312
+ (19.2ms) ALTER TABLE `dept_manager` DROP INDEX `emp_no`
311
313
  -> 0.0200s
312
314
  -- add_index("dept_manager", ["emp_no"], {:name=>"emp_no2", :using=>:btree})
313
- (23.4ms) ALTER TABLE `dept_manager` ADD INDEX `emp_no2` USING btree (`emp_no`),LOCK=NONE
315
+ (23.4ms) ALTER TABLE `dept_manager` ADD INDEX `emp_no2` USING btree (`emp_no`)
314
316
  -> 0.0243s
315
317
  ```
316
318
 
319
+ ## Running tests
320
+
321
+ ```sh
322
+ docker-compose up -d
323
+ bundle install
324
+ bundle exec appraisal install
325
+ bundle exec appraisal activerecord-4.2 rake
326
+ # ENABLE_MYSQL_AWESOME=1 bundle exec appraisal activerecord-4.2 rake
327
+ # POSTGRESQL=1 bundle exec appraisal activerecord-4.2 rake
328
+ ```
329
+
330
+ **Notice:** mysql-client/postgresql-client is required.
331
+
332
+ ### on OS X (docker-machine & VirtualBox)
333
+
334
+ Port forwarding is required.
335
+
336
+ ```sh
337
+ VBoxManage controlvm default natpf1 "mysql,tcp,127.0.0.1,3306,,3306"
338
+ VBoxManage controlvm default natpf1 "psql,tcp,127.0.0.1,5432,,5432"
339
+ ```
340
+
317
341
  ## Demo
318
342
 
319
343
  * [asciinema.org/a/9349](https://asciinema.org/a/9349)
@@ -0,0 +1,12 @@
1
+ mysql:
2
+ image: "mysql:5.6"
3
+ ports:
4
+ - "3306:3306"
5
+ environment:
6
+ MYSQL_ROOT_PASSWORD: password
7
+ postgres:
8
+ image: "postgres:9.4"
9
+ ports:
10
+ - "5432:5432"
11
+ environment:
12
+ POSTGRES_PASSWORD: password
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 4.2.0"
6
+ gem "activerecord-mysql-awesome", ">= 0.0.7"
7
+
8
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", ">= 5.0.0.beta3"
6
+
7
+ gemspec :path => "../"
@@ -88,7 +88,9 @@ class Ridgepole::Diff
88
88
 
89
89
  def scan_options_change(table_name, from, to, table_delta)
90
90
  unless from == to
91
- Ridgepole::Logger.instance.warn("[WARNING] No difference of schema configuration for table `#{table_name}`. (if you changed some options, please reconfirm your Schemafile)")
91
+ Ridgepole::Logger.instance.warn("[WARNING] No difference of schema configuration for table `#{table_name}` but table options differ.")
92
+ Ridgepole::Logger.instance.warn(" from: #{from}")
93
+ Ridgepole::Logger.instance.warn(" to: #{to}")
92
94
  end
93
95
  end
94
96
 
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.4'
2
+ VERSION = '0.6.5.beta'
3
3
  end
data/ridgepole.gemspec CHANGED
@@ -18,12 +18,16 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'activerecord', '~> 4.2.1'
21
+ spec.add_dependency 'activerecord', '>= 4.2', '< 6'
22
22
  spec.add_development_dependency 'bundler'
23
23
  spec.add_development_dependency 'rake'
24
24
  spec.add_development_dependency 'rspec', '>= 3.0.0'
25
25
  spec.add_development_dependency 'mysql2', '~> 0.3.20'
26
26
  spec.add_development_dependency 'pg'
27
27
  spec.add_development_dependency 'coveralls'
28
- spec.add_development_dependency 'activerecord-mysql-awesome', '>= 0.0.7'
28
+ spec.add_development_dependency 'appraisal'
29
+ spec.add_development_dependency 'rspec-match_fuzzy', '>= 0.1.2'
30
+ spec.add_development_dependency 'erbh'
31
+ spec.add_development_dependency 'hash_modern_inspect', '>= 0.1.1'
32
+ spec.add_development_dependency 'hash_order_helper', '>= 0.1.1'
29
33
  end
@@ -0,0 +1,63 @@
1
+ module CLIHelper
2
+ def default_cli_hook
3
+ <<-RUBY.strip_heredoc
4
+ require 'ridgepole'
5
+
6
+ class Ridgepole::Delta
7
+ def initialize(*args);
8
+ end
9
+ def migrate(*args)
10
+ puts "Ridgepole::Delta#migrate"
11
+ [#{differ}, "create_table :table do\\nend"]
12
+ end
13
+ def script
14
+ puts "Ridgepole::Delta#script"
15
+
16
+ "create_table :table do\\nend"
17
+ end
18
+ def differ?
19
+ puts "Ridgepole::Delta#differ?"
20
+ #{differ}
21
+ end
22
+ end
23
+
24
+ class Ridgepole::Client
25
+ def initialize(*args)
26
+ puts "Ridgepole::Client#initialize([\#{args.map {|i| i.kind_of?(File) ? i.path : i.inspect}.join(', ')}])"
27
+ end
28
+ def dump
29
+ puts "Ridgepole::Client#dump"
30
+ end
31
+ def diff(*args)
32
+ puts "Ridgepole::Client#diff"
33
+ Ridgepole::Delta.new
34
+ end
35
+ class << self
36
+ def diff(*args)
37
+ puts "Ridgepole::Client.diff([\#{args.map {|i| i.kind_of?(File) ? i.path : i.inspect}.join(', ')}])"
38
+ Ridgepole::Delta.new
39
+ end
40
+ def dump(args)
41
+ puts "Ridgepole::Client.dump"
42
+ end
43
+ end
44
+ end
45
+ RUBY
46
+ end
47
+
48
+ def run_cli(options = {})
49
+ args = options[:args] || []
50
+ hook = options[:hook] || default_cli_hook
51
+ path = File.expand_path('../../bin/ridgepole', __FILE__)
52
+
53
+ Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.rb']) do |f|
54
+ f.puts(hook)
55
+ f.puts(File.read(path))
56
+ f.flush
57
+
58
+ cmd = ([:ruby, f.path] + args).join(' ')
59
+ Open3.capture2e(cmd)
60
+ end
61
+ end
62
+ end
63
+ include CLIHelper
@@ -0,0 +1,45 @@
1
+ describe 'Ridgepole::Client (with bigint pk)', condition: [:mysql_awesome_enabled] do
2
+ let(:dsl1) {
3
+ <<-RUBY
4
+ create_table "books", id: :primary_key, limit: 8, force: :cascade do |t|
5
+ t.string "title", limit: 255, null: false
6
+ t.integer "author_id", limit: 4, null: false
7
+ t.datetime "created_at"
8
+ t.datetime "updated_at"
9
+ end
10
+ RUBY
11
+ }
12
+
13
+ let(:dsl2) {
14
+ <<-RUBY
15
+ create_table "books", id: :bigint, force: :cascade do |t|
16
+ t.string "title", limit: 255, null: false
17
+ t.integer "author_id", limit: 4, null: false
18
+ t.datetime "created_at"
19
+ t.datetime "updated_at"
20
+ end
21
+ RUBY
22
+ }
23
+
24
+ context 'when with limit:8' do
25
+ subject { client }
26
+
27
+ before { subject.diff(dsl1).migrate }
28
+
29
+ it {
30
+ expect(show_create_table(:books)).to include '`id` bigint(20) NOT NULL AUTO_INCREMENT'
31
+ expect(subject.dump).to match_fuzzy dsl2
32
+ }
33
+ end
34
+
35
+ context 'when with id:bigint' do
36
+ subject { client }
37
+
38
+ before { subject.diff(dsl2).migrate }
39
+
40
+ it {
41
+ expect(show_create_table(:books)).to include '`id` bigint(20) NOT NULL AUTO_INCREMENT'
42
+ expect(subject.dump).to match_fuzzy dsl2
43
+ }
44
+ end
45
+ end
@@ -1,4 +1,3 @@
1
- unless postgresql?
2
1
  describe Ridgepole::Config do
3
2
  subject { Ridgepole::Config.load(config, env) }
4
3
 
@@ -86,4 +85,3 @@ describe Ridgepole::Config do
86
85
  }
87
86
  end
88
87
  end
89
- end
@@ -1,15 +1,18 @@
1
- unless postgresql?
2
1
  describe 'ridgepole' do
3
2
  let(:differ) { false }
4
3
  let(:conf) { "'" + JSON.dump(conn_spec) + "'" }
5
4
 
5
+ def conn_spec_str(database)
6
+ ActiveSupport::HashWithIndifferentAccess.new(conn_spec(database: database)).inspect
7
+ end
8
+
6
9
  context 'when help' do
7
10
  it do
8
11
  out, status = run_cli(:args => ['-h'])
9
- out = out.gsub(/Usage: .*\n/, '').strip_heredoc
12
+ out = out.gsub(/Usage: .*\n/, '')
10
13
 
11
14
  expect(status.success?).to be_truthy
12
- expect(out).to eq <<-EOS.strip_heredoc
15
+ expect(out).to match_fuzzy <<-EOS
13
16
  -c, --config CONF_OR_FILE
14
17
  -E, --env ENVIRONMENT
15
18
  -a, --apply
@@ -56,8 +59,8 @@ describe 'ridgepole' do
56
59
  out, status = run_cli(:args => ['-c', conf, '-e', conf, conf])
57
60
 
58
61
  expect(status.success?).to be_truthy
59
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
60
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
62
+ expect(out).to match_fuzzy <<-EOS
63
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
61
64
  # Export Schema
62
65
  Ridgepole::Client#dump
63
66
  EOS
@@ -68,8 +71,8 @@ describe 'ridgepole' do
68
71
  out, status = run_cli(:args => ['-c', conf, '-e', '-o', f.path])
69
72
 
70
73
  expect(status.success?).to be_truthy
71
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
72
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
74
+ expect(out).to match_fuzzy <<-EOS
75
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
73
76
  Export Schema to `#{f.path}`
74
77
  Ridgepole::Client#dump
75
78
  EOS
@@ -80,8 +83,8 @@ describe 'ridgepole' do
80
83
  out, status = run_cli(:args => ['-c', conf, '-e', '-o', '-'])
81
84
 
82
85
  expect(status.success?).to be_truthy
83
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
84
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
86
+ expect(out).to match_fuzzy <<-EOS
87
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
85
88
  # Export Schema
86
89
  Ridgepole::Client#dump
87
90
  EOS
@@ -91,8 +94,8 @@ describe 'ridgepole' do
91
94
  out, status = run_cli(:args => ['-c', conf, '-e', '--split'])
92
95
 
93
96
  expect(status.success?).to be_truthy
94
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
95
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
97
+ expect(out).to match_fuzzy <<-EOS
98
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
96
99
  Export Schema
97
100
  Ridgepole::Client#dump
98
101
  write `Schemafile`
@@ -104,8 +107,8 @@ describe 'ridgepole' do
104
107
  out, status = run_cli(:args => ['-c', conf, '-e', '--split', '-o', f.path, conf, conf])
105
108
 
106
109
  expect(status.success?).to be_truthy
107
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
108
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
110
+ expect(out).to match_fuzzy <<-EOS
111
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
109
112
  Export Schema
110
113
  Ridgepole::Client#dump
111
114
  write `#{f.path}`
@@ -119,8 +122,8 @@ describe 'ridgepole' do
119
122
  out, status = run_cli(:args => ['-c', conf, '-a'])
120
123
 
121
124
  expect(status.success?).to be_truthy
122
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
123
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
125
+ expect(out).to match_fuzzy <<-EOS
126
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
124
127
  Apply `Schemafile`
125
128
  Ridgepole::Client#diff
126
129
  Ridgepole::Delta#differ?
@@ -131,7 +134,7 @@ describe 'ridgepole' do
131
134
 
132
135
  it 'apply with conf file' do
133
136
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
134
- conf_file.puts <<-EOS.strip_heredoc
137
+ conf_file.puts <<-EOS
135
138
  adapter: mysql2
136
139
  database: ridgepole_test_for_conf_file
137
140
  EOS
@@ -140,7 +143,7 @@ describe 'ridgepole' do
140
143
  out, status = run_cli(:args => ['-c', conf_file.path, '-a', '--debug'])
141
144
 
142
145
  expect(status.success?).to be_truthy
143
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
146
+ expect(out).to match_fuzzy <<-EOS
144
147
  Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {:dry_run=>false, :debug=>true}])
145
148
  Apply `Schemafile`
146
149
  Ridgepole::Client#diff
@@ -153,7 +156,7 @@ describe 'ridgepole' do
153
156
 
154
157
  it 'apply with conf file (production)' do
155
158
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
156
- conf_file.puts <<-EOS.strip_heredoc
159
+ conf_file.puts <<-EOS
157
160
  development:
158
161
  adapter: mysql2
159
162
  database: ridgepole_development
@@ -166,7 +169,7 @@ describe 'ridgepole' do
166
169
  out, status = run_cli(:args => ['-c', conf_file.path, '-a', '--debug'])
167
170
 
168
171
  expect(status.success?).to be_truthy
169
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
172
+ expect(out).to match_fuzzy <<-EOS
170
173
  Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_development"}, {:dry_run=>false, :debug=>true}])
171
174
  Apply `Schemafile`
172
175
  Ridgepole::Client#diff
@@ -181,8 +184,8 @@ describe 'ridgepole' do
181
184
  out, status = run_cli(:args => ['-c', conf, '-a', '--dry-run'])
182
185
 
183
186
  expect(status.success?).to be_truthy
184
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
185
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>true, :debug=>false}])
187
+ expect(out).to match_fuzzy <<-EOS
188
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>true, :debug=>false}])
186
189
  Apply `Schemafile` (dry-run)
187
190
  Ridgepole::Client#diff
188
191
  Ridgepole::Delta#differ?
@@ -197,8 +200,8 @@ describe 'ridgepole' do
197
200
  out, status = run_cli(:args => ['-c', conf, '-a'])
198
201
 
199
202
  expect(status.success?).to be_truthy
200
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
201
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
203
+ expect(out).to match_fuzzy <<-EOS
204
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
202
205
  Apply `Schemafile`
203
206
  Ridgepole::Client#diff
204
207
  Ridgepole::Delta#differ?
@@ -210,8 +213,8 @@ describe 'ridgepole' do
210
213
  out, status = run_cli(:args => ['-c', conf, '-a', '--dry-run'])
211
214
 
212
215
  expect(status.success?).to be_truthy
213
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
214
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>true, :debug=>false}])
216
+ expect(out).to match_fuzzy <<-EOS
217
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>true, :debug=>false}])
215
218
  Apply `Schemafile` (dry-run)
216
219
  Ridgepole::Client#diff
217
220
  Ridgepole::Delta#differ?
@@ -233,9 +236,9 @@ describe 'ridgepole' do
233
236
  out, status = run_cli(:args => ['-c', conf, '-d', conf, conf])
234
237
 
235
238
  expect(status.success?).to be_truthy
236
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
237
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
238
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
239
+ expect(out).to match_fuzzy <<-EOS
240
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
241
+ Ridgepole::Client.diff([#{conn_spec_str("ridgepole_test")}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
239
242
  Ridgepole::Delta#differ?
240
243
  EOS
241
244
  end
@@ -249,9 +252,9 @@ describe 'ridgepole' do
249
252
  # Exit code 1 if there is a difference
250
253
  expect(status.success?).to be_falsey
251
254
 
252
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
253
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
254
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
255
+ expect(out).to match_fuzzy <<-EOS
256
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
257
+ Ridgepole::Client.diff([#{conn_spec_str("ridgepole_test")}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
255
258
  Ridgepole::Delta#differ?
256
259
  Ridgepole::Delta#script
257
260
  Ridgepole::Delta#script
@@ -268,7 +271,7 @@ describe 'ridgepole' do
268
271
  context 'when config file' do
269
272
  it '.yml' do
270
273
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
271
- conf_file.puts <<-EOS.strip_heredoc
274
+ conf_file.puts <<-EOS
272
275
  adapter: mysql2
273
276
  database: ridgepole_test_for_conf_file
274
277
  EOS
@@ -278,9 +281,9 @@ describe 'ridgepole' do
278
281
 
279
282
  expect(status.success?).to be_truthy
280
283
 
281
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
282
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
283
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
284
+ expect(out).to match_fuzzy <<-EOS
285
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
286
+ Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
284
287
  Ridgepole::Delta#differ?
285
288
  EOS
286
289
  end
@@ -288,7 +291,7 @@ describe 'ridgepole' do
288
291
 
289
292
  it '.yml (file2)' do
290
293
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
291
- conf_file.puts <<-EOS.strip_heredoc
294
+ conf_file.puts <<-EOS
292
295
  adapter: mysql2
293
296
  database: ridgepole_test_for_conf_file
294
297
  EOS
@@ -298,9 +301,9 @@ describe 'ridgepole' do
298
301
 
299
302
  expect(status.success?).to be_truthy
300
303
 
301
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
302
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
303
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {:dry_run=>false, :debug=>false}])
304
+ expect(out).to match_fuzzy <<-EOS
305
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
306
+ Ridgepole::Client.diff([#{conn_spec_str("ridgepole_test")}, {"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {:dry_run=>false, :debug=>false}])
304
307
  Ridgepole::Delta#differ?
305
308
  EOS
306
309
  end
@@ -308,7 +311,7 @@ describe 'ridgepole' do
308
311
 
309
312
  it '.yml (development)' do
310
313
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
311
- conf_file.puts <<-EOS.strip_heredoc
314
+ conf_file.puts <<-EOS
312
315
  development:
313
316
  adapter: mysql2
314
317
  database: ridgepole_development
@@ -322,9 +325,9 @@ describe 'ridgepole' do
322
325
 
323
326
  expect(status.success?).to be_truthy
324
327
 
325
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
326
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
327
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_development"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
328
+ expect(out).to match_fuzzy <<-EOS
329
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
330
+ Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_development"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
328
331
  Ridgepole::Delta#differ?
329
332
  EOS
330
333
  end
@@ -332,7 +335,7 @@ describe 'ridgepole' do
332
335
 
333
336
  it '.yml (production)' do
334
337
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
335
- conf_file.puts <<-EOS.strip_heredoc
338
+ conf_file.puts <<-EOS
336
339
  development:
337
340
  adapter: mysql2
338
341
  database: ridgepole_development
@@ -346,9 +349,9 @@ describe 'ridgepole' do
346
349
 
347
350
  expect(status.success?).to be_truthy
348
351
 
349
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
350
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
351
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_production"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
352
+ expect(out).to match_fuzzy <<-EOS
353
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
354
+ Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_production"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
352
355
  Ridgepole::Delta#differ?
353
356
  EOS
354
357
  end
@@ -356,7 +359,7 @@ describe 'ridgepole' do
356
359
 
357
360
  it '.yaml' do
358
361
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yaml']) do |conf_file|
359
- conf_file.puts <<-EOS.strip_heredoc
362
+ conf_file.puts <<-EOS
360
363
  adapter: mysql2
361
364
  database: ridgepole_test_for_conf_file
362
365
  EOS
@@ -366,9 +369,9 @@ describe 'ridgepole' do
366
369
 
367
370
  expect(status.success?).to be_truthy
368
371
 
369
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
370
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
371
- Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
372
+ expect(out).to match_fuzzy <<-EOS
373
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
374
+ Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
372
375
  Ridgepole::Delta#differ?
373
376
  EOS
374
377
  end
@@ -376,7 +379,7 @@ describe 'ridgepole' do
376
379
 
377
380
  it '.rb' do
378
381
  Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.rb']) do |conf_file|
379
- conf_file.puts <<-EOS.strip_heredoc
382
+ conf_file.puts <<-EOS
380
383
  create_table :table do
381
384
  end
382
385
  EOS
@@ -386,9 +389,9 @@ describe 'ridgepole' do
386
389
 
387
390
  expect(status.success?).to be_truthy
388
391
 
389
- expect(out.strip).to eq <<-EOS.strip_heredoc.strip
390
- Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
391
- Ridgepole::Client.diff([#{conf_file.path}, {"adapter"=>"mysql2", "database"=>"ridgepole_test"}, {:dry_run=>false, :debug=>false}])
392
+ expect(out).to match_fuzzy <<-EOS
393
+ Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
394
+ Ridgepole::Client.diff([#{conf_file.path}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
392
395
  Ridgepole::Delta#differ?
393
396
  EOS
394
397
  end
@@ -396,4 +399,3 @@ describe 'ridgepole' do
396
399
  end
397
400
  end
398
401
  end
399
- end