activerecord 3.0.9 → 3.0.10.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activerecord might be problematic. Click here for more details.

data/CHANGELOG CHANGED
@@ -1,4 +1,24 @@
1
- *Rails 3.0.8 (unreleased)*
1
+ * Rails 3.0.10 (unreleased)
2
+
3
+ * Magic encoding comment added to schema.rb files
4
+
5
+ * schema.rb is written as UTF-8 by default.
6
+
7
+ * Ensuring an established connection when running `rake db:schema:dump`
8
+
9
+ * Association conditions will not clobber join conditions.
10
+
11
+ * Destroying a record will destroy the HABTM record before destroying itself.
12
+ GH #402.
13
+
14
+ * Make `ActiveRecord::Batches#find_each` to not return `self`.
15
+
16
+ * Update `table_exists?` in PG to to always use current search_path or schema
17
+ if explictly set.
18
+
19
+ *Rails 3.0.9 (June 16, 2011)*
20
+
21
+ *Rails 3.0.8 (June 7, 2011)*
2
22
 
3
23
  * Fix various problems with using :primary_key and :foreign_key options in conjunction with
4
24
  :through associations. [Jon Leighton]
@@ -1411,7 +1411,7 @@ module ActiveRecord
1411
1411
  reflection = create_has_and_belongs_to_many_reflection(association_id, options, &extension)
1412
1412
  collection_accessor_methods(reflection, HasAndBelongsToManyAssociation)
1413
1413
 
1414
- configure_after_destroy_method_for_has_and_belongs_to_many(reflection)
1414
+ configure_destroy_hook_for_has_and_belongs_to_many(reflection)
1415
1415
 
1416
1416
  add_association_callbacks(reflection.name, options)
1417
1417
  end
@@ -1705,15 +1705,16 @@ module ActiveRecord
1705
1705
  end
1706
1706
  end
1707
1707
 
1708
- def configure_after_destroy_method_for_has_and_belongs_to_many(reflection)
1709
- method_name = :"has_and_belongs_to_many_after_destroy_for_#{reflection.name}"
1710
- class_eval <<-eoruby, __FILE__, __LINE__ + 1
1711
- def #{method_name}
1712
- association = #{reflection.name}
1713
- association.delete_all if association
1714
- end
1715
- eoruby
1716
- after_destroy method_name
1708
+ def configure_destroy_hook_for_has_and_belongs_to_many(reflection)
1709
+ include(Module.new {
1710
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
1711
+ def destroy_associations
1712
+ association = #{reflection.name}
1713
+ association.delete_all if association
1714
+ super
1715
+ end
1716
+ RUBY
1717
+ })
1717
1718
  end
1718
1719
 
1719
1720
  def delete_all_has_many_dependencies(record, reflection_name, association_class, dependent_conditions)
@@ -2144,6 +2145,7 @@ module ActiveRecord
2144
2145
  parent_table = Arel::Table.new(parent.table_name, :as => parent.aliased_table_name,
2145
2146
  :engine => arel_engine,
2146
2147
  :columns => parent.active_record.columns)
2148
+ as_conditions = reflection.options[:conditions] && process_conditions(reflection.options[:conditions], aliased_table_name)
2147
2149
 
2148
2150
  @join = case reflection.macro
2149
2151
  when :has_and_belongs_to_many
@@ -2153,11 +2155,12 @@ module ActiveRecord
2153
2155
 
2154
2156
  [
2155
2157
  join_table[fk].eq(parent_table[reflection.active_record.primary_key]),
2156
- aliased_table[klass.primary_key].eq(join_table[klass_fk])
2158
+ [aliased_table[klass.primary_key].eq(join_table[klass_fk]), as_conditions].reject{ |x| x.blank? }
2157
2159
  ]
2158
2160
  when :has_many, :has_one
2159
2161
  if reflection.options[:through]
2160
2162
  join_table = Arel::Table.new(through_reflection.klass.table_name, :as => aliased_join_table_name, :engine => arel_engine)
2163
+ jt_as_conditions = through_reflection.options[:conditions] && process_conditions(through_reflection.options[:conditions], aliased_table_name)
2161
2164
  jt_as_extra = jt_source_extra = jt_sti_extra = nil
2162
2165
  first_key = second_key = as_extra = nil
