activerecord 2.3.18 → 3.2.22

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.

Files changed (454) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1014 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.rdoc +222 -0
  5. data/examples/performance.rb +100 -126
  6. data/examples/simple.rb +14 -0
  7. data/lib/active_record/aggregations.rb +93 -99
  8. data/lib/active_record/associations/alias_tracker.rb +76 -0
  9. data/lib/active_record/associations/association.rb +247 -0
  10. data/lib/active_record/associations/association_scope.rb +134 -0
  11. data/lib/active_record/associations/belongs_to_association.rb +54 -61
  12. data/lib/active_record/associations/belongs_to_polymorphic_association.rb +17 -59
  13. data/lib/active_record/associations/builder/association.rb +55 -0
  14. data/lib/active_record/associations/builder/belongs_to.rb +88 -0
  15. data/lib/active_record/associations/builder/collection_association.rb +75 -0
  16. data/lib/active_record/associations/builder/has_and_belongs_to_many.rb +57 -0
  17. data/lib/active_record/associations/builder/has_many.rb +71 -0
  18. data/lib/active_record/associations/builder/has_one.rb +62 -0
  19. data/lib/active_record/associations/builder/singular_association.rb +32 -0
  20. data/lib/active_record/associations/collection_association.rb +580 -0
  21. data/lib/active_record/associations/collection_proxy.rb +133 -0
  22. data/lib/active_record/associations/has_and_belongs_to_many_association.rb +39 -119
  23. data/lib/active_record/associations/has_many_association.rb +60 -79
  24. data/lib/active_record/associations/has_many_through_association.rb +127 -206
  25. data/lib/active_record/associations/has_one_association.rb +55 -114
  26. data/lib/active_record/associations/has_one_through_association.rb +25 -26
  27. data/lib/active_record/associations/join_dependency/join_association.rb +159 -0
  28. data/lib/active_record/associations/join_dependency/join_base.rb +24 -0
  29. data/lib/active_record/associations/join_dependency/join_part.rb +78 -0
  30. data/lib/active_record/associations/join_dependency.rb +214 -0
  31. data/lib/active_record/associations/join_helper.rb +55 -0
  32. data/lib/active_record/associations/preloader/association.rb +125 -0
  33. data/lib/active_record/associations/preloader/belongs_to.rb +17 -0
  34. data/lib/active_record/associations/preloader/collection_association.rb +24 -0
  35. data/lib/active_record/associations/preloader/has_and_belongs_to_many.rb +60 -0
  36. data/lib/active_record/associations/preloader/has_many.rb +17 -0
  37. data/lib/active_record/associations/preloader/has_many_through.rb +15 -0
  38. data/lib/active_record/associations/preloader/has_one.rb +23 -0
  39. data/lib/active_record/associations/preloader/has_one_through.rb +9 -0
  40. data/lib/active_record/associations/preloader/singular_association.rb +21 -0
  41. data/lib/active_record/associations/preloader/through_association.rb +67 -0
  42. data/lib/active_record/associations/preloader.rb +181 -0
  43. data/lib/active_record/associations/singular_association.rb +64 -0
  44. data/lib/active_record/associations/through_association.rb +87 -0
  45. data/lib/active_record/associations.rb +693 -1337
  46. data/lib/active_record/attribute_assignment.rb +221 -0
  47. data/lib/active_record/attribute_methods/before_type_cast.rb +31 -0
  48. data/lib/active_record/attribute_methods/deprecated_underscore_read.rb +32 -0
  49. data/lib/active_record/attribute_methods/dirty.rb +111 -0
  50. data/lib/active_record/attribute_methods/primary_key.rb +114 -0
  51. data/lib/active_record/attribute_methods/query.rb +39 -0
  52. data/lib/active_record/attribute_methods/read.rb +136 -0
  53. data/lib/active_record/attribute_methods/serialization.rb +120 -0
  54. data/lib/active_record/attribute_methods/time_zone_conversion.rb +65 -0
  55. data/lib/active_record/attribute_methods/write.rb +70 -0
  56. data/lib/active_record/attribute_methods.rb +211 -339
  57. data/lib/active_record/autosave_association.rb +179 -149
  58. data/lib/active_record/base.rb +401 -2907
  59. data/lib/active_record/callbacks.rb +91 -176
  60. data/lib/active_record/coders/yaml_column.rb +41 -0
  61. data/lib/active_record/connection_adapters/abstract/connection_pool.rb +236 -119
  62. data/lib/active_record/connection_adapters/abstract/connection_specification.rb +110 -58
  63. data/lib/active_record/connection_adapters/abstract/database_limits.rb +12 -11
  64. data/lib/active_record/connection_adapters/abstract/database_statements.rb +175 -74
  65. data/lib/active_record/connection_adapters/abstract/query_cache.rb +31 -35
  66. data/lib/active_record/connection_adapters/abstract/quoting.rb +71 -21
  67. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +81 -311
  68. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +194 -78
  69. data/lib/active_record/connection_adapters/abstract_adapter.rb +130 -83
  70. data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +676 -0
  71. data/lib/active_record/connection_adapters/column.rb +296 -0
  72. data/lib/active_record/connection_adapters/mysql2_adapter.rb +280 -0
  73. data/lib/active_record/connection_adapters/mysql_adapter.rb +272 -493
  74. data/lib/active_record/connection_adapters/postgresql_adapter.rb +650 -405
  75. data/lib/active_record/connection_adapters/schema_cache.rb +69 -0
  76. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +30 -9
  77. data/lib/active_record/connection_adapters/sqlite_adapter.rb +276 -147
  78. data/lib/active_record/connection_adapters/statement_pool.rb +40 -0
  79. data/lib/active_record/counter_cache.rb +123 -0
  80. data/lib/active_record/dynamic_finder_match.rb +41 -14
  81. data/lib/active_record/dynamic_matchers.rb +84 -0
  82. data/lib/active_record/dynamic_scope_match.rb +13 -15
  83. data/lib/active_record/errors.rb +195 -0
  84. data/lib/active_record/explain.rb +86 -0
  85. data/lib/active_record/explain_subscriber.rb +25 -0
  86. data/lib/active_record/fixtures/file.rb +65 -0
  87. data/lib/active_record/fixtures.rb +695 -770
  88. data/lib/active_record/identity_map.rb +162 -0
  89. data/lib/active_record/inheritance.rb +174 -0
  90. data/lib/active_record/integration.rb +60 -0
  91. data/lib/active_record/locale/en.yml +9 -27
  92. data/lib/active_record/locking/optimistic.rb +76 -73
  93. data/lib/active_record/locking/pessimistic.rb +32 -10
  94. data/lib/active_record/log_subscriber.rb +72 -0
  95. data/lib/active_record/migration/command_recorder.rb +105 -0
  96. data/lib/active_record/migration.rb +415 -205
  97. data/lib/active_record/model_schema.rb +368 -0
  98. data/lib/active_record/nested_attributes.rb +153 -63
  99. data/lib/active_record/observer.rb +27 -103
  100. data/lib/active_record/persistence.rb +376 -0
  101. data/lib/active_record/query_cache.rb +49 -8
  102. data/lib/active_record/querying.rb +58 -0
  103. data/lib/active_record/railtie.rb +131 -0
  104. data/lib/active_record/railties/console_sandbox.rb +6 -0
  105. data/lib/active_record/railties/controller_runtime.rb +49 -0
  106. data/lib/active_record/railties/databases.rake +659 -0
  107. data/lib/active_record/railties/jdbcmysql_error.rb +16 -0
  108. data/lib/active_record/readonly_attributes.rb +26 -0
  109. data/lib/active_record/reflection.rb +269 -120
  110. data/lib/active_record/relation/batches.rb +90 -0
  111. data/lib/active_record/relation/calculations.rb +372 -0
  112. data/lib/active_record/relation/delegation.rb +49 -0
  113. data/lib/active_record/relation/finder_methods.rb +402 -0
  114. data/lib/active_record/relation/predicate_builder.rb +63 -0
  115. data/lib/active_record/relation/query_methods.rb +417 -0
  116. data/lib/active_record/relation/spawn_methods.rb +180 -0
  117. data/lib/active_record/relation.rb +537 -0
  118. data/lib/active_record/result.rb +40 -0
  119. data/lib/active_record/sanitization.rb +194 -0
  120. data/lib/active_record/schema.rb +9 -6
  121. data/lib/active_record/schema_dumper.rb +55 -32
  122. data/lib/active_record/scoping/default.rb +142 -0
  123. data/lib/active_record/scoping/named.rb +200 -0
  124. data/lib/active_record/scoping.rb +152 -0
  125. data/lib/active_record/serialization.rb +8 -91
  126. data/lib/active_record/serializers/xml_serializer.rb +43 -197
  127. data/lib/active_record/session_store.rb +129 -103
  128. data/lib/active_record/store.rb +52 -0
  129. data/lib/active_record/test_case.rb +30 -23
  130. data/lib/active_record/timestamp.rb +95 -52
  131. data/lib/active_record/transactions.rb +212 -66
  132. data/lib/active_record/translation.rb +22 -0
  133. data/lib/active_record/validations/associated.rb +43 -0
  134. data/lib/active_record/validations/uniqueness.rb +180 -0
  135. data/lib/active_record/validations.rb +43 -1106
  136. data/lib/active_record/version.rb +5 -4
  137. data/lib/active_record.rb +121 -48
  138. data/lib/rails/generators/active_record/migration/migration_generator.rb +25 -0
  139. data/lib/rails/generators/active_record/migration/templates/migration.rb +34 -0
  140. data/lib/rails/generators/active_record/migration.rb +15 -0
  141. data/lib/rails/generators/active_record/model/model_generator.rb +47 -0
  142. data/lib/rails/generators/active_record/model/templates/migration.rb +15 -0
  143. data/lib/rails/generators/active_record/model/templates/model.rb +12 -0
  144. data/lib/rails/generators/active_record/model/templates/module.rb +7 -0
  145. data/lib/rails/generators/active_record/observer/observer_generator.rb +15 -0
  146. data/lib/rails/generators/active_record/observer/templates/observer.rb +4 -0
  147. data/lib/rails/generators/active_record/session_migration/session_migration_generator.rb +25 -0
  148. data/lib/rails/generators/active_record/session_migration/templates/migration.rb +12 -0
  149. data/lib/rails/generators/active_record.rb +25 -0
  150. metadata +187 -363
  151. data/CHANGELOG +0 -5904
  152. data/README +0 -351
  153. data/RUNNING_UNIT_TESTS +0 -36
  154. data/Rakefile +0 -268
  155. data/install.rb +0 -30
  156. data/lib/active_record/association_preload.rb +0 -406
  157. data/lib/active_record/associations/association_collection.rb +0 -533
  158. data/lib/active_record/associations/association_proxy.rb +0 -288
  159. data/lib/active_record/batches.rb +0 -85
  160. data/lib/active_record/calculations.rb +0 -321
  161. data/lib/active_record/dirty.rb +0 -183
  162. data/lib/active_record/named_scope.rb +0 -197
  163. data/lib/active_record/serializers/json_serializer.rb +0 -91
  164. data/lib/activerecord.rb +0 -2
  165. data/test/assets/example.log +0 -1
  166. data/test/assets/flowers.jpg +0 -0
  167. data/test/cases/aaa_create_tables_test.rb +0 -24
  168. data/test/cases/active_schema_test_mysql.rb +0 -122
  169. data/test/cases/active_schema_test_postgresql.rb +0 -24
  170. data/test/cases/adapter_test.rb +0 -144
  171. data/test/cases/aggregations_test.rb +0 -167
  172. data/test/cases/ar_schema_test.rb +0 -32
  173. data/test/cases/associations/belongs_to_associations_test.rb +0 -438
  174. data/test/cases/associations/callbacks_test.rb +0 -161
  175. data/test/cases/associations/cascaded_eager_loading_test.rb +0 -131
  176. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +0 -36
  177. data/test/cases/associations/eager_load_nested_include_test.rb +0 -131
  178. data/test/cases/associations/eager_load_nested_polymorphic_include.rb +0 -19
  179. data/test/cases/associations/eager_singularization_test.rb +0 -145
  180. data/test/cases/associations/eager_test.rb +0 -852
  181. data/test/cases/associations/extension_test.rb +0 -62
  182. data/test/cases/associations/habtm_join_table_test.rb +0 -56
  183. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +0 -827
  184. data/test/cases/associations/has_many_associations_test.rb +0 -1273
  185. data/test/cases/associations/has_many_through_associations_test.rb +0 -360
  186. data/test/cases/associations/has_one_associations_test.rb +0 -330
  187. data/test/cases/associations/has_one_through_associations_test.rb +0 -209
  188. data/test/cases/associations/inner_join_association_test.rb +0 -93
  189. data/test/cases/associations/inverse_associations_test.rb +0 -566
  190. data/test/cases/associations/join_model_test.rb +0 -712
  191. data/test/cases/associations_test.rb +0 -282
  192. data/test/cases/attribute_methods_test.rb +0 -305
  193. data/test/cases/autosave_association_test.rb +0 -1218
  194. data/test/cases/base_test.rb +0 -2166
  195. data/test/cases/batches_test.rb +0 -81
  196. data/test/cases/binary_test.rb +0 -30
  197. data/test/cases/calculations_test.rb +0 -360
  198. data/test/cases/callbacks_observers_test.rb +0 -38
  199. data/test/cases/callbacks_test.rb +0 -438
  200. data/test/cases/class_inheritable_attributes_test.rb +0 -32
  201. data/test/cases/column_alias_test.rb +0 -17
  202. data/test/cases/column_definition_test.rb +0 -70
  203. data/test/cases/connection_pool_test.rb +0 -25
  204. data/test/cases/connection_test_firebird.rb +0 -8
  205. data/test/cases/connection_test_mysql.rb +0 -65
  206. data/test/cases/copy_table_test_sqlite.rb +0 -80
  207. data/test/cases/counter_cache_test.rb +0 -84
  208. data/test/cases/database_statements_test.rb +0 -12
  209. data/test/cases/datatype_test_postgresql.rb +0 -204
  210. data/test/cases/date_time_test.rb +0 -37
  211. data/test/cases/default_test_firebird.rb +0 -16
  212. data/test/cases/defaults_test.rb +0 -111
  213. data/test/cases/deprecated_finder_test.rb +0 -30
  214. data/test/cases/dirty_test.rb +0 -316
  215. data/test/cases/finder_respond_to_test.rb +0 -76
  216. data/test/cases/finder_test.rb +0 -1098
  217. data/test/cases/fixtures_test.rb +0 -661
  218. data/test/cases/helper.rb +0 -68
  219. data/test/cases/i18n_test.rb +0 -46
  220. data/test/cases/inheritance_test.rb +0 -262
  221. data/test/cases/invalid_date_test.rb +0 -24
  222. data/test/cases/json_serialization_test.rb +0 -219
  223. data/test/cases/lifecycle_test.rb +0 -193
  224. data/test/cases/locking_test.rb +0 -350
  225. data/test/cases/method_scoping_test.rb +0 -704
  226. data/test/cases/migration_test.rb +0 -1649
  227. data/test/cases/migration_test_firebird.rb +0 -124
  228. data/test/cases/mixin_test.rb +0 -96
  229. data/test/cases/modules_test.rb +0 -109
  230. data/test/cases/multiple_db_test.rb +0 -85
  231. data/test/cases/named_scope_test.rb +0 -372
  232. data/test/cases/nested_attributes_test.rb +0 -840
  233. data/test/cases/pk_test.rb +0 -119
  234. data/test/cases/pooled_connections_test.rb +0 -103
  235. data/test/cases/query_cache_test.rb +0 -129
  236. data/test/cases/readonly_test.rb +0 -107
  237. data/test/cases/reflection_test.rb +0 -234
  238. data/test/cases/reload_models_test.rb +0 -22
  239. data/test/cases/repair_helper.rb +0 -50
  240. data/test/cases/reserved_word_test_mysql.rb +0 -176
  241. data/test/cases/sanitize_test.rb +0 -25
  242. data/test/cases/schema_authorization_test_postgresql.rb +0 -75
  243. data/test/cases/schema_dumper_test.rb +0 -211
  244. data/test/cases/schema_test_postgresql.rb +0 -178
  245. data/test/cases/serialization_test.rb +0 -47
  246. data/test/cases/sp_test_mysql.rb +0 -16
  247. data/test/cases/synonym_test_oracle.rb +0 -17
  248. data/test/cases/timestamp_test.rb +0 -75
  249. data/test/cases/transactions_test.rb +0 -543
  250. data/test/cases/unconnected_test.rb +0 -32
  251. data/test/cases/validations_i18n_test.rb +0 -925
  252. data/test/cases/validations_test.rb +0 -1684
  253. data/test/cases/xml_serialization_test.rb +0 -240
  254. data/test/cases/yaml_serialization_test.rb +0 -11
  255. data/test/config.rb +0 -5
  256. data/test/connections/jdbc_jdbcderby/connection.rb +0 -18
  257. data/test/connections/jdbc_jdbch2/connection.rb +0 -18
  258. data/test/connections/jdbc_jdbchsqldb/connection.rb +0 -18
  259. data/test/connections/jdbc_jdbcmysql/connection.rb +0 -26
  260. data/test/connections/jdbc_jdbcpostgresql/connection.rb +0 -26
  261. data/test/connections/jdbc_jdbcsqlite3/connection.rb +0 -25
  262. data/test/connections/native_db2/connection.rb +0 -25
  263. data/test/connections/native_firebird/connection.rb +0 -26
  264. data/test/connections/native_frontbase/connection.rb +0 -27
  265. data/test/connections/native_mysql/connection.rb +0 -25
  266. data/test/connections/native_openbase/connection.rb +0 -21
  267. data/test/connections/native_oracle/connection.rb +0 -27
  268. data/test/connections/native_postgresql/connection.rb +0 -21
  269. data/test/connections/native_sqlite/connection.rb +0 -25
  270. data/test/connections/native_sqlite3/connection.rb +0 -25
  271. data/test/connections/native_sqlite3/in_memory_connection.rb +0 -18
  272. data/test/connections/native_sybase/connection.rb +0 -23
  273. data/test/fixtures/accounts.yml +0 -29
  274. data/test/fixtures/all/developers.yml +0 -0
  275. data/test/fixtures/all/people.csv +0 -0
  276. data/test/fixtures/all/tasks.yml +0 -0
  277. data/test/fixtures/author_addresses.yml +0 -5
  278. data/test/fixtures/author_favorites.yml +0 -4
  279. data/test/fixtures/authors.yml +0 -9
  280. data/test/fixtures/binaries.yml +0 -132
  281. data/test/fixtures/books.yml +0 -7
  282. data/test/fixtures/categories/special_categories.yml +0 -9
  283. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +0 -4
  284. data/test/fixtures/categories.yml +0 -14
  285. data/test/fixtures/categories_ordered.yml +0 -7
  286. data/test/fixtures/categories_posts.yml +0 -23
  287. data/test/fixtures/categorizations.yml +0 -17
  288. data/test/fixtures/clubs.yml +0 -6
  289. data/test/fixtures/comments.yml +0 -59
  290. data/test/fixtures/companies.yml +0 -56
  291. data/test/fixtures/computers.yml +0 -4
  292. data/test/fixtures/courses.yml +0 -7
  293. data/test/fixtures/customers.yml +0 -26
  294. data/test/fixtures/developers.yml +0 -21
  295. data/test/fixtures/developers_projects.yml +0 -17
  296. data/test/fixtures/edges.yml +0 -6
  297. data/test/fixtures/entrants.yml +0 -14
  298. data/test/fixtures/faces.yml +0 -11
  299. data/test/fixtures/fk_test_has_fk.yml +0 -3
  300. data/test/fixtures/fk_test_has_pk.yml +0 -2
  301. data/test/fixtures/funny_jokes.yml +0 -10
  302. data/test/fixtures/interests.yml +0 -33
  303. data/test/fixtures/items.yml +0 -4
  304. data/test/fixtures/jobs.yml +0 -7
  305. data/test/fixtures/legacy_things.yml +0 -3
  306. data/test/fixtures/mateys.yml +0 -4
  307. data/test/fixtures/member_types.yml +0 -6
  308. data/test/fixtures/members.yml +0 -6
  309. data/test/fixtures/memberships.yml +0 -20
  310. data/test/fixtures/men.yml +0 -5
  311. data/test/fixtures/minimalistics.yml +0 -2
  312. data/test/fixtures/mixed_case_monkeys.yml +0 -6
  313. data/test/fixtures/mixins.yml +0 -29
  314. data/test/fixtures/movies.yml +0 -7
  315. data/test/fixtures/naked/csv/accounts.csv +0 -1
  316. data/test/fixtures/naked/yml/accounts.yml +0 -1
  317. data/test/fixtures/naked/yml/companies.yml +0 -1
  318. data/test/fixtures/naked/yml/courses.yml +0 -1
  319. data/test/fixtures/organizations.yml +0 -5
  320. data/test/fixtures/owners.yml +0 -7
  321. data/test/fixtures/parrots.yml +0 -27
  322. data/test/fixtures/parrots_pirates.yml +0 -7
  323. data/test/fixtures/people.yml +0 -15
  324. data/test/fixtures/pets.yml +0 -14
  325. data/test/fixtures/pirates.yml +0 -9
  326. data/test/fixtures/polymorphic_designs.yml +0 -19
  327. data/test/fixtures/polymorphic_prices.yml +0 -19
  328. data/test/fixtures/posts.yml +0 -52
  329. data/test/fixtures/price_estimates.yml +0 -7
  330. data/test/fixtures/projects.yml +0 -7
  331. data/test/fixtures/readers.yml +0 -9
  332. data/test/fixtures/references.yml +0 -17
  333. data/test/fixtures/reserved_words/distinct.yml +0 -5
  334. data/test/fixtures/reserved_words/distincts_selects.yml +0 -11
  335. data/test/fixtures/reserved_words/group.yml +0 -14
  336. data/test/fixtures/reserved_words/select.yml +0 -8
  337. data/test/fixtures/reserved_words/values.yml +0 -7
  338. data/test/fixtures/ships.yml +0 -5
  339. data/test/fixtures/sponsors.yml +0 -9
  340. data/test/fixtures/subscribers.yml +0 -7
  341. data/test/fixtures/subscriptions.yml +0 -12
  342. data/test/fixtures/taggings.yml +0 -28
  343. data/test/fixtures/tags.yml +0 -7
  344. data/test/fixtures/tasks.yml +0 -7
  345. data/test/fixtures/tees.yml +0 -4
  346. data/test/fixtures/ties.yml +0 -4
  347. data/test/fixtures/topics.yml +0 -42
  348. data/test/fixtures/toys.yml +0 -4
  349. data/test/fixtures/treasures.yml +0 -10
  350. data/test/fixtures/vertices.yml +0 -4
  351. data/test/fixtures/warehouse-things.yml +0 -3
  352. data/test/fixtures/zines.yml +0 -5
  353. data/test/migrations/broken/100_migration_that_raises_exception.rb +0 -10
  354. data/test/migrations/decimal/1_give_me_big_numbers.rb +0 -15
  355. data/test/migrations/duplicate/1_people_have_last_names.rb +0 -9
  356. data/test/migrations/duplicate/2_we_need_reminders.rb +0 -12
  357. data/test/migrations/duplicate/3_foo.rb +0 -7
  358. data/test/migrations/duplicate/3_innocent_jointable.rb +0 -12
  359. data/test/migrations/duplicate_names/20080507052938_chunky.rb +0 -7
  360. data/test/migrations/duplicate_names/20080507053028_chunky.rb +0 -7
  361. data/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +0 -12
  362. data/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +0 -9
  363. data/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +0 -12
  364. data/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +0 -9
  365. data/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +0 -8
  366. data/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +0 -12
  367. data/test/migrations/missing/1000_people_have_middle_names.rb +0 -9
  368. data/test/migrations/missing/1_people_have_last_names.rb +0 -9
  369. data/test/migrations/missing/3_we_need_reminders.rb +0 -12
  370. data/test/migrations/missing/4_innocent_jointable.rb +0 -12
  371. data/test/migrations/valid/1_people_have_last_names.rb +0 -9
  372. data/test/migrations/valid/2_we_need_reminders.rb +0 -12
  373. data/test/migrations/valid/3_innocent_jointable.rb +0 -12
  374. data/test/models/author.rb +0 -151
  375. data/test/models/auto_id.rb +0 -4
  376. data/test/models/binary.rb +0 -2
  377. data/test/models/bird.rb +0 -9
  378. data/test/models/book.rb +0 -4
  379. data/test/models/categorization.rb +0 -5
  380. data/test/models/category.rb +0 -34
  381. data/test/models/citation.rb +0 -6
  382. data/test/models/club.rb +0 -13
  383. data/test/models/column_name.rb +0 -3
  384. data/test/models/comment.rb +0 -29
  385. data/test/models/company.rb +0 -173
  386. data/test/models/company_in_module.rb +0 -78
  387. data/test/models/computer.rb +0 -3
  388. data/test/models/contact.rb +0 -16
  389. data/test/models/contract.rb +0 -5
  390. data/test/models/course.rb +0 -3
  391. data/test/models/customer.rb +0 -73
  392. data/test/models/default.rb +0 -2
  393. data/test/models/developer.rb +0 -101
  394. data/test/models/edge.rb +0 -5
  395. data/test/models/entrant.rb +0 -3
  396. data/test/models/essay.rb +0 -3
  397. data/test/models/event.rb +0 -3
  398. data/test/models/event_author.rb +0 -8
  399. data/test/models/face.rb +0 -7
  400. data/test/models/guid.rb +0 -2
  401. data/test/models/interest.rb +0 -5
  402. data/test/models/invoice.rb +0 -4
  403. data/test/models/item.rb +0 -7
  404. data/test/models/job.rb +0 -5
  405. data/test/models/joke.rb +0 -3
  406. data/test/models/keyboard.rb +0 -3
  407. data/test/models/legacy_thing.rb +0 -3
  408. data/test/models/line_item.rb +0 -3
  409. data/test/models/man.rb +0 -9
  410. data/test/models/matey.rb +0 -4
  411. data/test/models/member.rb +0 -12
  412. data/test/models/member_detail.rb +0 -5
  413. data/test/models/member_type.rb +0 -3
  414. data/test/models/membership.rb +0 -9
  415. data/test/models/minimalistic.rb +0 -2
  416. data/test/models/mixed_case_monkey.rb +0 -3
  417. data/test/models/movie.rb +0 -5
  418. data/test/models/order.rb +0 -4
  419. data/test/models/organization.rb +0 -6
  420. data/test/models/owner.rb +0 -5
  421. data/test/models/parrot.rb +0 -22
  422. data/test/models/person.rb +0 -16
  423. data/test/models/pet.rb +0 -5
  424. data/test/models/pirate.rb +0 -80
  425. data/test/models/polymorphic_design.rb +0 -3
  426. data/test/models/polymorphic_price.rb +0 -3
  427. data/test/models/post.rb +0 -102
  428. data/test/models/price_estimate.rb +0 -3
  429. data/test/models/project.rb +0 -30
  430. data/test/models/reader.rb +0 -4
  431. data/test/models/reference.rb +0 -4
  432. data/test/models/reply.rb +0 -46
  433. data/test/models/ship.rb +0 -19
  434. data/test/models/ship_part.rb +0 -7
  435. data/test/models/sponsor.rb +0 -4
  436. data/test/models/subject.rb +0 -4
  437. data/test/models/subscriber.rb +0 -8
  438. data/test/models/subscription.rb +0 -4
  439. data/test/models/tag.rb +0 -7
  440. data/test/models/tagging.rb +0 -10
  441. data/test/models/task.rb +0 -3
  442. data/test/models/tee.rb +0 -4
  443. data/test/models/tie.rb +0 -4
  444. data/test/models/topic.rb +0 -80
  445. data/test/models/toy.rb +0 -6
  446. data/test/models/treasure.rb +0 -8
  447. data/test/models/vertex.rb +0 -9
  448. data/test/models/warehouse_thing.rb +0 -5
  449. data/test/models/zine.rb +0 -3
  450. data/test/schema/mysql_specific_schema.rb +0 -31
  451. data/test/schema/postgresql_specific_schema.rb +0 -114
  452. data/test/schema/schema.rb +0 -550
  453. data/test/schema/schema2.rb +0 -6
  454. data/test/schema/sqlite_specific_schema.rb +0 -25
