ridgepole 0.6.5.beta3 → 0.6.5.beta4

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
  SHA1:
3
- metadata.gz: 9f55a300d2808032c178912f81d291ba094a867a
4
- data.tar.gz: 20e173fc302bc246392f9efb96f4497c76154516
3
+ metadata.gz: 6eb5cd9b6da53e0af2afd188637a9196f5a59b6c
4
+ data.tar.gz: c0c798186e1cd37c7e1881278270d82f200020bd
5
5
  SHA512:
6
- metadata.gz: 42b281cc0ebcb60117addc51ddba6b3b39b4358cc86fe804a5a184f2e96e4cff193e66d89b4dedc821e08d529e5ecf23874fa7ee4026b31533ad51f7d050d1c8
7
- data.tar.gz: 4cdd724e376511e9cbbb82b269b4aecfc3657f3d6618744b90cb5c43bc8e5353e50cc2a9f1e5f2be85616fe72e92163f2fd7dd1728d0b8b42036ecec040e969b
6
+ metadata.gz: 34b3eca50c3aadbf464e4a23f3c5a16c1f8022709fd02df91992212b083eb3080ed50e06556d216405d462f2288948c617c21e1dfc15a2cea567d5d062692712
7
+ data.tar.gz: da081d87c9e157c515bfd81acd1363b3586bf532861f480ac627ba1e936e2b65d606b8751220ca2b1917282fc2ccd44f2507a5f1aa4581107f7481674f948abd
@@ -184,6 +184,15 @@ class Ridgepole::DSLParser
184
184
  raise "Index `#{table_name}(#{idx})` already defined"
185
185
  end
186
186
 
187
+ if options[:length].is_a?(Numeric)
188
+ index_length = options[:length]
189
+ options[:length] = {}
190
+
191
+ column_name.each do |col|
192
+ options[:length][col] = index_length
193
+ end
194
+ end
195
+
187
196
  @__definition[table_name][:indices][idx] = {
188
197
  :column_name => column_name,
189
198
  :options => options,
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.5.beta3'
2
+ VERSION = '0.6.5.beta4'
3
3
  end
@@ -0,0 +1,86 @@
1
+ describe 'Ridgepole::Client#diff -> migrate' do
2
+ context 'when change index (length is Numeric) / No update' do
3
+ let(:actual_dsl) {
4
+ erbh(<<-EOS)
5
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
6
+ t.date "birth_date", null: false
7
+ t.string "first_name", limit: 14, null: false
8
+ t.string "last_name", limit: 16, null: false
9
+ t.string "gender", limit: 1, null: false
10
+ t.date "hire_date", null: false
11
+ end
12
+
13
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: {"first_name"=>10, "last_name"=>10}, using: :btree %>
14
+ EOS
15
+ }
16
+
17
+ let(:expected_dsl) {
18
+ erbh(<<-EOS)
19
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
20
+ t.date "birth_date", null: false
21
+ t.string "first_name", limit: 14, null: false
22
+ t.string "last_name", limit: 16, null: false
23
+ t.string "gender", limit: 1, null: false
24
+ t.date "hire_date", null: false
25
+ end
26
+
27
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: 10, using: :btree %>
28
+ EOS
29
+ }
30
+
31
+ before { subject.diff(actual_dsl).migrate }
32
+ subject { client }
33
+
34
+ it {
35
+ delta = subject.diff(expected_dsl)
36
+ expect(delta.differ?).to be_falsy
37
+ expect(subject.dump).to match_fuzzy actual_dsl
38
+ }
39
+ end
40
+
41
+ context 'when change index (length is Numeric) / Update' do
42
+ let(:actual_dsl) {
43
+ erbh(<<-EOS)
44
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
45
+ t.date "birth_date", null: false
46
+ t.string "first_name", limit: 14, null: false
47
+ t.string "last_name", limit: 16, null: false
48
+ t.string "gender", limit: 1, null: false
49
+ t.date "hire_date", null: false
50
+ end
51
+ EOS
52
+ }
53
+
54
+ let(:expected_dsl) {
55
+ erbh(<<-EOS)
56
+ create_table "employees", primary_key: "emp_no", <%= i unsigned(true) + {force: :cascade} %> do |t|
57
+ t.date "birth_date", null: false
58
+ t.string "first_name", limit: 14, null: false
59
+ t.string "last_name", limit: 16, null: false
60
+ t.string "gender", limit: 1, null: false
61
+ t.date "hire_date", null: false
62
+ end
63
+
64
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: 10, using: :btree %>
65
+ EOS
66
+ }
67
+
68
+ let(:actual_dsl_plus_index) {
69
+ erbh(<<-EOS)
70
+ #{actual_dsl}
71
+ <%= add_index "employees", ["first_name", "last_name"], name: "idx_first_name_last_name", length: {"first_name"=>10, "last_name"=>10}, using: :btree %>
72
+ EOS
73
+ }
74
+
75
+ before { subject.diff(actual_dsl).migrate }
76
+ subject { client }
77
+
78
+ it {
79
+ delta = subject.diff(expected_dsl)
80
+ expect(delta.differ?).to be_truthy
81
+ expect(subject.dump).to match_fuzzy actual_dsl
82
+ delta.migrate
83
+ expect(subject.dump).to match_fuzzy actual_dsl_plus_index
84
+ }
85
+ end
86
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5.beta3
4
+ version: 0.6.5.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
@@ -259,6 +259,7 @@ files:
259
259
  - spec/mysql/migrate/migrate_change_index4_spec.rb
260
260
  - spec/mysql/migrate/migrate_change_index5_spec.rb
261
261
  - spec/mysql/migrate/migrate_change_index6_spec.rb
262
+ - spec/mysql/migrate/migrate_change_index7_spec.rb
262
263
  - spec/mysql/migrate/migrate_change_index_spec.rb
263
264
  - spec/mysql/migrate/migrate_change_table_option_spec.rb
264
265
  - spec/mysql/migrate/migrate_create_index2_spec.rb
@@ -384,6 +385,7 @@ test_files:
384
385
  - spec/mysql/migrate/migrate_change_index4_spec.rb
385
386
  - spec/mysql/migrate/migrate_change_index5_spec.rb
386
387
  - spec/mysql/migrate/migrate_change_index6_spec.rb
388
+ - spec/mysql/migrate/migrate_change_index7_spec.rb
387
389
  - spec/mysql/migrate/migrate_change_index_spec.rb
388
390
  - spec/mysql/migrate/migrate_change_table_option_spec.rb
389
391
  - spec/mysql/migrate/migrate_create_index2_spec.rb