2163
2166
 
@@ -2198,19 +2201,19 @@ module ActiveRecord
2198
2201
  end
2199
2202
 
2200
2203
  [
2201
- [parent_table[jt_primary_key].eq(join_table[jt_foreign_key]), jt_as_extra, jt_source_extra, jt_sti_extra].reject{|x| x.blank? },
2202
- [aliased_table[first_key].eq(join_table[second_key]), as_extra].reject{ |x| x.blank? }
2204
+ [parent_table[jt_primary_key].eq(join_table[jt_foreign_key]), jt_as_extra, jt_source_extra, jt_sti_extra, jt_as_conditions].reject{|x| x.blank? },
2205
+ [aliased_table[first_key].eq(join_table[second_key]), as_extra, as_conditions].reject{ |x| x.blank? }
2203
2206
  ]
2204
2207
  elsif reflection.options[:as]
2205
2208
  id_rel = aliased_table["#{reflection.options[:as]}_id"].eq(parent_table[parent.primary_key])
2206
2209
  type_rel = aliased_table["#{reflection.options[:as]}_type"].eq(parent.active_record.base_class.name)
2207
- [id_rel, type_rel]
2210
+ [id_rel, type_rel, as_conditions].reject{ |x| x.blank?}
2208
2211
  else
2209
2212
  foreign_key = options[:foreign_key] || reflection.active_record.name.foreign_key
2210
- [aliased_table[foreign_key].eq(parent_table[reflection.options[:primary_key] || parent.primary_key])]
2213
+ [aliased_table[foreign_key].eq(parent_table[reflection.options[:primary_key] || parent.primary_key]), as_conditions].reject{ |x| x.blank? }
2211
2214
  end
2212
2215
  when :belongs_to
2213
- [aliased_table[options[:primary_key] || reflection.klass.primary_key].eq(parent_table[options[:foreign_key] || reflection.primary_key_name])]
2216
+ [aliased_table[options[:primary_key] || reflection.klass.primary_key].eq(parent_table[options[:foreign_key] || reflection.primary_key_name]), as_conditions].reject{ |x| x.blank? }
2214
2217
  end
2215
2218
 
2216
2219
  unless klass.descends_from_active_record?
@@ -2221,12 +2224,6 @@ module ActiveRecord
2221
2224
  @join << sti_condition
2222
2225
  end
2223
2226
 
2224
- [through_reflection, reflection].each do |ref|
2225
- if ref && ref.options[:conditions]
2226
- @join << process_conditions(ref.options[:conditions], aliased_table_name)
2227
- end
2228
- end
2229
-
2230
2227
  @join
2231
2228
  end
2232
2229
 
@@ -75,7 +75,7 @@ module ActiveRecord
75
75
  end
76
76
 
77
77
  def association_class
78
- @owner[@reflection.options[:foreign_type]] ? @owner[@reflection.options[:foreign_type]].constantize : nil
78
+ @owner[@reflection.options[:foreign_type]].present? ? @owner[@reflection.options[:foreign_type]].constantize : nil
79
79
  end
80
80
  end
81
81
  end
@@ -1497,7 +1497,8 @@ MSG
1497
1497
  when new_record?
1498
1498
  "#{self.class.model_name.cache_key}/new"
1499
1499
  when timestamp = self[:updated_at]
1500
- "#{self.class.model_name.cache_key}/#{id}-#{timestamp.to_s(:number)}"
1500
+ timestamp = timestamp.utc.to_s(:number)
1501
+ "#{self.class.model_name.cache_key}/#{id}-#{timestamp}"
1501
1502
  else
1502
1503
  "#{self.class.model_name.cache_key}/#{id}"
1503
1504
  end
@@ -262,7 +262,7 @@ module ActiveRecord
262
262
 
263
263
  def deprecated_callback_method(symbol) #:nodoc:
264
264
  if respond_to?(symbol, true)
265
- ActiveSupport::Deprecation.warn("Overwriting #{symbol} in your models has been deprecated, please use Base##{symbol} :method_name instead")
265
+ ActiveSupport::Deprecation.warn("Overwriting #{symbol} in your models has been deprecated, please use Base.#{symbol} :method_name instead")
266
266
  send(symbol)
267
267
  end
268
268
  end
@@ -636,7 +636,7 @@ module ActiveRecord
636
636
  SELECT COUNT(*)
637
637
  FROM pg_tables
638
638
  WHERE tablename = '#{table.gsub(/(^"|"$)/,'')}'
639
- #{schema ? "AND schemaname = '#{schema}'" : ''}
639
+ AND schemaname = #{schema ? "'#{schema}'" : "ANY (current_schemas(false))"}
640
640
  SQL
641
641
  end
642
642
 
@@ -79,6 +79,8 @@ module ActiveRecord
79
79
  # Deletes the record in the database and freezes this instance to reflect
80
80
  # that no changes should be made (since they can't be persisted).
81
81
  def destroy
82
+ destroy_associations
83
+
82
84
  if persisted?
83
85
  self.class.unscoped.where(self.class.arel_table[self.class.primary_key].eq(id)).delete_all
84
86
  end
@@ -245,6 +247,11 @@ module ActiveRecord
245
247
  end
246
248
 
247
249
  private
250
+
251
+ # A hook to be overriden by association modules.
252
+ def destroy_associations
253
+ end
254
+
248
255
  def create_or_update
249
256
  raise ReadOnlyRecord if readonly?
250
257
  result = new_record? ? create : update
@@ -35,6 +35,12 @@ namespace :db do
35
35
  create_database(ActiveRecord::Base.configurations[Rails.env])
36
36
  end
37
37
 
38
+ def mysql_creation_options(config)
39
+ @charset = ENV['CHARSET'] || 'utf8'
40
+ @collation = ENV['COLLATION'] || 'utf8_unicode_ci'
41
+ {:charset => (config['charset'] || @charset), :collation => (config['collation'] || @collation)}
42
+ end
43
+
38
44
  def create_database(config)
39
45
  begin
40
46
  if config['adapter'] =~ /sqlite/
@@ -57,15 +63,18 @@ namespace :db do
57
63
  end
58
64
  rescue
59
65
  case config['adapter']
60
- when /mysql/
61
- @charset = ENV['CHARSET'] || 'utf8'
62
- @collation = ENV['COLLATION'] || 'utf8_unicode_ci'
63
- creation_options = {:charset => (config['charset'] || @charset), :collation => (config['collation'] || @collation)}
64
- error_class = config['adapter'] =~ /mysql2/ ? Mysql2::Error : Mysql::Error
66
+ when /^(jdbc)?mysql/
67
+ if config['adapter'] =~ /jdbc/
68
+ #FIXME After Jdbcmysql gives this class
69
+ require 'active_record/railties/jdbcmysql_error'
70
+ error_class = ArJdbcMySQL::Error
71
+ else
72
+ error_class = config['adapter'] =~ /mysql2/ ? Mysql2::Error : Mysql::Error
73
+ end
65
74
  access_denied_error = 1045
66
75
  begin
67
76
  ActiveRecord::Base.establish_connection(config.merge('database' => nil))
68
- ActiveRecord::Base.connection.create_database(config['database'], creation_options)
77
+ ActiveRecord::Base.connection.create_database(config['database'], mysql_creation_options(config))
69
78
  ActiveRecord::Base.establish_connection(config)
70
79
  rescue error_class => sqlerr
71
80
  if sqlerr.errno == access_denied_error
@@ -85,7 +94,7 @@ namespace :db do
85
94
  $stderr.puts "(if you set the charset manually, make sure you have a matching collation)" if config['charset']
86
95
  end
87
96
  end
88
- when 'postgresql'
97
+ when /^(jdbc)?postgresql$/
89
98
  @encoding = config['encoding'] || ENV['CHARSET'] || 'utf8'
90
99
  begin
91
100
  ActiveRecord::Base.establish_connection(config.merge('database' => 'postgres', 'schema_search_path' => 'public'))
@@ -226,13 +235,13 @@ namespace :db do
226
235
  task :charset => :environment do
227
236
  config = ActiveRecord::Base.configurations[Rails.env || 'development']
228
237
  case config['adapter']
229
- when /mysql/
238
+ when /^(jdbc)?mysql/
230
239
  ActiveRecord::Base.establish_connection(config)
231
240
  puts ActiveRecord::Base.connection.charset
232
- when 'postgresql'
241
+ when /^(jdbc)?postgresql$/
233
242
  ActiveRecord::Base.establish_connection(config)
234
243
  puts ActiveRecord::Base.connection.encoding
235
- when 'sqlite3'
244
+ when /^(jdbc)?sqlite/
236
245
  ActiveRecord::Base.establish_connection(config)
237
246
  puts ActiveRecord::Base.connection.encoding
238
247
  else
@@ -244,7 +253,7 @@ namespace :db do
244
253
  task :collation => :environment do
245
254
  config = ActiveRecord::Base.configurations[Rails.env || 'development']
246
255
  case config['adapter']
247
- when /mysql/
256
+ when /^(jdbc)?mysql/
248
257
  ActiveRecord::Base.establish_connection(config)
249
258
  puts ActiveRecord::Base.connection.collation
250
259
  else
@@ -323,7 +332,9 @@ namespace :db do
323
332
  desc "Create a db/schema.rb file that can be portably used against any DB supported by AR"
324
333
  task :dump => :environment do
325
334
  require 'active_record/schema_dumper'
326
- File.open(ENV['SCHEMA'] || "#{Rails.root}/db/schema.rb", "w") do |file|
335
+ filename = ENV['SCHEMA'] || "#{Rails.root}/db/schema.rb"
336
+ File.open(filename, "w:utf-8") do |file|
337
+ ActiveRecord::Base.establish_connection(Rails.env)
327
338
  ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
328
339
  end
329
340
  Rake::Task["db:schema:dump"].reenable
@@ -345,10 +356,10 @@ namespace :db do
345
356
  task :dump => :environment do
346
357
  abcs = ActiveRecord::Base.configurations
347
358
  case abcs[Rails.env]["adapter"]
348
- when /mysql/, "oci", "oracle"
359
+ when /^(jdbc)?mysql/, "oci", "oracle"
349
360
  ActiveRecord::Base.establish_connection(abcs[Rails.env])
