ridgepole 0.0.1 → 0.1.0

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.
@@ -0,0 +1,31 @@
1
+ $: << File.expand_path('..', __FILE__)
2
+ require 'ridgepole'
3
+ require 'string_ext'
4
+
5
+ RSpec.configure do |config|
6
+ config.before(:each) do
7
+ restore_database
8
+ end
9
+ end
10
+
11
+ def restore_database
12
+ sql_file = File.expand_path('../ridgepole_test_database.sql', __FILE__)
13
+ system("mysql -uroot < #{sql_file}")
14
+ end
15
+
16
+ def restore_tables
17
+ sql_file = File.expand_path('../ridgepole_test_tables.sql', __FILE__)
18
+ system("mysql -uroot < #{sql_file}")
19
+ end
20
+
21
+ def client(options = {}, config = {})
22
+ config = {
23
+ adapter: 'mysql2',
24
+ database: 'ridgepole_test',
25
+ }.merge(config)
26
+
27
+ options = {
28
+ }.merge(options)
29
+
30
+ Ridgepole::Client.new(config, options)
31
+ end
@@ -0,0 +1,61 @@
1
+ class String
2
+ def undent
3
+ min_space_num = self.split("\n").delete_if {|s| s =~ /^\s*$/ }.map {|s| (s[/^\s+/] || '').length }.min
4
+
5
+ if min_space_num and min_space_num > 0
6
+ gsub(/^[ \t]{,#{min_space_num}}/, '')
7
+ else
8
+ self
9
+ end
10
+ end
11
+
12
+ def delete_create_table(name)
13
+ new_def = []
14
+ in_block = false
15
+
16
+ self.each_line do |line|
17
+ if line =~ /\A\s*create_table\s+"#{name}"/
18
+ in_block = true
19
+ elsif in_block and line =~ /\A\s*end\s*\Z/
20
+ in_block = false
21
+ elsif not in_block
22
+ new_def << line
23
+ end
24
+ end
25
+
26
+ new_def = new_def.join
27
+ raise 'must not happen' if new_def =~ /^\s*create_table\s+"#{name}"/m
28
+ new_def.delete_add_index(name)
29
+ end
30
+
31
+ def delete_add_index(name, columns = nil)
32
+ new_def = []
33
+ in_block = false
34
+
35
+ args = name.inspect
36
+ args << ',\\s*\\[' + columns.map {|i| i.inspect }.join(',\\s*') + '\\]' if columns
37
+
38
+ self.each_line do |line|
39
+ if line !~ /\A\s*add_index\s+#{args}/
40
+ new_def << line
41
+ end
42
+ end
43
+
44
+ new_def = new_def.join
45
+ raise 'must not happen' if new_def =~ /^\s*add_index\s+#{args}/m
46
+ new_def
47
+ end
48
+
49
+ def gsub_surely(pattern, replace)
50
+ old_str = self.dup
51
+ new_str = self.gsub(pattern, replace)
52
+ raise 'must not happen' if old_str == new_str
53
+ new_str
54
+ end
55
+
56
+ def delete_empty_lines
57
+ self.each_line.select {|line|
58
+ line !~ /\A\s*\Z/
59
+ }.join
60
+ end
61
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-06 00:00:00.000000000 Z
11
+ date: 2014-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord-mysql-unsigned
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,14 +70,14 @@ dependencies:
56
70
  name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - '>='
73
+ - - ~>
60
74
  - !ruby/object:Gem::Version
61
75
  version: 2.14.1
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - '>='
80
+ - - ~>
67
81
  - !ruby/object:Gem::Version
68
82
  version: 2.14.1
69
83
  - !ruby/object:Gem::Dependency
@@ -90,6 +104,7 @@ extensions: []
90
104
  extra_rdoc_files: []
91
105
  files:
92
106
  - .gitignore
107
+ - .rspec
93
108
  - Gemfile
94
109
  - LICENSE.txt
95
110
  - README.md
@@ -105,6 +120,23 @@ files:
105
120
  - lib/ridgepole/string_ext.rb
106
121
  - lib/ridgepole/version.rb
107
122
  - ridgepole.gemspec
123
+ - spec/dump/dump_spec.rb
124
+ - spec/migrate/migrate_add_column_spec.rb
125
+ - spec/migrate/migrate_change_column_spec.rb
126
+ - spec/migrate/migrate_create_index_spec.rb
127
+ - spec/migrate/migrate_create_table_spec.rb
128
+ - spec/migrate/migrate_drop_column_spec.rb
129
+ - spec/migrate/migrate_drop_index.rb
130
+ - spec/migrate/migrate_drop_table.rb
131
+ - spec/migrate/migrate_empty_spec.rb
132
+ - spec/migrate/migrate_merge_mode_spec.rb
133
+ - spec/migrate/migrate_rename_column_spec.rb
134
+ - spec/migrate/migrate_rename_table_spec.rb
135
+ - spec/migrate/migrate_same_spec.rb
136
+ - spec/ridgepole_test_database.sql
137
+ - spec/ridgepole_test_tables.sql
138
+ - spec/spec_helper.rb
139
+ - spec/string_ext.rb
108
140
  homepage: https://bitbucket.org/winebarrel/ridgepole
109
141
  licenses:
110
142
  - MIT
@@ -129,4 +161,21 @@ rubygems_version: 2.0.14
129
161
  signing_key:
130
162
  specification_version: 4
131
163
  summary: Ridgepole is a tool to DB schema.
132
- test_files: []
164
+ test_files:
165
+ - spec/dump/dump_spec.rb
166
+ - spec/migrate/migrate_add_column_spec.rb
167
+ - spec/migrate/migrate_change_column_spec.rb
168
+ - spec/migrate/migrate_create_index_spec.rb
169
+ - spec/migrate/migrate_create_table_spec.rb
170
+ - spec/migrate/migrate_drop_column_spec.rb
171
+ - spec/migrate/migrate_drop_index.rb
172
+ - spec/migrate/migrate_drop_table.rb
173
+ - spec/migrate/migrate_empty_spec.rb
174
+ - spec/migrate/migrate_merge_mode_spec.rb
175
+ - spec/migrate/migrate_rename_column_spec.rb
176
+ - spec/migrate/migrate_rename_table_spec.rb
177
+ - spec/migrate/migrate_same_spec.rb
178
+ - spec/ridgepole_test_database.sql
179
+ - spec/ridgepole_test_tables.sql
180
+ - spec/spec_helper.rb
181
+ - spec/string_ext.rb