migrant 1.2.1 → 1.2.2
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 +1 -15
- data/Rakefile +31 -10
- data/VERSION +1 -1
- data/lib/generators/templates/change_migration.erb +10 -10
- data/lib/generators/templates/create_migration.erb +1 -1
- data/lib/migrant/migration_generator.rb +17 -18
- data/lib/migrant/model_extensions.rb +4 -0
- data/migrant.gemspec +35 -49
- metadata +142 -65
- data/Gemfile.lock +0 -97
data/Gemfile
CHANGED
@@ -1,16 +1,2 @@
|
|
1
1
|
source :gemcutter
|
2
|
-
|
3
|
-
gem "rails", ">= 3.0.0"
|
4
|
-
gem "faker"
|
5
|
-
gem "term-ansicolor"
|
6
|
-
|
7
|
-
group :development do
|
8
|
-
gem "thoughtbot-shoulda"
|
9
|
-
gem "ansi"
|
10
|
-
gem "jeweler"
|
11
|
-
gem "turn"
|
12
|
-
gem "sqlite3"
|
13
|
-
gem "simplecov"
|
14
|
-
gem "terminal-table"
|
15
|
-
gem "term-ansicolor"
|
16
|
-
end
|
2
|
+
gemspec
|
data/Rakefile
CHANGED
@@ -9,17 +9,38 @@ rescue Bundler::BundlerError => e
|
|
9
9
|
end
|
10
10
|
require 'rake'
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
12
|
+
begin
|
13
|
+
require 'jeweler'
|
14
|
+
Jeweler::Tasks.new do |gem|
|
15
|
+
gem.name = "migrant"
|
16
|
+
gem.summary = %Q{All the fun of ActiveRecord, without writing your migrations, and a dash of mocking.}
|
17
|
+
gem.description = %Q{Easier schema management for Rails that compliments your domain model.}
|
18
|
+
gem.email = "101pascal@gmail.com"
|
19
|
+
gem.homepage = "http://github.com/pascalh1011/migrant"
|
20
|
+
gem.authors = ["Pascal Houliston"]
|
21
|
+
gem.version = File.read('VERSION')
|
22
|
+
|
23
|
+
gem.add_runtime_dependency "rails", ">= 3.0.0"
|
24
|
+
gem.add_runtime_dependency "faker"
|
25
|
+
gem.add_runtime_dependency "term-ansicolor"
|
26
|
+
|
27
|
+
gem.add_development_dependency "thoughtbot-shoulda"
|
28
|
+
gem.add_development_dependency "ansi"
|
29
|
+
gem.add_development_dependency "jeweler"
|
30
|
+
gem.add_development_dependency "turn"
|
31
|
+
gem.add_development_dependency "sqlite3"
|
32
|
+
gem.add_development_dependency "simplecov"
|
33
|
+
gem.add_development_dependency "terminal-table"
|
34
|
+
gem.add_development_dependency "term-ansicolor"
|
35
|
+
gem.add_development_dependency "rake", "0.8.7" # Until API gets sorted
|
36
|
+
|
37
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
38
|
+
end
|
39
|
+
Jeweler::GemcutterTasks.new
|
40
|
+
|
41
|
+
rescue LoadError
|
42
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
21
43
|
end
|
22
|
-
Jeweler::RubygemsDotOrgTasks.new
|
23
44
|
|
24
45
|
require 'rake/testtask'
|
25
46
|
Rake::TestTask.new(:test) do |test|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.2
|
@@ -1,19 +1,19 @@
|
|
1
1
|
class <%= @activity.camelize.gsub(/\s/, '') %> < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
|
-
<% @
|
3
|
+
<% @columns[:added].each do |field, options| %>
|
4
4
|
add_column :<%= @table_name %>, :<%= field %>, :<%= options.delete(:type) %><%= (options.blank?)? '': ", "+options.inspect[1..-2] %>
|
5
5
|
<% end -%>
|
6
|
-
<% @
|
6
|
+
<% @columns[:changed].each do |field, options, old_options| %>
|
7
7
|
change_column :<%= @table_name %>, :<%= field %>, :<%= options.delete(:type) %><%= (options.blank?)? '': ", "+options.inspect[1..-2] %>
|
8
8
|
<% end -%>
|
9
|
-
<% @
|
9
|
+
<% @columns[:transferred].each do |source, target| %>
|
10
10
|
puts "-- copy data from :<%= source %> to :<%= target %>"
|
11
11
|
<%= @table_name.classify %>.update_all("<%= target %> = <%= source %>")
|
12
12
|
<% end -%>
|
13
|
-
<% @
|
13
|
+
<% @columns[:renamed].each do |old_name, new_name| %>
|
14
14
|
rename_column :<%= @table_name %>, :<%= old_name %>, :<%= new_name %>
|
15
15
|
<% end -%>
|
16
|
-
<% @
|
16
|
+
<% @columns[:deleted].each do |field, options| %>
|
17
17
|
remove_column :<%= @table_name %>, :<%= field %>
|
18
18
|
<% end -%>
|
19
19
|
<% @indexes.each do |index, options| %>
|
@@ -22,20 +22,20 @@ class <%= @activity.camelize.gsub(/\s/, '') %> < ActiveRecord::Migration
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.down
|
25
|
-
<% @
|
25
|
+
<% @columns[:deleted].each do |field, options| %>
|
26
26
|
add_column :<%= @table_name %>, :<%= field %>, :<%= options.delete(:type) %><%= (options.blank?)? '': ", "+options.inspect[1..-2] %>
|
27
27
|
<% end -%>
|
28
|
-
<% @
|
28
|
+
<% @columns[:renamed].each do |old_name, new_name| %>
|
29
29
|
rename_column :<%= @table_name %>, :<%= new_name %>, :<%= old_name %>
|
30
30
|
<% end -%>
|
31
|
-
<% @
|
31
|
+
<% @columns[:transferred].each do |source, target| %>
|
32
32
|
puts "-- copy data from :<%= target %> to :<%= source %>"
|
33
33
|
<%= @table_name.classify %>.update_all("<%= source %> = <%= target %>")
|
34
34
|
<% end -%>
|
35
|
-
<% @
|
35
|
+
<% @columns[:changed].each do |field, options, old_options| %>
|
36
36
|
change_column :<%= @table_name %>, :<%= field %>, :<%= old_options.delete(:type) %><%= (old_options.blank?)? '': ", "+old_options.inspect[1..-2] %>
|
37
37
|
<% end -%>
|
38
|
-
<% @
|
38
|
+
<% @columns[:added].each do |field, options| %>
|
39
39
|
remove_column :<%= @table_name %>, :<%= field %>
|
40
40
|
<% end -%>
|
41
41
|
end
|
@@ -2,7 +2,7 @@ class <%= @activity.camelize.gsub(/\s/, '') %> < ActiveRecord::Migration
|
|
2
2
|
def self.up
|
3
3
|
create_table :<%= @table_name %> do |t|
|
4
4
|
<% @columns.each do |field, options| %>
|
5
|
-
t.<%= options.delete(:type) %> :<%= field %><%= (options.blank?)? '': ", "+options.
|
5
|
+
t.<%= options.delete(:type) %> :<%= field %><%= (options.blank?)? '': ", "+options.to_a.collect { |o| ":#{o[0]}=>#{o[1]}" }.sort.join(', ') %>
|
6
6
|
<% end %>
|
7
7
|
end
|
8
8
|
<% @indexes.each do |index| %>
|
@@ -11,7 +11,7 @@ module Migrant
|
|
11
11
|
migrator = ActiveRecord::Migrator.new(:up, migrations_path)
|
12
12
|
|
13
13
|
unless migrator.pending_migrations.blank?
|
14
|
-
|
14
|
+
log "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).", :error
|
15
15
|
return false
|
16
16
|
end
|
17
17
|
|
@@ -20,11 +20,10 @@ module Migrant
|
|
20
20
|
# This needs to be done because Rails normally lazy-loads these files, resulting a blank descendants list of AR::Base
|
21
21
|
Dir["#{Rails.root.to_s}/app/models/**/*.rb"].each { |f| require(f) }
|
22
22
|
|
23
|
-
ActiveRecord::Base.descendants.each do |model|
|
24
|
-
next if model.schema.nil? || !model.schema.requires_migration? # Skips inherited schemas (such as models with STI)
|
23
|
+
ActiveRecord::Base.descendants.select { |model| model.schema && model.schema.requires_migration? }.each do |model|
|
25
24
|
model.reset_column_information # db:migrate doesn't do this
|
26
25
|
@table_name = model.table_name
|
27
|
-
@
|
26
|
+
@columns = Hash[[:changed, :added, :deleted, :renamed, :transferred].collect { |a| [a,[]] }]
|
28
27
|
|
29
28
|
if model.table_exists?
|
30
29
|
# Structure ActiveRecord::Base's column information so we can compare it directly to the schema
|
@@ -47,10 +46,10 @@ module Migrant
|
|
47
46
|
# Removed rows
|
48
47
|
unless model.schema.partial?
|
49
48
|
db_schema.reject { |field_name, options| field_name.to_s == model.primary_key || model.schema.columns.keys.include?(field_name) }.each do |removed_field_name, options|
|
50
|
-
case ask_user("#{model}: '#{removed_field_name}' is no longer in use.", (@
|
49
|
+
case ask_user("#{model}: '#{removed_field_name}' is no longer in use.", (@columns[:added].blank?)? %W{Destroy Ignore} : %W{Destroy Move Ignore})
|
51
50
|
when 'Destroy' then delete_column(removed_field_name, db_schema[removed_field_name])
|
52
51
|
when 'Move' then
|
53
|
-
target = ask_user("Move '#{removed_field_name}' to:", @
|
52
|
+
target = ask_user("Move '#{removed_field_name}' to:", @columns[:added].collect(&:first))
|
54
53
|
target_column = model.schema.columns[target]
|
55
54
|
begin
|
56
55
|
target_column.structure_changes_from(db_schema[removed_field_name])
|
@@ -63,11 +62,11 @@ module Migrant
|
|
63
62
|
end
|
64
63
|
end
|
65
64
|
end
|
66
|
-
destroyed_columns = @
|
65
|
+
destroyed_columns = @columns[:deleted].reject { |field, options| @columns[:transferred].collect(&:first).include?(field) }
|
67
66
|
unless destroyed_columns.blank?
|
68
67
|
if ask_user("#{model}: '#{destroyed_columns.collect(&:first).join(', ')}' and associated data will be DESTROYED in all environments. Continue?", %W{Yes No}, true) == 'No'
|
69
68
|
log "Okay, not removing anything for now."
|
70
|
-
@
|
69
|
+
@columns[:deleted] = []
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
@@ -76,14 +75,14 @@ module Migrant
|
|
76
75
|
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) }
|
77
76
|
@indexes = model.schema.indexes.uniq.reject { |index| current_indexes.include?(index) }.collect { |field_name| [field_name, {}] }
|
78
77
|
# Don't spam the user with indexes that columns are being created with
|
79
|
-
@new_indexes = @indexes.reject { |index, options| @
|
78
|
+
@new_indexes = @indexes.reject { |index, options| @columns[:changed].detect { |c| c.first == index } || @columns[:added].detect { |c| c.first == index } }
|
80
79
|
end
|
81
80
|
|
82
|
-
next if @
|
81
|
+
next if @columns[:changed].empty? && @columns[:added].empty? && @columns[:renamed].empty? && @columns[:transferred].empty? && @columns[:deleted].empty? && @indexes.empty? # Nothing to do for this table
|
83
82
|
|
84
83
|
# Example: changed_table_added_something_and_modified_something
|
85
|
-
@activity = 'changed_'+model.table_name+[['added', @
|
86
|
-
['moved', @
|
84
|
+
@activity = 'changed_'+model.table_name+[['added', @columns[:added]], ['modified', @columns[:changed]], ['deleted', destroyed_columns],
|
85
|
+
['moved', @columns[:transferred]], ['renamed', @columns[:renamed]], ['indexed', @new_indexes]].reject { |v| v[1].empty? }.collect { |v| "_#{v[0]}_"+v[1].collect(&:first).join('_') }.join('_and')
|
87
86
|
@activity = @activity.split('_')[0..2].join('_') if @activity.length >= 240 # Most filesystems will raise Errno::ENAMETOOLONG otherwise
|
88
87
|
|
89
88
|
render('change_migration')
|
@@ -109,24 +108,24 @@ module Migrant
|
|
109
108
|
|
110
109
|
private
|
111
110
|
def add_column(name, options)
|
112
|
-
@
|
111
|
+
@columns[:added] << [name, options]
|
113
112
|
end
|
114
113
|
|
115
114
|
def change_column(name, new_schema, old_schema)
|
116
|
-
@
|
115
|
+
@columns[:changed] << [name, new_schema, old_schema]
|
117
116
|
end
|
118
117
|
|
119
118
|
def delete_column(name, current_structure)
|
120
|
-
@
|
119
|
+
@columns[:deleted] << [name, current_structure]
|
121
120
|
end
|
122
121
|
|
123
122
|
def move_column(old_name, new_name, old_schema, new_schema)
|
124
123
|
if new_schema == old_schema
|
125
|
-
@
|
126
|
-
@
|
124
|
+
@columns[:renamed] << [old_name, new_name]
|
125
|
+
@columns[:added].reject! { |a| a.first == new_name } # Don't add the column too
|
127
126
|
else
|
128
127
|
@possible_irreversible_migrations = true
|
129
|
-
@
|
128
|
+
@columns[:transferred] << [old_name, new_name] # Still need to add the column, just transfer the data afterwards
|
130
129
|
delete_column(old_name, old_schema)
|
131
130
|
end
|
132
131
|
end
|
@@ -34,6 +34,8 @@ module Migrant
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def mock(attributes={}, recursive=true)
|
37
|
+
raise NoStructureDefined.new("In order to mock() #{self.to_s}, you need to define a Migrant structure block") unless @schema
|
38
|
+
|
37
39
|
attribs = {}
|
38
40
|
attribs.merge!(self.superclass.mock_attributes(attributes, recursive)) unless self.superclass == ActiveRecord::Base
|
39
41
|
new attribs.merge(mock_attributes(attributes, recursive))
|
@@ -59,5 +61,7 @@ module Migrant
|
|
59
61
|
end
|
60
62
|
end
|
61
63
|
end
|
64
|
+
|
65
|
+
class NoStructureDefined < Exception; end;
|
62
66
|
end
|
63
67
|
|
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 = "1.2.
|
8
|
+
s.version = "1.2.2"
|
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-05-
|
12
|
+
s.date = %q{2011-05-23}
|
13
13
|
s.description = %q{Easier schema management for Rails that compliments your domain model.}
|
14
14
|
s.email = %q{101pascal@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".rvmrc",
|
21
21
|
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
22
|
"LICENSE",
|
24
23
|
"README.rdoc",
|
25
24
|
"Rakefile",
|
@@ -104,57 +103,21 @@ Gem::Specification.new do |s|
|
|
104
103
|
s.require_paths = ["lib"]
|
105
104
|
s.rubygems_version = %q{1.5.2}
|
106
105
|
s.summary = %q{All the fun of ActiveRecord, without writing your migrations, and a dash of mocking.}
|
107
|
-
s.test_files = [
|
108
|
-
"test/additional_models/review.rb",
|
109
|
-
"test/helper.rb",
|
110
|
-
"test/rails_app/app/controllers/application_controller.rb",
|
111
|
-
"test/rails_app/app/helpers/application_helper.rb",
|
112
|
-
"test/rails_app/app/models/business.rb",
|
113
|
-
"test/rails_app/app/models/business_category.rb",
|
114
|
-
"test/rails_app/app/models/category.rb",
|
115
|
-
"test/rails_app/app/models/chameleon.rb",
|
116
|
-
"test/rails_app/app/models/customer.rb",
|
117
|
-
"test/rails_app/app/models/user.rb",
|
118
|
-
"test/rails_app/config/application.rb",
|
119
|
-
"test/rails_app/config/boot.rb",
|
120
|
-
"test/rails_app/config/environment.rb",
|
121
|
-
"test/rails_app/config/environments/development.rb",
|
122
|
-
"test/rails_app/config/environments/production.rb",
|
123
|
-
"test/rails_app/config/environments/test.rb",
|
124
|
-
"test/rails_app/config/initializers/backtrace_silencers.rb",
|
125
|
-
"test/rails_app/config/initializers/inflections.rb",
|
126
|
-
"test/rails_app/config/initializers/mime_types.rb",
|
127
|
-
"test/rails_app/config/initializers/secret_token.rb",
|
128
|
-
"test/rails_app/config/initializers/session_store.rb",
|
129
|
-
"test/rails_app/config/routes.rb",
|
130
|
-
"test/rails_app/db/seeds.rb",
|
131
|
-
"test/rails_app/test/performance/browsing_test.rb",
|
132
|
-
"test/rails_app/test/test_helper.rb",
|
133
|
-
"test/test_data_schema.rb",
|
134
|
-
"test/test_migration_generator.rb",
|
135
|
-
"test/test_validations.rb",
|
136
|
-
"test/test_zzz_performance.rb",
|
137
|
-
"test/verified_output/migrations/added_incompatible_spot_and_deleted_spots.rb",
|
138
|
-
"test/verified_output/migrations/business_id.rb",
|
139
|
-
"test/verified_output/migrations/chameleons_added_new_longer_spots_and_moved_new_spots.rb",
|
140
|
-
"test/verified_output/migrations/create_business_categories.rb",
|
141
|
-
"test/verified_output/migrations/create_businesses.rb",
|
142
|
-
"test/verified_output/migrations/create_categories.rb",
|
143
|
-
"test/verified_output/migrations/create_chameleons.rb",
|
144
|
-
"test/verified_output/migrations/create_reviews.rb",
|
145
|
-
"test/verified_output/migrations/create_users.rb",
|
146
|
-
"test/verified_output/migrations/created_at.rb",
|
147
|
-
"test/verified_output/migrations/deleted_incompatible_spot.rb",
|
148
|
-
"test/verified_output/migrations/deleted_spots.rb",
|
149
|
-
"test/verified_output/migrations/estimated_value_notes.rb",
|
150
|
-
"test/verified_output/migrations/landline.rb",
|
151
|
-
"test/verified_output/migrations/renamed_old_spots.rb"
|
152
|
-
]
|
153
106
|
|
154
107
|
if s.respond_to? :specification_version then
|
155
108
|
s.specification_version = 3
|
156
109
|
|
157
110
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
111
|
+
s.add_runtime_dependency(%q<migrant>, [">= 0"])
|
112
|
+
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
113
|
+
s.add_development_dependency(%q<ansi>, [">= 0"])
|
114
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
115
|
+
s.add_development_dependency(%q<turn>, [">= 0"])
|
116
|
+
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
117
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
118
|
+
s.add_development_dependency(%q<terminal-table>, [">= 0"])
|
119
|
+
s.add_development_dependency(%q<term-ansicolor>, [">= 0"])
|
120
|
+
s.add_development_dependency(%q<rake>, ["= 0.8.7"])
|
158
121
|
s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
|
159
122
|
s.add_runtime_dependency(%q<faker>, [">= 0"])
|
160
123
|
s.add_runtime_dependency(%q<term-ansicolor>, [">= 0"])
|
@@ -166,7 +129,18 @@ Gem::Specification.new do |s|
|
|
166
129
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
167
130
|
s.add_development_dependency(%q<terminal-table>, [">= 0"])
|
168
131
|
s.add_development_dependency(%q<term-ansicolor>, [">= 0"])
|
132
|
+
s.add_development_dependency(%q<rake>, ["= 0.8.7"])
|
169
133
|
else
|
134
|
+
s.add_dependency(%q<migrant>, [">= 0"])
|
135
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
136
|
+
s.add_dependency(%q<ansi>, [">= 0"])
|
137
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
138
|
+
s.add_dependency(%q<turn>, [">= 0"])
|
139
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
140
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
141
|
+
s.add_dependency(%q<terminal-table>, [">= 0"])
|
142
|
+
s.add_dependency(%q<term-ansicolor>, [">= 0"])
|
143
|
+
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
170
144
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
171
145
|
s.add_dependency(%q<faker>, [">= 0"])
|
172
146
|
s.add_dependency(%q<term-ansicolor>, [">= 0"])
|
@@ -178,8 +152,19 @@ Gem::Specification.new do |s|
|
|
178
152
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
179
153
|
s.add_dependency(%q<terminal-table>, [">= 0"])
|
180
154
|
s.add_dependency(%q<term-ansicolor>, [">= 0"])
|
155
|
+
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
181
156
|
end
|
182
157
|
else
|
158
|
+
s.add_dependency(%q<migrant>, [">= 0"])
|
159
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
160
|
+
s.add_dependency(%q<ansi>, [">= 0"])
|
161
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
162
|
+
s.add_dependency(%q<turn>, [">= 0"])
|
163
|
+
s.add_dependency(%q<sqlite3>, [">= 0"])
|
164
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
165
|
+
s.add_dependency(%q<terminal-table>, [">= 0"])
|
166
|
+
s.add_dependency(%q<term-ansicolor>, [">= 0"])
|
167
|
+
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
183
168
|
s.add_dependency(%q<rails>, [">= 3.0.0"])
|
184
169
|
s.add_dependency(%q<faker>, [">= 0"])
|
185
170
|
s.add_dependency(%q<term-ansicolor>, [">= 0"])
|
@@ -191,6 +176,7 @@ Gem::Specification.new do |s|
|
|
191
176
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
192
177
|
s.add_dependency(%q<terminal-table>, [">= 0"])
|
193
178
|
s.add_dependency(%q<term-ansicolor>, [">= 0"])
|
179
|
+
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
194
180
|
end
|
195
181
|
end
|
196
182
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: migrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.2.
|
5
|
+
version: 1.2.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Pascal Houliston
|
@@ -10,44 +10,44 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-23 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
17
|
+
name: migrant
|
18
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: "0"
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: thoughtbot-shoulda
|
29
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: "0"
|
35
|
-
type: :
|
35
|
+
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: *id002
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
39
|
+
name: ansi
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: "0"
|
46
|
-
type: :
|
46
|
+
type: :development
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
50
|
+
name: jeweler
|
51
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
61
|
+
name: turn
|
62
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: *id005
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: sqlite3
|
73
73
|
requirement: &id006 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
@@ -80,7 +80,7 @@ dependencies:
|
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: *id006
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
83
|
+
name: simplecov
|
84
84
|
requirement: &id007 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
@@ -91,7 +91,7 @@ dependencies:
|
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: *id007
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
94
|
+
name: terminal-table
|
95
95
|
requirement: &id008 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
@@ -102,7 +102,7 @@ dependencies:
|
|
102
102
|
prerelease: false
|
103
103
|
version_requirements: *id008
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
105
|
+
name: term-ansicolor
|
106
106
|
requirement: &id009 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
@@ -113,8 +113,52 @@ dependencies:
|
|
113
113
|
prerelease: false
|
114
114
|
version_requirements: *id009
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
116
|
+
name: rake
|
117
117
|
requirement: &id010 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - "="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 0.8.7
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: *id010
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rails
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 3.0.0
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: *id011
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: faker
|
139
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: "0"
|
145
|
+
type: :runtime
|
146
|
+
prerelease: false
|
147
|
+
version_requirements: *id012
|
148
|
+
- !ruby/object:Gem::Dependency
|
149
|
+
name: term-ansicolor
|
150
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: "0"
|
156
|
+
type: :runtime
|
157
|
+
prerelease: false
|
158
|
+
version_requirements: *id013
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: thoughtbot-shoulda
|
161
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
118
162
|
none: false
|
119
163
|
requirements:
|
120
164
|
- - ">="
|
@@ -122,10 +166,76 @@ dependencies:
|
|
122
166
|
version: "0"
|
123
167
|
type: :development
|
124
168
|
prerelease: false
|
125
|
-
version_requirements: *
|
169
|
+
version_requirements: *id014
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: ansi
|
172
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: "0"
|
178
|
+
type: :development
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: *id015
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: jeweler
|
183
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: "0"
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: *id016
|
192
|
+
- !ruby/object:Gem::Dependency
|
193
|
+
name: turn
|
194
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
195
|
+
none: false
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: "0"
|
200
|
+
type: :development
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: *id017
|
203
|
+
- !ruby/object:Gem::Dependency
|
204
|
+
name: sqlite3
|
205
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
206
|
+
none: false
|
207
|
+
requirements:
|
208
|
+
- - ">="
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: "0"
|
211
|
+
type: :development
|
212
|
+
prerelease: false
|
213
|
+
version_requirements: *id018
|
214
|
+
- !ruby/object:Gem::Dependency
|
215
|
+
name: simplecov
|
216
|
+
requirement: &id019 !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ">="
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: "0"
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: *id019
|
225
|
+
- !ruby/object:Gem::Dependency
|
226
|
+
name: terminal-table
|
227
|
+
requirement: &id020 !ruby/object:Gem::Requirement
|
228
|
+
none: false
|
229
|
+
requirements:
|
230
|
+
- - ">="
|
231
|
+
- !ruby/object:Gem::Version
|
232
|
+
version: "0"
|
233
|
+
type: :development
|
234
|
+
prerelease: false
|
235
|
+
version_requirements: *id020
|
126
236
|
- !ruby/object:Gem::Dependency
|
127
237
|
name: term-ansicolor
|
128
|
-
requirement: &
|
238
|
+
requirement: &id021 !ruby/object:Gem::Requirement
|
129
239
|
none: false
|
130
240
|
requirements:
|
131
241
|
- - ">="
|
@@ -133,7 +243,18 @@ dependencies:
|
|
133
243
|
version: "0"
|
134
244
|
type: :development
|
135
245
|
prerelease: false
|
136
|
-
version_requirements: *
|
246
|
+
version_requirements: *id021
|
247
|
+
- !ruby/object:Gem::Dependency
|
248
|
+
name: rake
|
249
|
+
requirement: &id022 !ruby/object:Gem::Requirement
|
250
|
+
none: false
|
251
|
+
requirements:
|
252
|
+
- - "="
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: 0.8.7
|
255
|
+
type: :development
|
256
|
+
prerelease: false
|
257
|
+
version_requirements: *id022
|
137
258
|
description: Easier schema management for Rails that compliments your domain model.
|
138
259
|
email: 101pascal@gmail.com
|
139
260
|
executables: []
|
@@ -146,7 +267,6 @@ extra_rdoc_files:
|
|
146
267
|
files:
|
147
268
|
- .rvmrc
|
148
269
|
- Gemfile
|
149
|
-
- Gemfile.lock
|
150
270
|
- LICENSE
|
151
271
|
- README.rdoc
|
152
272
|
- Rakefile
|
@@ -240,7 +360,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
240
360
|
requirements:
|
241
361
|
- - ">="
|
242
362
|
- !ruby/object:Gem::Version
|
243
|
-
hash:
|
363
|
+
hash: 877019265
|
244
364
|
segments:
|
245
365
|
- 0
|
246
366
|
version: "0"
|
@@ -257,48 +377,5 @@ rubygems_version: 1.5.2
|
|
257
377
|
signing_key:
|
258
378
|
specification_version: 3
|
259
379
|
summary: All the fun of ActiveRecord, without writing your migrations, and a dash of mocking.
|
260
|
-
test_files:
|
261
|
-
|
262
|
-
- test/helper.rb
|
263
|
-
- test/rails_app/app/controllers/application_controller.rb
|
264
|
-
- test/rails_app/app/helpers/application_helper.rb
|
265
|
-
- test/rails_app/app/models/business.rb
|
266
|
-
- test/rails_app/app/models/business_category.rb
|
267
|
-
- test/rails_app/app/models/category.rb
|
268
|
-
- test/rails_app/app/models/chameleon.rb
|
269
|
-
- test/rails_app/app/models/customer.rb
|
270
|
-
- test/rails_app/app/models/user.rb
|
271
|
-
- test/rails_app/config/application.rb
|
272
|
-
- test/rails_app/config/boot.rb
|
273
|
-
- test/rails_app/config/environment.rb
|
274
|
-
- test/rails_app/config/environments/development.rb
|
275
|
-
- test/rails_app/config/environments/production.rb
|
276
|
-
- test/rails_app/config/environments/test.rb
|
277
|
-
- test/rails_app/config/initializers/backtrace_silencers.rb
|
278
|
-
- test/rails_app/config/initializers/inflections.rb
|
279
|
-
- test/rails_app/config/initializers/mime_types.rb
|
280
|
-
- test/rails_app/config/initializers/secret_token.rb
|
281
|
-
- test/rails_app/config/initializers/session_store.rb
|
282
|
-
- test/rails_app/config/routes.rb
|
283
|
-
- test/rails_app/db/seeds.rb
|
284
|
-
- test/rails_app/test/performance/browsing_test.rb
|
285
|
-
- test/rails_app/test/test_helper.rb
|
286
|
-
- test/test_data_schema.rb
|
287
|
-
- test/test_migration_generator.rb
|
288
|
-
- test/test_validations.rb
|
289
|
-
- test/test_zzz_performance.rb
|
290
|
-
- test/verified_output/migrations/added_incompatible_spot_and_deleted_spots.rb
|
291
|
-
- test/verified_output/migrations/business_id.rb
|
292
|
-
- test/verified_output/migrations/chameleons_added_new_longer_spots_and_moved_new_spots.rb
|
293
|
-
- test/verified_output/migrations/create_business_categories.rb
|
294
|
-
- test/verified_output/migrations/create_businesses.rb
|
295
|
-
- test/verified_output/migrations/create_categories.rb
|
296
|
-
- test/verified_output/migrations/create_chameleons.rb
|
297
|
-
- test/verified_output/migrations/create_reviews.rb
|
298
|
-
- test/verified_output/migrations/create_users.rb
|
299
|
-
- test/verified_output/migrations/created_at.rb
|
300
|
-
- test/verified_output/migrations/deleted_incompatible_spot.rb
|
301
|
-
- test/verified_output/migrations/deleted_spots.rb
|
302
|
-
- test/verified_output/migrations/estimated_value_notes.rb
|
303
|
-
- test/verified_output/migrations/landline.rb
|
304
|
-
- test/verified_output/migrations/renamed_old_spots.rb
|
380
|
+
test_files: []
|
381
|
+
|
data/Gemfile.lock
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
abstract (1.0.0)
|
5
|
-
actionmailer (3.0.5)
|
6
|
-
actionpack (= 3.0.5)
|
7
|
-
mail (~> 2.2.15)
|
8
|
-
actionpack (3.0.5)
|
9
|
-
activemodel (= 3.0.5)
|
10
|
-
activesupport (= 3.0.5)
|
11
|
-
builder (~> 2.1.2)
|
12
|
-
erubis (~> 2.6.6)
|
13
|
-
i18n (~> 0.4)
|
14
|
-
rack (~> 1.2.1)
|
15
|
-
rack-mount (~> 0.6.13)
|
16
|
-
rack-test (~> 0.5.7)
|
17
|
-
tzinfo (~> 0.3.23)
|
18
|
-
activemodel (3.0.5)
|
19
|
-
activesupport (= 3.0.5)
|
20
|
-
builder (~> 2.1.2)
|
21
|
-
i18n (~> 0.4)
|
22
|
-
activerecord (3.0.5)
|
23
|
-
activemodel (= 3.0.5)
|
24
|
-
activesupport (= 3.0.5)
|
25
|
-
arel (~> 2.0.2)
|
26
|
-
tzinfo (~> 0.3.23)
|
27
|
-
activeresource (3.0.5)
|
28
|
-
activemodel (= 3.0.5)
|
29
|
-
activesupport (= 3.0.5)
|
30
|
-
activesupport (3.0.5)
|
31
|
-
ansi (1.2.2)
|
32
|
-
arel (2.0.9)
|
33
|
-
builder (2.1.2)
|
34
|
-
erubis (2.6.6)
|
35
|
-
abstract (>= 1.0.0)
|
36
|
-
faker (0.9.5)
|
37
|
-
i18n (~> 0.4)
|
38
|
-
git (1.2.5)
|
39
|
-
i18n (0.5.0)
|
40
|
-
jeweler (1.5.2)
|
41
|
-
bundler (~> 1.0.0)
|
42
|
-
git (>= 1.2.5)
|
43
|
-
rake
|
44
|
-
mail (2.2.15)
|
45
|
-
activesupport (>= 2.3.6)
|
46
|
-
i18n (>= 0.4.0)
|
47
|
-
mime-types (~> 1.16)
|
48
|
-
treetop (~> 1.4.8)
|
49
|
-
mime-types (1.16)
|
50
|
-
polyglot (0.3.1)
|
51
|
-
rack (1.2.2)
|
52
|
-
rack-mount (0.6.14)
|
53
|
-
rack (>= 1.0.0)
|
54
|
-
rack-test (0.5.7)
|
55
|
-
rack (>= 1.0)
|
56
|
-
rails (3.0.5)
|
57
|
-
actionmailer (= 3.0.5)
|
58
|
-
actionpack (= 3.0.5)
|
59
|
-
activerecord (= 3.0.5)
|
60
|
-
activeresource (= 3.0.5)
|
61
|
-
activesupport (= 3.0.5)
|
62
|
-
bundler (~> 1.0)
|
63
|
-
railties (= 3.0.5)
|
64
|
-
railties (3.0.5)
|
65
|
-
actionpack (= 3.0.5)
|
66
|
-
activesupport (= 3.0.5)
|
67
|
-
rake (>= 0.8.7)
|
68
|
-
thor (~> 0.14.4)
|
69
|
-
rake (0.8.7)
|
70
|
-
simplecov (0.4.0)
|
71
|
-
simplecov-html (~> 0.4.0)
|
72
|
-
simplecov-html (0.4.3)
|
73
|
-
sqlite3 (1.3.3)
|
74
|
-
term-ansicolor (1.0.5)
|
75
|
-
terminal-table (1.4.2)
|
76
|
-
thor (0.14.6)
|
77
|
-
thoughtbot-shoulda (2.11.1)
|
78
|
-
treetop (1.4.9)
|
79
|
-
polyglot (>= 0.3.1)
|
80
|
-
turn (0.8.1)
|
81
|
-
ansi (>= 1.2.2)
|
82
|
-
tzinfo (0.3.25)
|
83
|
-
|
84
|
-
PLATFORMS
|
85
|
-
ruby
|
86
|
-
|
87
|
-
DEPENDENCIES
|
88
|
-
ansi
|
89
|
-
faker
|
90
|
-
jeweler
|
91
|
-
rails (>= 3.0.0)
|
92
|
-
simplecov
|
93
|
-
sqlite3
|
94
|
-
term-ansicolor
|
95
|
-
terminal-table
|
96
|
-
thoughtbot-shoulda
|
97
|
-
turn
|