ardm-migrations 1.2.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.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +35 -0
  3. data/.travis.yml +11 -0
  4. data/Gemfile +53 -0
  5. data/LICENSE +20 -0
  6. data/README.rdoc +39 -0
  7. data/Rakefile +4 -0
  8. data/ardm-migrations.gemspec +27 -0
  9. data/db/migrations/1_create_people_table.rb +12 -0
  10. data/db/migrations/2_add_dob_to_people.rb +13 -0
  11. data/db/migrations/config.rb +4 -0
  12. data/examples/Rakefile +144 -0
  13. data/examples/sample_migration.rb +58 -0
  14. data/examples/sample_migration_spec.rb +50 -0
  15. data/lib/ardm-migrations.rb +1 -0
  16. data/lib/dm-migrations/adapters/dm-do-adapter.rb +295 -0
  17. data/lib/dm-migrations/adapters/dm-mysql-adapter.rb +299 -0
  18. data/lib/dm-migrations/adapters/dm-oracle-adapter.rb +332 -0
  19. data/lib/dm-migrations/adapters/dm-postgres-adapter.rb +159 -0
  20. data/lib/dm-migrations/adapters/dm-sqlite-adapter.rb +96 -0
  21. data/lib/dm-migrations/adapters/dm-sqlserver-adapter.rb +177 -0
  22. data/lib/dm-migrations/adapters/dm-yaml-adapter.rb +23 -0
  23. data/lib/dm-migrations/auto_migration.rb +239 -0
  24. data/lib/dm-migrations/exceptions/duplicate_migration.rb +6 -0
  25. data/lib/dm-migrations/migration.rb +300 -0
  26. data/lib/dm-migrations/migration_runner.rb +85 -0
  27. data/lib/dm-migrations/sql/column.rb +5 -0
  28. data/lib/dm-migrations/sql/mysql.rb +61 -0
  29. data/lib/dm-migrations/sql/postgres.rb +82 -0
  30. data/lib/dm-migrations/sql/sqlite.rb +51 -0
  31. data/lib/dm-migrations/sql/table.rb +15 -0
  32. data/lib/dm-migrations/sql/table_creator.rb +109 -0
  33. data/lib/dm-migrations/sql/table_modifier.rb +57 -0
  34. data/lib/dm-migrations/sql.rb +5 -0
  35. data/lib/dm-migrations/version.rb +5 -0
  36. data/lib/dm-migrations.rb +3 -0
  37. data/lib/spec/example/migration_example_group.rb +73 -0
  38. data/lib/spec/matchers/migration_matchers.rb +106 -0
  39. data/spec/integration/auto_migration_spec.rb +553 -0
  40. data/spec/integration/auto_upgrade_spec.rb +40 -0
  41. data/spec/integration/migration_runner_spec.rb +89 -0
  42. data/spec/integration/migration_spec.rb +157 -0
  43. data/spec/integration/sql_spec.rb +250 -0
  44. data/spec/isolated/require_after_setup_spec.rb +30 -0
  45. data/spec/isolated/require_before_setup_spec.rb +30 -0
  46. data/spec/isolated/require_spec.rb +25 -0
  47. data/spec/rcov.opts +6 -0
  48. data/spec/spec.opts +4 -0
  49. data/spec/spec_helper.rb +18 -0
  50. data/spec/unit/migration_spec.rb +453 -0
  51. data/spec/unit/sql/column_spec.rb +14 -0
  52. data/spec/unit/sql/postgres_spec.rb +97 -0
  53. data/spec/unit/sql/sqlite_extensions_spec.rb +108 -0
  54. data/spec/unit/sql/table_creator_spec.rb +94 -0
  55. data/spec/unit/sql/table_modifier_spec.rb +49 -0
  56. data/spec/unit/sql/table_spec.rb +28 -0
  57. data/spec/unit/sql_spec.rb +7 -0
  58. data/tasks/spec.rake +38 -0
  59. data/tasks/yard.rake +9 -0
  60. data/tasks/yardstick.rake +19 -0
  61. metadata +150 -0
