migrant 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- migrant (0.2.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.3)
13
- actionpack (= 3.0.3)
14
- mail (~> 2.2.9)
15
- actionpack (3.0.3)
16
- activemodel (= 3.0.3)
17
- activesupport (= 3.0.3)
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.6)
23
+ rack-test (~> 0.5.7)
24
24
  tzinfo (~> 0.3.23)
25
- activemodel (3.0.3)
26
- activesupport (= 3.0.3)
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.3)
30
- activemodel (= 3.0.3)
31
- activesupport (= 3.0.3)
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.3)
35
- activemodel (= 3.0.3)
36
- activesupport (= 3.0.3)
37
- activesupport (3.0.3)
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.7)
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.14)
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.3)
62
- actionmailer (= 3.0.3)
63
- actionpack (= 3.0.3)
64
- activerecord (= 3.0.3)
65
- activeresource (= 3.0.3)
66
- activesupport (= 3.0.3)
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.3)
69
- railties (3.0.3)
70
- actionpack (= 3.0.3)
71
- activesupport (= 3.0.3)
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.3.5)
76
- simplecov-html (>= 0.3.7)
77
- simplecov-html (0.3.9)
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)
@@ -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.3
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
- activity = model.table_name+'_modify_fields_'+changes.collect { |field, options| field.to_s }.join('_')
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
+
@@ -20,7 +20,6 @@ module Migrant
20
20
  else
21
21
  self.superclass.structure(&block) # For STI, cascade all fields onto the parent model
22
22
  @schema = InheritedSchema.new(self.superclass.schema)
23
-
24
23
  end
25
24
  end
26
25
 
@@ -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
- Rake::Task['db:migrate'].invoke if Migrant::MigrationGenerator.new.run
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
+
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{migrant}
8
- s.version = "0.2.3"
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-14}
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.3.7}
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 UsersModifyFieldsBusinessId < ActiveRecord::Migration
1
+ class ChangedUsersAddedBusinessId < ActiveRecord::Migration
2
2
  def self.up
3
3
  add_column :users, :business_id, :integer
4
4
  add_index :users, :business_id
@@ -1,4 +1,4 @@
1
- class BusinessesModifyFieldsUpdatedAtCreatedAt < ActiveRecord::Migration
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
@@ -1,4 +1,4 @@
1
- class BusinessesModifyFieldsEstimatedValueNotes < ActiveRecord::Migration
1
+ class ChangedBusinessesAddedEstimatedValueNotes < ActiveRecord::Migration
2
2
  def self.up
3
3
  add_column :businesses, :estimated_value, :float
4
4
  add_column :businesses, :notes, :string
@@ -1,4 +1,4 @@
1
- class BusinessesModifyFieldsLandline < ActiveRecord::Migration
1
+ class ChangedBusinessesModifiedLandline < ActiveRecord::Migration
2
2
  def self.up
3
3
  change_column :businesses, :landline, :text
4
4
  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: false
5
- segments:
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-14 00:00:00 +02:00
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: rails
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: :runtime
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: -1035077551
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.3.7
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.