migrant 0.2.3 → 0.2.4
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.
- data/Gemfile.lock +32 -32
- data/README.rdoc +22 -18
- data/VERSION +1 -1
- data/lib/migrant/migration_generator.rb +27 -22
- data/lib/migrant/model_extensions.rb +0 -1
- data/lib/tasks/db.rake +11 -1
- data/migrant.gemspec +24 -4
- data/test/verified_output/migrations/business_id.rb +1 -1
- data/test/verified_output/migrations/created_at.rb +2 -2
- data/test/verified_output/migrations/estimated_value_notes.rb +1 -1
- data/test/verified_output/migrations/landline.rb +1 -1
- metadata +84 -73
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
migrant (0.2.
|
4
|
+
migrant (0.2.3)
|
5
5
|
migrant
|
6
6
|
rails
|
7
7
|
|
@@ -9,34 +9,34 @@ GEM
|
|
9
9
|
remote: http://rubygems.org/
|
10
10
|
specs:
|
11
11
|
abstract (1.0.0)
|
12
|
-
actionmailer (3.0.
|
13
|
-
actionpack (= 3.0.
|
14
|
-
mail (~> 2.2.
|
15
|
-
actionpack (3.0.
|
16
|
-
activemodel (= 3.0.
|
17
|
-
activesupport (= 3.0.
|
12
|
+
actionmailer (3.0.4)
|
13
|
+
actionpack (= 3.0.4)
|
14
|
+
mail (~> 2.2.15)
|
15
|
+
actionpack (3.0.4)
|
16
|
+
activemodel (= 3.0.4)
|
17
|
+
activesupport (= 3.0.4)
|
18
18
|
builder (~> 2.1.2)
|
19
19
|
erubis (~> 2.6.6)
|
20
20
|
i18n (~> 0.4)
|
21
21
|
rack (~> 1.2.1)
|
22
22
|
rack-mount (~> 0.6.13)
|
23
|
-
rack-test (~> 0.5.
|
23
|
+
rack-test (~> 0.5.7)
|
24
24
|
tzinfo (~> 0.3.23)
|
25
|
-
activemodel (3.0.
|
26
|
-
activesupport (= 3.0.
|
25
|
+
activemodel (3.0.4)
|
26
|
+
activesupport (= 3.0.4)
|
27
27
|
builder (~> 2.1.2)
|
28
28
|
i18n (~> 0.4)
|
29
|
-
activerecord (3.0.
|
30
|
-
activemodel (= 3.0.
|
31
|
-
activesupport (= 3.0.
|
29
|
+
activerecord (3.0.4)
|
30
|
+
activemodel (= 3.0.4)
|
31
|
+
activesupport (= 3.0.4)
|
32
32
|
arel (~> 2.0.2)
|
33
33
|
tzinfo (~> 0.3.23)
|
34
|
-
activeresource (3.0.
|
35
|
-
activemodel (= 3.0.
|
36
|
-
activesupport (= 3.0.
|
37
|
-
activesupport (3.0.
|
34
|
+
activeresource (3.0.4)
|
35
|
+
activemodel (= 3.0.4)
|
36
|
+
activesupport (= 3.0.4)
|
37
|
+
activesupport (3.0.4)
|
38
38
|
ansi (1.2.2)
|
39
|
-
arel (2.0.
|
39
|
+
arel (2.0.8)
|
40
40
|
builder (2.1.2)
|
41
41
|
erubis (2.6.6)
|
42
42
|
abstract (>= 1.0.0)
|
@@ -46,7 +46,7 @@ GEM
|
|
46
46
|
bundler (~> 1.0.0)
|
47
47
|
git (>= 1.2.5)
|
48
48
|
rake
|
49
|
-
mail (2.2.
|
49
|
+
mail (2.2.15)
|
50
50
|
activesupport (>= 2.3.6)
|
51
51
|
i18n (>= 0.4.0)
|
52
52
|
mime-types (~> 1.16)
|
@@ -58,23 +58,23 @@ GEM
|
|
58
58
|
rack (>= 1.0.0)
|
59
59
|
rack-test (0.5.7)
|
60
60
|
rack (>= 1.0)
|
61
|
-
rails (3.0.
|
62
|
-
actionmailer (= 3.0.
|
63
|
-
actionpack (= 3.0.
|
64
|
-
activerecord (= 3.0.
|
65
|
-
activeresource (= 3.0.
|
66
|
-
activesupport (= 3.0.
|
61
|
+
rails (3.0.4)
|
62
|
+
actionmailer (= 3.0.4)
|
63
|
+
actionpack (= 3.0.4)
|
64
|
+
activerecord (= 3.0.4)
|
65
|
+
activeresource (= 3.0.4)
|
66
|
+
activesupport (= 3.0.4)
|
67
67
|
bundler (~> 1.0)
|
68
|
-
railties (= 3.0.
|
69
|
-
railties (3.0.
|
70
|
-
actionpack (= 3.0.
|
71
|
-
activesupport (= 3.0.
|
68
|
+
railties (= 3.0.4)
|
69
|
+
railties (3.0.4)
|
70
|
+
actionpack (= 3.0.4)
|
71
|
+
activesupport (= 3.0.4)
|
72
72
|
rake (>= 0.8.7)
|
73
73
|
thor (~> 0.14.4)
|
74
74
|
rake (0.8.7)
|
75
|
-
simplecov (0.
|
76
|
-
simplecov-html (
|
77
|
-
simplecov-html (0.3
|
75
|
+
simplecov (0.4.0)
|
76
|
+
simplecov-html (~> 0.4.0)
|
77
|
+
simplecov-html (0.4.3)
|
78
78
|
sqlite3 (1.3.3)
|
79
79
|
sqlite3-ruby (1.3.3)
|
80
80
|
sqlite3 (>= 1.3.3)
|
data/README.rdoc
CHANGED
@@ -10,14 +10,14 @@ You'll also get a handy .mock method to instantiate a filled in model for testin
|
|
10
10
|
== Getting Started
|
11
11
|
|
12
12
|
Only for Rails 3 and Ruby 1.9+ folks. Simply install the gem "migrant", or add it to your bundler Gemfile
|
13
|
-
|
13
|
+
|
14
14
|
== Jumping right in
|
15
15
|
|
16
16
|
Start by creating some models with the structure you need:
|
17
17
|
|
18
18
|
class Business < ActiveRecord::Base
|
19
19
|
belongs_to :user
|
20
|
-
|
20
|
+
|
21
21
|
# Here's where you describe the columns in your model
|
22
22
|
structure do
|
23
23
|
name "The kernel's favourite fried chickens"
|
@@ -27,12 +27,12 @@ Start by creating some models with the structure you need:
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
The best and easiest way is to provide example data and then Migrant will work out the appropriate
|
30
|
+
The best and easiest way is to provide example data and then Migrant will work out the appropriate
|
31
31
|
column type for you. Another example covering some more bases:
|
32
32
|
|
33
33
|
class User < ActiveRecord::Base
|
34
34
|
has_many :businesses
|
35
|
-
|
35
|
+
|
36
36
|
structure do
|
37
37
|
name # Don't specify any structure to get good 'ol varchar(255)
|
38
38
|
surname "Smith", :validates => :presence # You can add your validations in here too to keep DRY
|
@@ -40,30 +40,35 @@ column type for you. Another example covering some more bases:
|
|
40
40
|
timestamps # Gets you a created_at, and updated_at
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
Now, to get your database up to date simply run:
|
45
45
|
|
46
46
|
> rake db:upgrade
|
47
47
|
|
48
|
-
Wrote db/migrate/20101028192913_create_businesses.rb...
|
48
|
+
Wrote db/migrate/20101028192913_create_businesses.rb...
|
49
49
|
Wrote db/migrate/20101028192916_create_users.rb...
|
50
|
-
|
50
|
+
|
51
51
|
OR, if you'd prefer to look over the migrations yourself first, run:
|
52
52
|
|
53
53
|
> rails generate migrations
|
54
|
-
|
54
|
+
|
55
55
|
Result:
|
56
56
|
|
57
|
-
irb(main):001:0> Business
|
58
|
-
=> Business(id: integer, user_id: integer, name: string, website: string, address: text, date_established: datetime)
|
59
|
-
|
60
|
-
irb(main):002:0> Awesome!!!!
|
57
|
+
irb(main):001:0> Business
|
58
|
+
=> Business(id: integer, user_id: integer, name: string, website: string, address: text, date_established: datetime)
|
59
|
+
|
60
|
+
irb(main):002:0> Awesome!!!!
|
61
61
|
NoMethodError: undefined method `Awesome!!!!' for main:Object
|
62
|
-
|
62
|
+
|
63
|
+
By default, your database structure will be cloned to your test environment. If you don't want this to happen
|
64
|
+
automatically, simply specify an environment variable directly:
|
65
|
+
|
66
|
+
> rake db:upgrade RAILS_ENV=development
|
67
|
+
|
63
68
|
== Want more examples?
|
64
69
|
|
65
70
|
Check out the test models in test/rails_app/app/models/*
|
66
|
-
|
71
|
+
|
67
72
|
== What will happen seamlessly
|
68
73
|
|
69
74
|
* Creating tables or adding columns (as appropriate)
|
@@ -75,7 +80,7 @@ Check out the test models in test/rails_app/app/models/*
|
|
75
80
|
|
76
81
|
These actions won't be performed (because we don't want to hurt your data):
|
77
82
|
|
78
|
-
* Remove tables/columns
|
83
|
+
* Remove tables/columns
|
79
84
|
* Changing column types where data loss may occur (e.g. varchar -> int)
|
80
85
|
|
81
86
|
== Getting a mock of your model
|
@@ -83,9 +88,9 @@ These actions won't be performed (because we don't want to hurt your data):
|
|
83
88
|
> rails console
|
84
89
|
|
85
90
|
irb(main):002:0> my_business = Business.mock
|
86
|
-
=> #<Business id: nil, name: "The Kernel's favourite fried chickens", website: "http://www.google.co.za/",
|
91
|
+
=> #<Business id: nil, name: "The Kernel's favourite fried chickens", website: "http://www.google.co.za/",
|
87
92
|
address: "11 Test Drive\nGardens\nCape Town\nSouth Africa", date_established: "1710-10-28 21:03:31">
|
88
|
-
|
93
|
+
|
89
94
|
irb(main):003:0> my_business.user
|
90
95
|
=> #<User id: nil, name: "John", surname: "Smith", description: "Some string">
|
91
96
|
|
@@ -131,4 +136,3 @@ Please be sure to install all the development dependencies from the gemspec, the
|
|
131
136
|
|
132
137
|
Simplecov reports will be generated for each run, if it's not at 100% line coverage, something's wrong!
|
133
138
|
|
134
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
@@ -9,7 +9,7 @@ module Migrant
|
|
9
9
|
puts "You have some pending database migrations. You can either:\n1. Run them with rake db:migrate\n2. Delete them, in which case this task will probably recreate their actions (DON'T do this if they've been in SCM)."
|
10
10
|
return false
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
# Get all tables and compare to the desired schema
|
14
14
|
# The next line is an evil hack to recursively load all model files in app/models
|
15
15
|
# This needs to be done because Rails normally lazy-loads these files, resulting a blank descendants list of AR::Base
|
@@ -19,12 +19,12 @@ module Migrant
|
|
19
19
|
next if model.schema.nil? || !model.schema.requires_migration? # Skips inherited schemas (such as models with STI)
|
20
20
|
model.reset_column_information # db:migrate doesn't do this
|
21
21
|
model_schema = model.schema.column_migrations
|
22
|
-
|
22
|
+
|
23
23
|
if model.table_exists?
|
24
24
|
# Structure ActiveRecord::Base's column information so we can compare it directly to the schema
|
25
25
|
db_schema = Hash[*model.columns.collect {|c| [c.name.to_sym, Hash[*[:type, :limit].map { |type| [type, c.send(type)] }.flatten] ] }.flatten]
|
26
|
-
changes = model.schema.columns.collect do |name, data_type|
|
27
|
-
begin
|
26
|
+
changes = model.schema.columns.collect do |name, data_type|
|
27
|
+
begin
|
28
28
|
[name, data_type.structure_changes_from(db_schema[name])]
|
29
29
|
rescue DataType::DangerousMigration
|
30
30
|
puts "Cannot generate migration automatically for #{model.table_name}, this would involve possible data loss on column: #{name}\nOld structure: #{db_schema[name].inspect}. New structure: #{data_type.column.inspect}\nPlease create and run this migration yourself (with the appropriate data integrity checks)"
|
@@ -32,29 +32,33 @@ module Migrant
|
|
32
32
|
end
|
33
33
|
end.reject { |change| change[1].nil? }
|
34
34
|
next if changes.blank?
|
35
|
-
|
36
|
-
|
35
|
+
changed_fields, added_fields = [], []
|
36
|
+
|
37
37
|
up_code = changes.collect do |field, options|
|
38
|
-
type = options.delete(:type)
|
39
|
-
arguments = (options.blank?)? "" : ", #{options.inspect[1..-2]}"
|
40
|
-
|
38
|
+
type = options.delete(:type)
|
39
|
+
arguments = (options.blank?)? "" : ", #{options.inspect[1..-2]}"
|
40
|
+
|
41
41
|
if db_schema[field]
|
42
|
+
changed_fields << field
|
42
43
|
"change_column :#{model.table_name}, :#{field}, :#{type}#{arguments}"
|
43
44
|
else
|
45
|
+
added_fields << field
|
44
46
|
"add_column :#{model.table_name}, :#{field}, :#{type}#{arguments}"
|
45
47
|
end
|
46
48
|
end.join(NEWLINE+TABS)
|
47
|
-
|
49
|
+
|
50
|
+
activity = 'changed_'+model.table_name+[(added_fields.blank?)? nil : '_added_'+added_fields.join('_'), (changed_fields.blank?)? nil : '_modified_'+changed_fields.join('_')].compact.join('_and_')
|
51
|
+
|
48
52
|
down_code = changes.collect do |field, options|
|
49
53
|
if db_schema[field]
|
50
|
-
type = db_schema[field].delete(:type)
|
51
|
-
arguments = (db_schema[field].blank?)? "" : ", #{db_schema[field].inspect[1..-2]}"
|
54
|
+
type = db_schema[field].delete(:type)
|
55
|
+
arguments = (db_schema[field].blank?)? "" : ", #{db_schema[field].inspect[1..-2]}"
|
52
56
|
"change_column :#{model.table_name}, :#{field}, :#{type}#{arguments}"
|
53
57
|
else
|
54
58
|
"remove_column :#{model.table_name}, :#{field}"
|
55
59
|
end
|
56
|
-
end.join(NEWLINE+TABS)
|
57
|
-
|
60
|
+
end.join(NEWLINE+TABS)
|
61
|
+
|
58
62
|
# For adapters that can report indexes, add as necessary
|
59
63
|
if ActiveRecord::Base.connection.respond_to?(:indexes)
|
60
64
|
current_indexes = ActiveRecord::Base.connection.indexes(model.table_name).collect { |index| (index.columns.length == 1)? index.columns.first.to_sym : index.columns.collect(&:to_sym) }
|
@@ -65,16 +69,16 @@ module Migrant
|
|
65
69
|
end.compact.join
|
66
70
|
end
|
67
71
|
else
|
68
|
-
activity = "create_#{model.table_name}"
|
69
|
-
up_code = "create_table :#{model.table_name} do |t|"+NEWLINE+model_schema.collect do |field, options|
|
72
|
+
activity = "create_#{model.table_name}"
|
73
|
+
up_code = "create_table :#{model.table_name} do |t|"+NEWLINE+model_schema.collect do |field, options|
|
70
74
|
type = options.delete(:type)
|
71
75
|
options.delete(:was) # Aliases not relevant when creating a new table
|
72
76
|
arguments = (options.blank?)? "" : ", #{options.inspect[1..-2]}"
|
73
77
|
(TABS*2)+"t.#{type} :#{field}#{arguments}"
|
74
78
|
end.join(NEWLINE)+NEWLINE+TABS+"end"
|
75
|
-
|
79
|
+
|
76
80
|
down_code = "drop_table :#{model.table_name}"
|
77
|
-
up_code += NEWLINE+TABS+model.schema.indexes.collect { |fields| "add_index :#{model.table_name}, #{fields.inspect}"}.join(NEWLINE+TABS)
|
81
|
+
up_code += NEWLINE+TABS+model.schema.indexes.collect { |fields| "add_index :#{model.table_name}, #{fields.inspect}"}.join(NEWLINE+TABS)
|
78
82
|
end
|
79
83
|
|
80
84
|
# Indexes
|
@@ -85,12 +89,12 @@ module Migrant
|
|
85
89
|
end
|
86
90
|
true
|
87
91
|
end
|
88
|
-
|
92
|
+
|
89
93
|
private
|
90
94
|
def migrations_path
|
91
95
|
Rails.root.join(ActiveRecord::Migrator.migrations_path)
|
92
96
|
end
|
93
|
-
|
97
|
+
|
94
98
|
# See ActiveRecord::Generators::Migration
|
95
99
|
# Only generating a migration to each second is a problem.. because we generate everything in the same second
|
96
100
|
# So we have to add further "pretend" seconds. This WILL cause problems.
|
@@ -99,7 +103,7 @@ module Migrant
|
|
99
103
|
highest = Dir.glob(migrations_path.to_s+"/[0-9]*_*.rb").collect do |file|
|
100
104
|
File.basename(file).split("_").first.to_i
|
101
105
|
end.max
|
102
|
-
|
106
|
+
|
103
107
|
if ActiveRecord::Base.timestamped_migrations
|
104
108
|
base = Time.now.utc.strftime("%Y%m%d%H%M%S").to_s
|
105
109
|
(highest.to_i >= base.to_i)? (highest + 1).to_s : base
|
@@ -107,7 +111,7 @@ module Migrant
|
|
107
111
|
(highest.to_i + 1).to_s
|
108
112
|
end
|
109
113
|
end
|
110
|
-
|
114
|
+
|
111
115
|
def migration_template(activity, up_code, down_code)
|
112
116
|
"class #{activity.camelize.gsub(/\s/, '')} < ActiveRecord::Migration
|
113
117
|
def self.up
|
@@ -121,3 +125,4 @@ end"
|
|
121
125
|
end
|
122
126
|
end
|
123
127
|
end
|
128
|
+
|
data/lib/tasks/db.rake
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
namespace :db do
|
2
2
|
desc "Generates migrations as per structure design in your models and runs them"
|
3
3
|
task :upgrade => :environment do
|
4
|
-
|
4
|
+
if Migrant::MigrationGenerator.new.run
|
5
|
+
puts "\nInvoking db:migrate for #{Rails.env} environment."
|
6
|
+
Rake::Task['db:migrate'].invoke
|
7
|
+
|
8
|
+
# If RAILS_ENV is explicitly specified, don't clone out to test
|
9
|
+
unless ENV['RAILS_ENV']
|
10
|
+
puts "Migrated. Now, cloning out to the test database."
|
11
|
+
Rake::Task['db:test:clone'].invoke
|
12
|
+
end
|
13
|
+
end
|
5
14
|
end
|
6
15
|
end
|
16
|
+
|
data/migrant.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{migrant}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Pascal Houliston"]
|
12
|
-
s.date = %q{2011-02-
|
12
|
+
s.date = %q{2011-02-15}
|
13
13
|
s.description = %q{Migrant gives you a super-clean DSL to describe your ActiveRecord models (somewhat similar to DataMapper) and generates all your migrations for you so you can spend more time coding the stuff that counts!}
|
14
14
|
s.email = %q{101pascal@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -95,7 +95,7 @@ Gem::Specification.new do |s|
|
|
95
95
|
]
|
96
96
|
s.homepage = %q{http://github.com/pascalh1011/migrant}
|
97
97
|
s.require_paths = ["lib"]
|
98
|
-
s.rubygems_version = %q{1.
|
98
|
+
s.rubygems_version = %q{1.5.2}
|
99
99
|
s.summary = %q{All the fun of ActiveRecord, without writing your migrations, and a dash of mocking.}
|
100
100
|
s.test_files = [
|
101
101
|
"test/additional_models/review.rb",
|
@@ -137,7 +137,6 @@ Gem::Specification.new do |s|
|
|
137
137
|
]
|
138
138
|
|
139
139
|
if s.respond_to? :specification_version then
|
140
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
141
140
|
s.specification_version = 3
|
142
141
|
|
143
142
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
@@ -170,6 +169,13 @@ Gem::Specification.new do |s|
|
|
170
169
|
s.add_development_dependency(%q<turn>, [">= 0"])
|
171
170
|
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
|
172
171
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
172
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
173
|
+
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
174
|
+
s.add_development_dependency(%q<ansi>, [">= 0"])
|
175
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
176
|
+
s.add_development_dependency(%q<turn>, [">= 0"])
|
177
|
+
s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
|
178
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
173
179
|
s.add_runtime_dependency(%q<rails>, [">= 0"])
|
174
180
|
else
|
175
181
|
s.add_dependency(%q<migrant>, [">= 0"])
|
@@ -201,6 +207,13 @@ Gem::Specification.new do |s|
|
|
201
207
|
s.add_dependency(%q<turn>, [">= 0"])
|
202
208
|
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
203
209
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
210
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
211
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
212
|
+
s.add_dependency(%q<ansi>, [">= 0"])
|
213
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
214
|
+
s.add_dependency(%q<turn>, [">= 0"])
|
215
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
216
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
204
217
|
s.add_dependency(%q<rails>, [">= 0"])
|
205
218
|
end
|
206
219
|
else
|
@@ -233,6 +246,13 @@ Gem::Specification.new do |s|
|
|
233
246
|
s.add_dependency(%q<turn>, [">= 0"])
|
234
247
|
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
235
248
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
249
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
250
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
251
|
+
s.add_dependency(%q<ansi>, [">= 0"])
|
252
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
253
|
+
s.add_dependency(%q<turn>, [">= 0"])
|
254
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
255
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
236
256
|
s.add_dependency(%q<rails>, [">= 0"])
|
237
257
|
end
|
238
258
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class
|
1
|
+
class ChangedBusinessesAddedUpdatedAtCreatedAt < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
add_column :businesses, :updated_at, :datetime
|
4
4
|
add_column :businesses, :created_at, :datetime
|
@@ -8,4 +8,4 @@ class BusinessesModifyFieldsUpdatedAtCreatedAt < ActiveRecord::Migration
|
|
8
8
|
remove_column :businesses, :updated_at
|
9
9
|
remove_column :businesses, :created_at
|
10
10
|
end
|
11
|
-
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: migrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 3
|
9
|
-
version: 0.2.3
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.4
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Pascal Houliston
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-02-
|
13
|
+
date: 2011-02-15 00:00:00 +00:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -24,8 +20,6 @@ dependencies:
|
|
24
20
|
requirements:
|
25
21
|
- - ">="
|
26
22
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 0
|
29
23
|
version: "0"
|
30
24
|
type: :runtime
|
31
25
|
prerelease: false
|
@@ -37,8 +31,6 @@ dependencies:
|
|
37
31
|
requirements:
|
38
32
|
- - ">="
|
39
33
|
- !ruby/object:Gem::Version
|
40
|
-
segments:
|
41
|
-
- 0
|
42
34
|
version: "0"
|
43
35
|
type: :development
|
44
36
|
prerelease: false
|
@@ -50,8 +42,6 @@ dependencies:
|
|
50
42
|
requirements:
|
51
43
|
- - ">="
|
52
44
|
- !ruby/object:Gem::Version
|
53
|
-
segments:
|
54
|
-
- 0
|
55
45
|
version: "0"
|
56
46
|
type: :development
|
57
47
|
prerelease: false
|
@@ -63,8 +53,6 @@ dependencies:
|
|
63
53
|
requirements:
|
64
54
|
- - ">="
|
65
55
|
- !ruby/object:Gem::Version
|
66
|
-
segments:
|
67
|
-
- 0
|
68
56
|
version: "0"
|
69
57
|
type: :development
|
70
58
|
prerelease: false
|
@@ -76,8 +64,6 @@ dependencies:
|
|
76
64
|
requirements:
|
77
65
|
- - ">="
|
78
66
|
- !ruby/object:Gem::Version
|
79
|
-
segments:
|
80
|
-
- 0
|
81
67
|
version: "0"
|
82
68
|
type: :development
|
83
69
|
prerelease: false
|
@@ -89,8 +75,6 @@ dependencies:
|
|
89
75
|
requirements:
|
90
76
|
- - ">="
|
91
77
|
- !ruby/object:Gem::Version
|
92
|
-
segments:
|
93
|
-
- 0
|
94
78
|
version: "0"
|
95
79
|
type: :development
|
96
80
|
prerelease: false
|
@@ -102,8 +86,6 @@ dependencies:
|
|
102
86
|
requirements:
|
103
87
|
- - ">="
|
104
88
|
- !ruby/object:Gem::Version
|
105
|
-
segments:
|
106
|
-
- 0
|
107
89
|
version: "0"
|
108
90
|
type: :development
|
109
91
|
prerelease: false
|
@@ -115,8 +97,6 @@ dependencies:
|
|
115
97
|
requirements:
|
116
98
|
- - ">="
|
117
99
|
- !ruby/object:Gem::Version
|
118
|
-
segments:
|
119
|
-
- 0
|
120
100
|
version: "0"
|
121
101
|
type: :development
|
122
102
|
prerelease: false
|
@@ -128,8 +108,6 @@ dependencies:
|
|
128
108
|
requirements:
|
129
109
|
- - ">="
|
130
110
|
- !ruby/object:Gem::Version
|
131
|
-
segments:
|
132
|
-
- 0
|
133
111
|
version: "0"
|
134
112
|
type: :development
|
135
113
|
prerelease: false
|
@@ -141,8 +119,6 @@ dependencies:
|
|
141
119
|
requirements:
|
142
120
|
- - ">="
|
143
121
|
- !ruby/object:Gem::Version
|
144
|
-
segments:
|
145
|
-
- 0
|
146
122
|
version: "0"
|
147
123
|
type: :development
|
148
124
|
prerelease: false
|
@@ -154,8 +130,6 @@ dependencies:
|
|
154
130
|
requirements:
|
155
131
|
- - ">="
|
156
132
|
- !ruby/object:Gem::Version
|
157
|
-
segments:
|
158
|
-
- 0
|
159
133
|
version: "0"
|
160
134
|
type: :development
|
161
135
|
prerelease: false
|
@@ -167,8 +141,6 @@ dependencies:
|
|
167
141
|
requirements:
|
168
142
|
- - ">="
|
169
143
|
- !ruby/object:Gem::Version
|
170
|
-
segments:
|
171
|
-
- 0
|
172
144
|
version: "0"
|
173
145
|
type: :development
|
174
146
|
prerelease: false
|
@@ -180,8 +152,6 @@ dependencies:
|
|
180
152
|
requirements:
|
181
153
|
- - ">="
|
182
154
|
- !ruby/object:Gem::Version
|
183
|
-
segments:
|
184
|
-
- 0
|
185
155
|
version: "0"
|
186
156
|
type: :development
|
187
157
|
prerelease: false
|
@@ -193,8 +163,6 @@ dependencies:
|
|
193
163
|
requirements:
|
194
164
|
- - ">="
|
195
165
|
- !ruby/object:Gem::Version
|
196
|
-
segments:
|
197
|
-
- 0
|
198
166
|
version: "0"
|
199
167
|
type: :development
|
200
168
|
prerelease: false
|
@@ -206,8 +174,6 @@ dependencies:
|
|
206
174
|
requirements:
|
207
175
|
- - ">="
|
208
176
|
- !ruby/object:Gem::Version
|
209
|
-
segments:
|
210
|
-
- 0
|
211
177
|
version: "0"
|
212
178
|
type: :development
|
213
179
|
prerelease: false
|
@@ -219,8 +185,6 @@ dependencies:
|
|
219
185
|
requirements:
|
220
186
|
- - ">="
|
221
187
|
- !ruby/object:Gem::Version
|
222
|
-
segments:
|
223
|
-
- 0
|
224
188
|
version: "0"
|
225
189
|
type: :development
|
226
190
|
prerelease: false
|
@@ -232,8 +196,6 @@ dependencies:
|
|
232
196
|
requirements:
|
233
197
|
- - ">="
|
234
198
|
- !ruby/object:Gem::Version
|
235
|
-
segments:
|
236
|
-
- 0
|
237
199
|
version: "0"
|
238
200
|
type: :development
|
239
201
|
prerelease: false
|
@@ -245,8 +207,6 @@ dependencies:
|
|
245
207
|
requirements:
|
246
208
|
- - ">="
|
247
209
|
- !ruby/object:Gem::Version
|
248
|
-
segments:
|
249
|
-
- 0
|
250
210
|
version: "0"
|
251
211
|
type: :development
|
252
212
|
prerelease: false
|
@@ -258,8 +218,6 @@ dependencies:
|
|
258
218
|
requirements:
|
259
219
|
- - ">="
|
260
220
|
- !ruby/object:Gem::Version
|
261
|
-
segments:
|
262
|
-
- 0
|
263
221
|
version: "0"
|
264
222
|
type: :development
|
265
223
|
prerelease: false
|
@@ -271,8 +229,6 @@ dependencies:
|
|
271
229
|
requirements:
|
272
230
|
- - ">="
|
273
231
|
- !ruby/object:Gem::Version
|
274
|
-
segments:
|
275
|
-
- 0
|
276
232
|
version: "0"
|
277
233
|
type: :development
|
278
234
|
prerelease: false
|
@@ -284,8 +240,6 @@ dependencies:
|
|
284
240
|
requirements:
|
285
241
|
- - ">="
|
286
242
|
- !ruby/object:Gem::Version
|
287
|
-
segments:
|
288
|
-
- 0
|
289
243
|
version: "0"
|
290
244
|
type: :development
|
291
245
|
prerelease: false
|
@@ -297,8 +251,6 @@ dependencies:
|
|
297
251
|
requirements:
|
298
252
|
- - ">="
|
299
253
|
- !ruby/object:Gem::Version
|
300
|
-
segments:
|
301
|
-
- 0
|
302
254
|
version: "0"
|
303
255
|
type: :development
|
304
256
|
prerelease: false
|
@@ -310,8 +262,6 @@ dependencies:
|
|
310
262
|
requirements:
|
311
263
|
- - ">="
|
312
264
|
- !ruby/object:Gem::Version
|
313
|
-
segments:
|
314
|
-
- 0
|
315
265
|
version: "0"
|
316
266
|
type: :development
|
317
267
|
prerelease: false
|
@@ -323,8 +273,6 @@ dependencies:
|
|
323
273
|
requirements:
|
324
274
|
- - ">="
|
325
275
|
- !ruby/object:Gem::Version
|
326
|
-
segments:
|
327
|
-
- 0
|
328
276
|
version: "0"
|
329
277
|
type: :development
|
330
278
|
prerelease: false
|
@@ -336,8 +284,6 @@ dependencies:
|
|
336
284
|
requirements:
|
337
285
|
- - ">="
|
338
286
|
- !ruby/object:Gem::Version
|
339
|
-
segments:
|
340
|
-
- 0
|
341
287
|
version: "0"
|
342
288
|
type: :development
|
343
289
|
prerelease: false
|
@@ -349,8 +295,6 @@ dependencies:
|
|
349
295
|
requirements:
|
350
296
|
- - ">="
|
351
297
|
- !ruby/object:Gem::Version
|
352
|
-
segments:
|
353
|
-
- 0
|
354
298
|
version: "0"
|
355
299
|
type: :development
|
356
300
|
prerelease: false
|
@@ -362,8 +306,6 @@ dependencies:
|
|
362
306
|
requirements:
|
363
307
|
- - ">="
|
364
308
|
- !ruby/object:Gem::Version
|
365
|
-
segments:
|
366
|
-
- 0
|
367
309
|
version: "0"
|
368
310
|
type: :development
|
369
311
|
prerelease: false
|
@@ -375,8 +317,6 @@ dependencies:
|
|
375
317
|
requirements:
|
376
318
|
- - ">="
|
377
319
|
- !ruby/object:Gem::Version
|
378
|
-
segments:
|
379
|
-
- 0
|
380
320
|
version: "0"
|
381
321
|
type: :development
|
382
322
|
prerelease: false
|
@@ -388,25 +328,98 @@ dependencies:
|
|
388
328
|
requirements:
|
389
329
|
- - ">="
|
390
330
|
- !ruby/object:Gem::Version
|
391
|
-
segments:
|
392
|
-
- 0
|
393
331
|
version: "0"
|
394
332
|
type: :development
|
395
333
|
prerelease: false
|
396
334
|
version_requirements: *id029
|
397
335
|
- !ruby/object:Gem::Dependency
|
398
|
-
name:
|
336
|
+
name: bundler
|
399
337
|
requirement: &id030 !ruby/object:Gem::Requirement
|
400
338
|
none: false
|
401
339
|
requirements:
|
402
340
|
- - ">="
|
403
341
|
- !ruby/object:Gem::Version
|
404
|
-
segments:
|
405
|
-
- 0
|
406
342
|
version: "0"
|
407
|
-
type: :
|
343
|
+
type: :development
|
408
344
|
prerelease: false
|
409
345
|
version_requirements: *id030
|
346
|
+
- !ruby/object:Gem::Dependency
|
347
|
+
name: thoughtbot-shoulda
|
348
|
+
requirement: &id031 !ruby/object:Gem::Requirement
|
349
|
+
none: false
|
350
|
+
requirements:
|
351
|
+
- - ">="
|
352
|
+
- !ruby/object:Gem::Version
|
353
|
+
version: "0"
|
354
|
+
type: :development
|
355
|
+
prerelease: false
|
356
|
+
version_requirements: *id031
|
357
|
+
- !ruby/object:Gem::Dependency
|
358
|
+
name: ansi
|
359
|
+
requirement: &id032 !ruby/object:Gem::Requirement
|
360
|
+
none: false
|
361
|
+
requirements:
|
362
|
+
- - ">="
|
363
|
+
- !ruby/object:Gem::Version
|
364
|
+
version: "0"
|
365
|
+
type: :development
|
366
|
+
prerelease: false
|
367
|
+
version_requirements: *id032
|
368
|
+
- !ruby/object:Gem::Dependency
|
369
|
+
name: jeweler
|
370
|
+
requirement: &id033 !ruby/object:Gem::Requirement
|
371
|
+
none: false
|
372
|
+
requirements:
|
373
|
+
- - ">="
|
374
|
+
- !ruby/object:Gem::Version
|
375
|
+
version: "0"
|
376
|
+
type: :development
|
377
|
+
prerelease: false
|
378
|
+
version_requirements: *id033
|
379
|
+
- !ruby/object:Gem::Dependency
|
380
|
+
name: turn
|
381
|
+
requirement: &id034 !ruby/object:Gem::Requirement
|
382
|
+
none: false
|
383
|
+
requirements:
|
384
|
+
- - ">="
|
385
|
+
- !ruby/object:Gem::Version
|
386
|
+
version: "0"
|
387
|
+
type: :development
|
388
|
+
prerelease: false
|
389
|
+
version_requirements: *id034
|
390
|
+
- !ruby/object:Gem::Dependency
|
391
|
+
name: sqlite3-ruby
|
392
|
+
requirement: &id035 !ruby/object:Gem::Requirement
|
393
|
+
none: false
|
394
|
+
requirements:
|
395
|
+
- - ">="
|
396
|
+
- !ruby/object:Gem::Version
|
397
|
+
version: "0"
|
398
|
+
type: :development
|
399
|
+
prerelease: false
|
400
|
+
version_requirements: *id035
|
401
|
+
- !ruby/object:Gem::Dependency
|
402
|
+
name: simplecov
|
403
|
+
requirement: &id036 !ruby/object:Gem::Requirement
|
404
|
+
none: false
|
405
|
+
requirements:
|
406
|
+
- - ">="
|
407
|
+
- !ruby/object:Gem::Version
|
408
|
+
version: "0"
|
409
|
+
type: :development
|
410
|
+
prerelease: false
|
411
|
+
version_requirements: *id036
|
412
|
+
- !ruby/object:Gem::Dependency
|
413
|
+
name: rails
|
414
|
+
requirement: &id037 !ruby/object:Gem::Requirement
|
415
|
+
none: false
|
416
|
+
requirements:
|
417
|
+
- - ">="
|
418
|
+
- !ruby/object:Gem::Version
|
419
|
+
version: "0"
|
420
|
+
type: :runtime
|
421
|
+
prerelease: false
|
422
|
+
version_requirements: *id037
|
410
423
|
description: Migrant gives you a super-clean DSL to describe your ActiveRecord models (somewhat similar to DataMapper) and generates all your migrations for you so you can spend more time coding the stuff that counts!
|
411
424
|
email: 101pascal@gmail.com
|
412
425
|
executables: []
|
@@ -506,7 +519,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
506
519
|
requirements:
|
507
520
|
- - ">="
|
508
521
|
- !ruby/object:Gem::Version
|
509
|
-
hash:
|
522
|
+
hash: 645598675
|
510
523
|
segments:
|
511
524
|
- 0
|
512
525
|
version: "0"
|
@@ -515,13 +528,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
515
528
|
requirements:
|
516
529
|
- - ">="
|
517
530
|
- !ruby/object:Gem::Version
|
518
|
-
segments:
|
519
|
-
- 0
|
520
531
|
version: "0"
|
521
532
|
requirements: []
|
522
533
|
|
523
534
|
rubyforge_project:
|
524
|
-
rubygems_version: 1.
|
535
|
+
rubygems_version: 1.5.2
|
525
536
|
signing_key:
|
526
537
|
specification_version: 3
|
527
538
|
summary: All the fun of ActiveRecord, without writing your migrations, and a dash of mocking.
|