350
361
  File.open("#{Rails.root}/db/#{Rails.env}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
351
- when "postgresql"
362
+ when /^(jdbc)?postgresql$/
352
363
  ENV['PGHOST'] = abcs[Rails.env]["host"] if abcs[Rails.env]["host"]
353
364
  ENV['PGPORT'] = abcs[Rails.env]["port"].to_s if abcs[Rails.env]["port"]
354
365
  ENV['PGPASSWORD'] = abcs[Rails.env]["password"].to_s if abcs[Rails.env]["password"]
@@ -358,9 +369,9 @@ namespace :db do
358
369
  end
359
370
  `pg_dump -i -U "#{abcs[Rails.env]["username"]}" -s -x -O -f db/#{Rails.env}_structure.sql #{search_path} #{abcs[Rails.env]["database"]}`
360
371
  raise "Error dumping database" if $?.exitstatus == 1
361
- when "sqlite", "sqlite3"
372
+ when /^(jdbc)?sqlite/
362
373
  dbfile = abcs[Rails.env]["database"] || abcs[Rails.env]["dbfile"]
363
- `#{abcs[Rails.env]["adapter"]} #{dbfile} .schema > db/#{Rails.env}_structure.sql`
374
+ `sqlite3 #{dbfile} .schema > db/#{Rails.env}_structure.sql`
364
375
  when "sqlserver"
365
376
  `scptxfr /s #{abcs[Rails.env]["host"]} /d #{abcs[Rails.env]["database"]} /I /f db\\#{Rails.env}_structure.sql /q /A /r`
366
377
  `scptxfr /s #{abcs[Rails.env]["host"]} /d #{abcs[Rails.env]["database"]} /I /F db\ /q /A /r`
@@ -393,20 +404,20 @@ namespace :db do
393
404
  task :clone_structure => [ "db:structure:dump", "db:test:purge" ] do
394
405
  abcs = ActiveRecord::Base.configurations
395
406
  case abcs["test"]["adapter"]
396
- when /mysql/
407
+ when /^(jdbc)?mysql/
397
408
  ActiveRecord::Base.establish_connection(:test)
398
409
  ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0')
399
410
  IO.readlines("#{Rails.root}/db/#{Rails.env}_structure.sql").join.split("\n\n").each do |table|
400
411
  ActiveRecord::Base.connection.execute(table)
401
412
  end
402
- when "postgresql"
413
+ when /^(jdbc)?postgresql$/
403
414
  ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
404
415
  ENV['PGPORT'] = abcs["test"]["port"].to_s if abcs["test"]["port"]
405
416
  ENV['PGPASSWORD'] = abcs["test"]["password"].to_s if abcs["test"]["password"]
406
417
  `psql -U "#{abcs["test"]["username"]}" -f #{Rails.root}/db/#{Rails.env}_structure.sql #{abcs["test"]["database"]}`
407
- when "sqlite", "sqlite3"
418
+ when /^(jdbc)?sqlite/
408
419
  dbfile = abcs["test"]["database"] || abcs["test"]["dbfile"]
409
- `#{abcs["test"]["adapter"]} #{dbfile} < #{Rails.root}/db/#{Rails.env}_structure.sql`
420
+ `sqlite3 #{dbfile} < #{Rails.root}/db/#{Rails.env}_structure.sql`
410
421
  when "sqlserver"
411
422
  `osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{Rails.env}_structure.sql`
412
423
  when "oci", "oracle"
@@ -427,14 +438,14 @@ namespace :db do
427
438
  task :purge => :environment do
428
439
  abcs = ActiveRecord::Base.configurations
429
440
  case abcs["test"]["adapter"]
430
- when /mysql/
441
+ when /^(jdbc)?mysql/
431
442
  ActiveRecord::Base.establish_connection(:test)
432
- ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"], abcs["test"])
433
- when "postgresql"
443
+ ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"], mysql_creation_options(abcs["test"]))
444
+ when /^(jdbc)?postgresql$/
434
445
  ActiveRecord::Base.clear_active_connections!
435
446
  drop_database(abcs['test'])
436
447
  create_database(abcs['test'])
437
- when "sqlite","sqlite3"
448
+ when /^(jdbc)?sqlite/
438
449
  dbfile = abcs["test"]["database"] || abcs["test"]["dbfile"]
439
450
  File.delete(dbfile) if File.exist?(dbfile)
440
451
  when "sqlserver"
@@ -483,16 +494,16 @@ task 'test:prepare' => 'db:test:prepare'
483
494
 
484
495
  def drop_database(config)
485
496
  case config['adapter']
486
- when /mysql/
497
+ when /^(jdbc)?mysql/
487
498
  ActiveRecord::Base.establish_connection(config)
488
499
  ActiveRecord::Base.connection.drop_database config['database']
489
- when /^sqlite/
500
+ when /^(jdbc)?sqlite/
490
501
  require 'pathname'
491
502
  path = Pathname.new(config['database'])
492
503
  file = path.absolute? ? path.to_s : File.join(Rails.root, path)
493
504
 
494
505
  FileUtils.rm(file)
495
- when 'postgresql'
506
+ when /^(jdbc)?postgresql$/
496
507
  ActiveRecord::Base.establish_connection(config.merge('database' => 'postgres', 'schema_search_path' => 'public'))
497
508
  ActiveRecord::Base.connection.drop_database config['database']
498
509
  end
@@ -0,0 +1,16 @@
1
+ #FIXME Remove if ArJdbcMysql will give.
2
+ module ArJdbcMySQL
3
+ class Error < StandardError
4
+ attr_accessor :error_number, :sql_state
5
+
6
+ def initialize msg
7
+ super
8
+ @error_number = nil
9
+ @sql_state = nil
10
+ end
11
+
12
+ # Mysql gem compatibility
13
+ alias_method :errno, :error_number
14
+ alias_method :error, :message
15
+ end
16
+ end
@@ -20,8 +20,6 @@ module ActiveRecord
20
20
  find_in_batches(options) do |records|
21
21
  records.each { |record| yield record }
22
22
  end
23
-
24
- self
25
23
  end
26
24
 
27
25
  # Yields each batch of records that was found by the find +options+ as
@@ -40,6 +40,10 @@ module ActiveRecord
40
40
  def header(stream)
41
41
  define_params = @version ? ":version => #{@version}" : ""
42
42
 
43
+ if stream.respond_to?(:external_encoding)
44
+ stream.puts "# encoding: #{stream.external_encoding.name}"
45
+ end
46
+
43
47
  stream.puts <<HEADER
44
48
  # This file is auto-generated from the current state of the database. Instead
45
49
  # of editing this file, please use the migrations feature of Active Record to
@@ -2,8 +2,8 @@ module ActiveRecord
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
4
  MINOR = 0
5
- TINY = 9
6
- PRE = nil
5
+ TINY = 10
6
+ PRE = "rc1"
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease:
4
+ prerelease: true
6
5
  segments:
7
6
  - 3
8
7
  - 0
9
- - 9
10
- version: 3.0.9
8
+ - 10
9
+ - rc1
10
+ version: 3.0.10.rc1
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Heinemeier Hansson
@@ -15,49 +15,46 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-16 00:00:00 Z
18
+ date: 2011-08-04 00:00:00 -07:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: activesupport
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
25
  requirements:
26
26
  - - "="
27
27
  - !ruby/object:Gem::Version
28
- hash: 21
29
28
  segments:
30
29
  - 3
31
30
  - 0
32
- - 9
33
- version: 3.0.9
31
+ - 10
32
+ - rc1
33
+ version: 3.0.10.rc1
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activemodel
38
38
  prerelease: false
39
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
40
  requirements:
42
41
  - - "="
43
42
  - !ruby/object:Gem::Version
44
- hash: 21
45
43
  segments:
46
44
  - 3
47
45
  - 0
48
- - 9
49
- version: 3.0.9
46
+ - 10
47
+ - rc1
48
+ version: 3.0.10.rc1
50
49
  type: :runtime
51
50
  version_requirements: *id002
52
51
  - !ruby/object:Gem::Dependency
53
52
  name: arel
54
53
  prerelease: false
55
54
  requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
55
  requirements:
58
56
  - - ~>
59
57
  - !ruby/object:Gem::Version
60
- hash: 27
61
58
  segments:
62
59
  - 2
63
60
  - 0
@@ -69,11 +66,9 @@ dependencies:
69
66
  name: tzinfo
70
67
  prerelease: false
71
68
  requirement: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
69
  requirements:
74
70
  - - ~>
75
71
  - !ruby/object:Gem::Version
76
- hash: 61
77
72
  segments:
78
73
  - 0
79
74
  - 3
@@ -150,6 +145,7 @@ files:
150
145
  - lib/active_record/railtie.rb
151
146
  - lib/active_record/railties/controller_runtime.rb
152
147
  - lib/active_record/railties/databases.rake
148
+ - lib/active_record/railties/jdbcmysql_error.rb
153
149
  - lib/active_record/reflection.rb
154
150
  - lib/active_record/relation/batches.rb
155
151
  - lib/active_record/relation/calculations.rb
@@ -183,6 +179,7 @@ files:
183
179
  - lib/rails/generators/active_record/session_migration/session_migration_generator.rb
184
180
  - lib/rails/generators/active_record/session_migration/templates/migration.rb
185
181
  - lib/rails/generators/active_record.rb
182
+ has_rdoc: true
186
183
  homepage: http://www.rubyonrails.org
187
184
  licenses: []
188
185
 
@@ -193,29 +190,27 @@ rdoc_options:
193
190
  require_paths:
194
191
  - lib
195
192
  required_ruby_version: !ruby/object:Gem::Requirement
196
- none: false
197
193
  requirements:
198
194
  - - ">="
199
195
  - !ruby/object:Gem::Version
200
- hash: 57
201
196
  segments:
202
197
  - 1
203
198
  - 8
204
199
  - 7
205
200
  version: 1.8.7
206
201
  required_rubygems_version: !ruby/object:Gem::Requirement
207
- none: false
208
202
  requirements:
209
- - - ">="
203
+ - - ">"
210
204
  - !ruby/object:Gem::Version
211
- hash: 3
212
205
  segments:
213
- - 0
214
- version: "0"
206
+ - 1
207
+ - 3
208
+ - 1
209
+ version: 1.3.1
215
210
  requirements: []
216
211
 
217
212
  rubyforge_project: activerecord
218
- rubygems_version: 1.8.2
213
+ rubygems_version: 1.3.6
219
214
  signing_key:
220
215
  specification_version: 3
221
216
  summary: Object-relational mapper framework (part of Rails).