data/test/models/reply.rb DELETED
@@ -1,46 +0,0 @@
1
- require 'models/topic'
2
-
3
- class Reply < Topic
4
- named_scope :base
5
-
6
- belongs_to :topic, :foreign_key => "parent_id", :counter_cache => true
7
- belongs_to :topic_with_primary_key, :class_name => "Topic", :primary_key => "title", :foreign_key => "parent_title", :counter_cache => "replies_count"
8
- has_many :replies, :class_name => "SillyReply", :dependent => :destroy, :foreign_key => "parent_id"
9
-
10
- validate :errors_on_empty_content
11
- validate_on_create :title_is_wrong_create
12
-
13
- attr_accessible :title, :author_name, :author_email_address, :written_on, :content, :last_read, :parent_title
14
-
15
- def validate
16
- errors.add("title", "Empty") unless attribute_present? "title"
17
- end
18
-
19
- def errors_on_empty_content
20
- errors.add("content", "Empty") unless attribute_present? "content"
21
- end
22
-
23
- def validate_on_create
24
- if attribute_present?("title") && attribute_present?("content") && content == "Mismatch"
25
- errors.add("title", "is Content Mismatch")
26
- end
27
- end
28
-
29
- def title_is_wrong_create
30
- errors.add("title", "is Wrong Create") if attribute_present?("title") && title == "Wrong Create"
31
- end
32
-
33
- def validate_on_update
34
- errors.add("title", "is Wrong Update") if attribute_present?("title") && title == "Wrong Update"
35
- end
36
- end
37
-
38
- class SillyReply < Reply
39
- belongs_to :reply, :foreign_key => "parent_id", :counter_cache => :replies_count
40
- end
41
-
42
- module Web
43
- class Reply < Web::Topic
44
- belongs_to :topic, :foreign_key => "parent_id", :counter_cache => true, :class_name => 'Web::Topic'
45
- end
46
- end
data/test/models/ship.rb DELETED
@@ -1,19 +0,0 @@
1
- class Ship < ActiveRecord::Base
2
- self.record_timestamps = false
3
-
4
- belongs_to :pirate
5
- belongs_to :update_only_pirate, :class_name => 'Pirate'
6
- has_many :parts, :class_name => 'ShipPart'
7
-
8
- accepts_nested_attributes_for :parts, :allow_destroy => true
9
- accepts_nested_attributes_for :pirate, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? }
10
- accepts_nested_attributes_for :update_only_pirate, :update_only => true
11
-
12
- validates_presence_of :name
13
-
14
- attr_accessor :cancel_save_from_callback
15
- before_save :cancel_save_callback_method, :if => :cancel_save_from_callback
16
- def cancel_save_callback_method
17
- false
18
- end
19
- end
@@ -1,7 +0,0 @@
1
- class ShipPart < ActiveRecord::Base
2
- belongs_to :ship
3
- has_many :trinkets, :class_name => "Treasure", :as => :looter
4
- accepts_nested_attributes_for :trinkets, :allow_destroy => true
5
-
6
- validates_presence_of :name
7
- end
@@ -1,4 +0,0 @@
1
- class Sponsor < ActiveRecord::Base
2
- belongs_to :sponsor_club, :class_name => "Club", :foreign_key => "club_id"
3
- belongs_to :sponsorable, :polymorphic => true
4
- end
@@ -1,4 +0,0 @@
1
- # used for OracleSynonymTest, see test/synonym_test_oci.rb
2
- #
3
- class Subject < ActiveRecord::Base
4
- end
@@ -1,8 +0,0 @@
1
- class Subscriber < ActiveRecord::Base
2
- set_primary_key 'nick'
3
- has_many :subscriptions
4
- has_many :books, :through => :subscriptions
5
- end
6
-
7
- class SpecialSubscriber < Subscriber
8
- end
@@ -1,4 +0,0 @@
1
- class Subscription < ActiveRecord::Base
2
- belongs_to :subscriber
3
- belongs_to :book
4
- end
data/test/models/tag.rb DELETED
@@ -1,7 +0,0 @@
1
- class Tag < ActiveRecord::Base
2
- has_many :taggings
3
- has_many :taggables, :through => :taggings
4
- has_one :tagging
5
-
6
- has_many :tagged_posts, :through => :taggings, :source => :taggable, :source_type => 'Post'
7
- end
@@ -1,10 +0,0 @@
1
- # test that attr_readonly isn't called on the :taggable polymorphic association
2
- module Taggable
3
- end
4
-
5
- class Tagging < ActiveRecord::Base
6
- belongs_to :tag, :include => :tagging
7
- belongs_to :super_tag, :class_name => 'Tag', :foreign_key => 'super_tag_id'
8
- belongs_to :invalid_tag, :class_name => 'Tag', :foreign_key => 'tag_id'
9
- belongs_to :taggable, :polymorphic => true, :counter_cache => true
10
- end
data/test/models/task.rb DELETED
@@ -1,3 +0,0 @@
1
- class Task < ActiveRecord::Base
2
-
3
- end
data/test/models/tee.rb DELETED
@@ -1,4 +0,0 @@
1
- class Tee < ActiveRecord::Base
2
- has_one :polymorphic_design, :as => :designable
3
- has_one :polymorphic_price, :as => :sellable
4
- end
data/test/models/tie.rb DELETED
@@ -1,4 +0,0 @@
1
- class Tie < ActiveRecord::Base
2
- has_one :polymorphic_design, :as => :designable
3
- has_one :polymorphic_price, :as => :sellable
4
- end
data/test/models/topic.rb DELETED
@@ -1,80 +0,0 @@
1
- class Topic < ActiveRecord::Base
2
- named_scope :base
3
- named_scope :written_before, lambda { |time|
4
- if time
5
- { :conditions => ['written_on < ?', time] }
6
- end
7
- }
8
- named_scope :approved, :conditions => {:approved => true}
9
- named_scope :rejected, :conditions => {:approved => false}
10
-
11
- named_scope :by_lifo, :conditions => {:author_name => 'lifo'}
12
-
13
- named_scope :approved_as_hash_condition, :conditions => {:topics => {:approved => true}}
14
- named_scope 'approved_as_string', :conditions => {:approved => true}
15
- named_scope :replied, :conditions => ['replies_count > 0']
16
- named_scope :anonymous_extension do
17
- def one
18
- 1
19
- end
20
- end
21
- module NamedExtension
22
- def two
23
- 2
24
- end
25
- end
26
- module MultipleExtensionOne
27
- def extension_one
28
- 1
29
- end
30
- end
31
- module MultipleExtensionTwo
32
- def extension_two
33
- 2
34
- end
35
- end
36
- named_scope :named_extension, :extend => NamedExtension
37
- named_scope :multiple_extensions, :extend => [MultipleExtensionTwo, MultipleExtensionOne]
38
-
39
- has_many :replies, :dependent => :destroy, :foreign_key => "parent_id"
40
- has_many :replies_with_primary_key, :class_name => "Reply", :dependent => :destroy, :primary_key => "title", :foreign_key => "parent_title"
41
- serialize :content
42
-
43
- before_create :default_written_on
44
- before_destroy :destroy_children
45
-
46
- def parent
47
- Topic.find(parent_id)
48
- end
49
-
50
- # trivial method for testing Array#to_xml with :methods
51
- def topic_id
52
- id
53
- end
54
-
55
- protected
56
- def approved=(val)
57
- @custom_approved = val
58
- write_attribute(:approved, val)
59
- end
60
-
61
- def default_written_on
62
- self.written_on = Time.now unless attribute_present?("written_on")
63
- end
64
-
65
- def destroy_children
66
- self.class.delete_all "parent_id = #{id}"
67
- end
68
-
69
- def after_initialize
70
- if self.new_record?
71
- self.author_email_address = 'test@test.com'
72
- end
73
- end
74
- end
75
-
76
- module Web
77
- class Topic < ActiveRecord::Base
78
- has_many :replies, :dependent => :destroy, :foreign_key => "parent_id", :class_name => 'Web::Reply'
79
- end
80
- end
data/test/models/toy.rb DELETED
@@ -1,6 +0,0 @@
1
- class Toy < ActiveRecord::Base
2
- set_primary_key :toy_id
3
- belongs_to :pet
4
-
5
- named_scope :with_name, lambda { |name| {:conditions => {:name => name}} }
6
- end
@@ -1,8 +0,0 @@
1
- class Treasure < ActiveRecord::Base
2
- has_and_belongs_to_many :parrots
3
- belongs_to :looter, :polymorphic => true
4
-
5
- has_many :price_estimates, :as => :estimate_of
6
-
7
- accepts_nested_attributes_for :looter
8
- end
@@ -1,9 +0,0 @@
1
- # This class models a vertex in a directed graph.
2
- class Vertex < ActiveRecord::Base
3
- has_many :sink_edges, :class_name => 'Edge', :foreign_key => 'source_id'
4
- has_many :sinks, :through => :sink_edges
5
-
6
- has_and_belongs_to_many :sources,
7
- :class_name => 'Vertex', :join_table => 'edges',
8
- :foreign_key => 'sink_id', :association_foreign_key => 'source_id'
9
- end
@@ -1,5 +0,0 @@
1
- class WarehouseThing < ActiveRecord::Base
2
- set_table_name "warehouse-things"
3
-
4
- validates_uniqueness_of :value
5
- end
data/test/models/zine.rb DELETED
@@ -1,3 +0,0 @@
1
- class Zine < ActiveRecord::Base
2
- has_many :interests, :inverse_of => :zine
3
- end
@@ -1,31 +0,0 @@
1
- ActiveRecord::Schema.define do
2
- create_table :binary_fields, :force => true, :options => 'CHARACTER SET latin1' do |t|
3
- t.binary :tiny_blob, :limit => 255
4
- t.binary :normal_blob, :limit => 65535
5
- t.binary :medium_blob, :limit => 16777215
6
- t.binary :long_blob, :limit => 2147483647
7
- t.text :tiny_text, :limit => 255
8
- t.text :normal_text, :limit => 65535
9
- t.text :medium_text, :limit => 16777215
10
- t.text :long_text, :limit => 2147483647
11
- end
12
-
13
- ActiveRecord::Base.connection.execute <<-SQL
14
- DROP PROCEDURE IF EXISTS ten;
15
- SQL
16
-
17
- ActiveRecord::Base.connection.execute <<-SQL
18
- CREATE PROCEDURE ten() SQL SECURITY INVOKER
19
- BEGIN
20
- select 10;
21
- END
22
- SQL
23
-
24
- ActiveRecord::Base.connection.execute <<-SQL
25
- CREATE PROCEDURE topics() SQL SECURITY INVOKER
26
- BEGIN
27
- select * from topics limit 1;
28
- END
29
- SQL
30
-
31
- end
@@ -1,114 +0,0 @@
1
- ActiveRecord::Schema.define do
2
-
3
- %w(postgresql_arrays postgresql_moneys postgresql_numbers postgresql_times postgresql_network_addresses postgresql_bit_strings
4
- postgresql_oids postgresql_xml_data_type defaults geometrics).each do |table_name|
5
- execute "DROP TABLE IF EXISTS #{quote_table_name table_name}"
6
- end
7
-
8
- execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
9
- execute 'CREATE SEQUENCE companies_nonstd_seq START 101 OWNED BY companies.id'
10
- execute "ALTER TABLE companies ALTER COLUMN id SET DEFAULT nextval('companies_nonstd_seq')"
11
- execute 'DROP SEQUENCE IF EXISTS companies_id_seq'
12
-
13
- %w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
14
- execute "SELECT setval('#{seq_name}', 100)"
15
- end
16
-
17
- execute <<_SQL
18
- CREATE TABLE defaults (
19
- id serial primary key,
20
- modified_date date default CURRENT_DATE,
21
- modified_date_function date default now(),
22
- fixed_date date default '2004-01-01',
23
- modified_time timestamp default CURRENT_TIMESTAMP,
24
- modified_time_function timestamp default now(),
25
- fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
26
- char1 char(1) default 'Y',
27
- char2 character varying(50) default 'a varchar field',
28
- char3 text default 'a text field',
29
- positive_integer integer default 1,
30
- negative_integer integer default -1,
31
- decimal_number decimal(3,2) default 2.78,
32
- multiline_default text DEFAULT '--- []
33
-
34
- '::text
35
- );
36
- _SQL
37
-
38
- execute <<_SQL
39
- CREATE TABLE geometrics (
40
- id serial primary key,
41
- a_point point,
42
- -- a_line line, (the line type is currently not implemented in postgresql)
43
- a_line_segment lseg,
44
- a_box box,
45
- a_path path,
46
- a_polygon polygon,
47
- a_circle circle
48
- );
49
- _SQL
50
-
51
- execute <<_SQL
52
- CREATE TABLE postgresql_arrays (
53
- id SERIAL PRIMARY KEY,
54
- commission_by_quarter INTEGER[],
55
- nicknames TEXT[]
56
- );
57
- _SQL
58
- execute <<_SQL
59
- CREATE TABLE postgresql_moneys (
60
- id SERIAL PRIMARY KEY,
61
- wealth MONEY
62
- );
63
- _SQL
64
-
65
- execute <<_SQL
66
- CREATE TABLE postgresql_numbers (
67
- id SERIAL PRIMARY KEY,
68
- single REAL,
69
- double DOUBLE PRECISION
70
- );
71
- _SQL
72
-
73
- execute <<_SQL
74
- CREATE TABLE postgresql_times (
75
- id SERIAL PRIMARY KEY,
76
- time_interval INTERVAL
77
- );
78
- _SQL
79
-
80
- execute <<_SQL
81
- CREATE TABLE postgresql_network_addresses (
82
- id SERIAL PRIMARY KEY,
83
- cidr_address CIDR,
84
- inet_address INET,
85
- mac_address MACADDR
86
- );
87
- _SQL
88
-
89
- execute <<_SQL
90
- CREATE TABLE postgresql_bit_strings (
91
- id SERIAL PRIMARY KEY,
92
- bit_string BIT(8),
93
- bit_string_varying BIT VARYING(8)
94
- );
95
- _SQL
96
-
97
- execute <<_SQL
98
- CREATE TABLE postgresql_oids (
99
- id SERIAL PRIMARY KEY,
100
- obj_id OID
101
- );
102
- _SQL
103
-
104
- begin
105
- execute <<_SQL
106
- CREATE TABLE postgresql_xml_data_type (
107
- id SERIAL PRIMARY KEY,
108
- data xml
109
- );
110
- _SQL
111
- rescue #This version of PostgreSQL either has no XML support or is was not compiled with XML support: skipping table
112
- end
113
- end
114
-