@@ -0,0 +1,94 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'SQL module' do
4
+ describe 'TableCreator' do
5
+ before do
6
+ @adapter = mock('adapter')
7
+ @adapter.stub!(:quote_name).and_return(%{'users'})
8
+ @tc = SQL::TableCreator.new(@adapter, 'users') { }
9
+ end
10
+
11
+ describe 'initialization' do
12
+ it 'should set @adapter to the adapter' do
13
+ @tc.instance_variable_get("@adapter").should == @adapter
14
+ end
15
+
16
+ it 'should set @table_name to the stringified table name' do
17
+ @tc.instance_variable_get("@table_name").should == 'users'
18
+ end
19
+
20
+ it 'should set @opts to the options hash' do
21
+ @tc.instance_variable_get("@opts").should == {}
22
+ end
23
+
24
+ it 'should set @columns to an empty array' do
25
+ @tc.instance_variable_get("@columns").should == []
26
+ end
27
+
28
+ it 'should evaluate the given block' do
29
+ block = proc { column :foo, :bar }
30
+ col = mock('column')
31
+ SQL::TableCreator::Column.should_receive(:new).with(@adapter, :foo, :bar, {}).and_return(col)
32
+ tc = SQL::TableCreator.new(@adapter, 'users', {}, &block)
33
+ tc.instance_variable_get("@columns").should == [col]
34
+ end
35
+ end
36
+
37
+ it 'should have a table_name' do
38
+ @tc.should respond_to(:table_name)
39
+ @tc.table_name.should == 'users'
40
+ end
41
+
42
+ it 'should use the adapter to quote the table name' do
43
+ @adapter.should_receive(:quote_name).with('users').and_return(%{'users'})
44
+ @tc.quoted_table_name.should == %{'users'}
45
+ end
46
+
47
+ it 'should initialze a new column and add it to the list of columns' do
48
+ col = mock('column')
49
+ SQL::TableCreator::Column.should_receive(:new).with(@adapter, :foo, :bar, {}).and_return(col)
50
+ @tc.column(:foo, :bar)
51
+ @tc.instance_variable_get("@columns").should == [col]
52
+ end
53
+
54
+ it 'should output an SQL CREATE statement to build itself' do
55
+ @adapter.stub!(:table_options).and_return("")
56
+ @tc.to_sql.should ==
57
+ %{CREATE TABLE 'users' ()}
58
+ end
59
+
60
+ describe 'Column' do
61
+ before do
62
+ connection = mock('Connection')
63
+
64
+ @adapter.stub!(:quote_column_name).and_return(%{'id'})
65
+ @adapter.class.stub!(:type_map).and_return(Integer => {:type => 'int'})
66
+ @adapter.stub!(:property_schema_statement).and_return("SOME SQL")
67
+ @adapter.stub!(:with_connection).and_yield(connection)
68
+ @c = SQL::TableCreator::Column.new(@adapter, 'id', Integer, :serial => true)
69
+ end
70
+
71
+ describe 'initialization' do
72
+ it 'should set @adapter to the adapter' do
73
+ @c.instance_variable_get("@adapter").should == @adapter
74
+ end
75
+
76
+ it 'should set @name to the stringified name' do
77
+ @c.instance_variable_get("@name").should == 'id'
78
+ end
79
+
80
+ # TODO make this really the type, not this sql bullshit
81
+ it 'should set @type to the type' do
82
+ @c.instance_variable_get("@type").should == "SOME SQL"
83
+ end
84
+
85
+ it 'should set @opts to the options hash' do
86
+ @c.instance_variable_get("@opts").should == {:serial => true}
87
+ end
88
+
89
+ end
90
+
91
+ end
92
+ end
93
+
94
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'SQL module' do
4
+ describe 'TableModifier' do
5
+ before do
6
+ @adapter = mock('adapter')
7
+ @adapter.stub!(:quote_name).and_return(%{'users'})
8
+ @tc = SQL::TableModifier.new(@adapter, :users) { }
9
+ end
10
+
11
+ describe 'initialization' do
12
+ it 'should set @adapter to the adapter' do
13
+ @tc.instance_variable_get("@adapter").should == @adapter
14
+ end
15
+
16
+ it 'should set @table_name to the stringified table name' do
17
+ @tc.instance_variable_get("@table_name").should == 'users'
18
+ end
19
+
20
+ it 'should set @opts to the options hash' do
21
+ @tc.instance_variable_get("@opts").should == {}
22
+ end
23
+
24
+ it 'should set @statements to an empty array' do
25
+ @tc.instance_variable_get("@statements").should == []
26
+ end
27
+
28
+ it 'should evaluate the given block' do
29
+ block = proc { column :foo, :bar }
30
+ col = mock('column')
31
+ SQL::TableCreator::Column.should_receive(:new).with(@adapter, :foo, :bar, {}).and_return(col)
32
+ tc = SQL::TableCreator.new(@adapter, 'users', {}, &block)
33
+ tc.instance_variable_get("@columns").should == [col]
34
+ end
35
+ end
36
+
37
+ it 'should have a table_name' do
38
+ @tc.should respond_to(:table_name)
39
+ @tc.table_name.should == 'users'
40
+ end
41
+
42
+ it 'should use the adapter to quote the table name' do
43
+ @adapter.should_receive(:quote_name).with('users').and_return(%{'users'})
44
+ @tc.quoted_table_name.should == %{'users'}
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe SQL::Table do
4
+ before do
5
+ @table = SQL::Table.new
6
+ end
7
+
8
+ %w{name columns}.each do |meth|
9
+ it "should have a ##{meth} attribute" do
10
+ @table.should respond_to(meth.intern)
11
+ end
12
+ end
13
+
14
+ it 'should #to_s as the name' do
15
+ @table.name = "table_name"
16
+ @table.to_s.should == "table_name"
17
+ end
18
+
19
+ it 'should find a column by name' do
20
+ column_a = mock('column', :name => 'id')
21
+ column_b = mock('column', :name => 'login')
22
+ @table.columns = [column_a, column_b]
23
+
24
+ @table.column('id').should == column_a
25
+ end
26
+
27
+
28
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'SQL module' do
4
+
5
+ it 'doesnt really do anything'
6
+
7
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,38 @@
1
+ spec_defaults = lambda do |spec|
2
+ spec.pattern = 'spec/**/*_spec.rb'
3
+ spec.libs << 'lib' << 'spec'
4
+ spec.spec_opts << '--options' << 'spec/spec.opts'
5
+ end
6
+
7
+ begin
8
+ require 'spec/rake/spectask'
9
+
10
+ Spec::Rake::SpecTask.new(:spec, &spec_defaults)
11
+ rescue LoadError
12
+ task :spec do
13
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
14
+ end
15
+ end
16
+
17
+ begin
18
+ require 'rcov'
19
+ require 'spec/rake/verify_rcov'
20
+
21
+ Spec::Rake::SpecTask.new(:rcov) do |rcov|
22
+ spec_defaults.call(rcov)
23
+ rcov.rcov = true
24
+ rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
25
+ end
26
+
27
+ RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
28
+ rcov.threshold = 100
29
+ end
30
+ rescue LoadError
31
+ %w[ rcov verify_rcov ].each do |name|
32
+ task name do
33
+ abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
34
+ end
35
+ end
36
+ end
37
+
38
+ task :default => :spec
data/tasks/yard.rake ADDED
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new
5
+ rescue LoadError
6
+ task :yard do
7
+ abort 'YARD is not available. In order to run yard, you must: gem install yard'
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'pathname'
3
+ require 'yardstick/rake/measurement'
4
+ require 'yardstick/rake/verify'
5
+
6
+ # yardstick_measure task
7
+ Yardstick::Rake::Measurement.new
8
+
9
+ # verify_measurements task
10
+ Yardstick::Rake::Verify.new do |verify|
11
+ verify.threshold = 100
12
+ end
13
+ rescue LoadError
14
+ %w[ yardstick_measure verify_measurements ].each do |name|
15
+ task name.to_s do
16
+ abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
17
+ end
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,150 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ardm-migrations
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Martin Emde
8
+ - Paul Sadauskas
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-01-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: ardm-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.2'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.2'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.9'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.9'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.3'
56
+ description: Ardm fork of dm-migrations
57
+ email:
58
+ - me@martinemde.com
59
+ - psadauskas [a] gmail [d] com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files:
63
+ - LICENSE
64
+ - README.rdoc
65
+ files:
66
+ - ".gitignore"
67
+ - ".travis.yml"
68
+ - Gemfile
69
+ - LICENSE
70
+ - README.rdoc
71
+ - Rakefile
72
+ - ardm-migrations.gemspec
73
+ - db/migrations/1_create_people_table.rb
74
+ - db/migrations/2_add_dob_to_people.rb
75
+ - db/migrations/config.rb
76
+ - examples/Rakefile
77
+ - examples/sample_migration.rb
78
+ - examples/sample_migration_spec.rb
79
+ - lib/ardm-migrations.rb
80
+ - lib/dm-migrations.rb
81
+ - lib/dm-migrations/adapters/dm-do-adapter.rb
82
+ - lib/dm-migrations/adapters/dm-mysql-adapter.rb
83
+ - lib/dm-migrations/adapters/dm-oracle-adapter.rb
84
+ - lib/dm-migrations/adapters/dm-postgres-adapter.rb
85
+ - lib/dm-migrations/adapters/dm-sqlite-adapter.rb
86
+ - lib/dm-migrations/adapters/dm-sqlserver-adapter.rb
87
+ - lib/dm-migrations/adapters/dm-yaml-adapter.rb
88
+ - lib/dm-migrations/auto_migration.rb
89
+ - lib/dm-migrations/exceptions/duplicate_migration.rb
90
+ - lib/dm-migrations/migration.rb
91
+ - lib/dm-migrations/migration_runner.rb
92
+ - lib/dm-migrations/sql.rb
93
+ - lib/dm-migrations/sql/column.rb
94
+ - lib/dm-migrations/sql/mysql.rb
95
+ - lib/dm-migrations/sql/postgres.rb
96
+ - lib/dm-migrations/sql/sqlite.rb
97
+ - lib/dm-migrations/sql/table.rb
98
+ - lib/dm-migrations/sql/table_creator.rb
99
+ - lib/dm-migrations/sql/table_modifier.rb
100
+ - lib/dm-migrations/version.rb
101
+ - lib/spec/example/migration_example_group.rb
102
+ - lib/spec/matchers/migration_matchers.rb
103
+ - spec/integration/auto_migration_spec.rb
104
+ - spec/integration/auto_upgrade_spec.rb
105
+ - spec/integration/migration_runner_spec.rb
106
+ - spec/integration/migration_spec.rb
107
+ - spec/integration/sql_spec.rb
108
+ - spec/isolated/require_after_setup_spec.rb
109
+ - spec/isolated/require_before_setup_spec.rb
110
+ - spec/isolated/require_spec.rb
111
+ - spec/rcov.opts
112
+ - spec/spec.opts
113
+ - spec/spec_helper.rb
114
+ - spec/unit/migration_spec.rb
115
+ - spec/unit/sql/column_spec.rb
116
+ - spec/unit/sql/postgres_spec.rb
117
+ - spec/unit/sql/sqlite_extensions_spec.rb
118
+ - spec/unit/sql/table_creator_spec.rb
119
+ - spec/unit/sql/table_modifier_spec.rb
120
+ - spec/unit/sql/table_spec.rb
121
+ - spec/unit/sql_spec.rb
122
+ - tasks/spec.rake
123
+ - tasks/yard.rake
124
+ - tasks/yardstick.rake
125
+ homepage: http://github.com/martinemde/ardm-migrations
126
+ licenses:
127
+ - MIT
128
+ metadata: {}
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 2.2.2
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: Ardm fork of dm-migrations
149
+ test_files: []
150
+ has_rdoc: