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
@@ -1,240 +0,0 @@
1
- require "cases/helper"
2
- require 'models/contact'
3
- require 'models/post'
4
- require 'models/author'
5
- require 'models/tagging'
6
- require 'models/comment'
7
- require 'models/company_in_module'
8
-
9
- class XmlSerializationTest < ActiveRecord::TestCase
10
- def test_should_serialize_default_root
11
- @xml = Contact.new.to_xml
12
- assert_match %r{^<contact>}, @xml
13
- assert_match %r{</contact>$}, @xml
14
- end
15
-
16
- def test_should_serialize_default_root_with_namespace
17
- @xml = Contact.new.to_xml :namespace=>"http://xml.rubyonrails.org/contact"
18
- assert_match %r{^<contact xmlns="http://xml.rubyonrails.org/contact">}, @xml
19
- assert_match %r{</contact>$}, @xml
20
- end
21
-
22
- def test_should_serialize_custom_root
23
- @xml = Contact.new.to_xml :root => 'xml_contact'
24
- assert_match %r{^<xml-contact>}, @xml
25
- assert_match %r{</xml-contact>$}, @xml
26
- end
27
-
28
- def test_should_allow_undasherized_tags
29
- @xml = Contact.new.to_xml :root => 'xml_contact', :dasherize => false
30
- assert_match %r{^<xml_contact>}, @xml
31
- assert_match %r{</xml_contact>$}, @xml
32
- assert_match %r{<created_at}, @xml
33
- end
34
-
35
- def test_should_allow_camelized_tags
36
- @xml = Contact.new.to_xml :root => 'xml_contact', :camelize => true
37
- assert_match %r{^<XmlContact>}, @xml
38
- assert_match %r{</XmlContact>$}, @xml
39
- assert_match %r{<CreatedAt}, @xml
40
- end
41
-
42
- def test_should_allow_skipped_types
43
- @xml = Contact.new(:age => 25).to_xml :skip_types => true
44
- assert %r{<age>25</age>}.match(@xml)
45
- end
46
-
47
- def test_should_include_yielded_additions
48
- @xml = Contact.new.to_xml do |xml|
49
- xml.creator "David"
50
- end
51
- assert_match %r{<creator>David</creator>}, @xml
52
- end
53
- end
54
-
55
- class DefaultXmlSerializationTest < ActiveRecord::TestCase
56
- def setup
57
- @xml = Contact.new(:name => 'aaron stack', :age => 25, :avatar => 'binarydata', :created_at => Time.utc(2006, 8, 1), :awesome => false, :preferences => { :gem => 'ruby' }).to_xml
58
- end
59
-
60
- def test_should_serialize_string
61
- assert_match %r{<name>aaron stack</name>}, @xml
62
- end
63
-
64
- def test_should_serialize_integer
65
- assert_match %r{<age type="integer">25</age>}, @xml
66
- end
67
-
68
- def test_should_serialize_binary
69
- assert_match %r{YmluYXJ5ZGF0YQ==\n</avatar>}, @xml
70
- assert_match %r{<avatar(.*)(type="binary")}, @xml
71
- assert_match %r{<avatar(.*)(encoding="base64")}, @xml
72
- end
73
-
74
- def test_should_serialize_datetime
75
- assert_match %r{<created-at type=\"datetime\">2006-08-01T00:00:00Z</created-at>}, @xml
76
- end
77
-
78
- def test_should_serialize_boolean
79
- assert_match %r{<awesome type=\"boolean\">false</awesome>}, @xml
80
- end
81
-
82
- def test_should_serialize_yaml
83
- assert_match %r{<preferences type=\"yaml\">--- \n:gem: ruby\n</preferences>}, @xml
84
- end
85
- end
86
-
87
- class NilXmlSerializationTest < ActiveRecord::TestCase
88
- def setup
89
- @xml = Contact.new.to_xml(:root => 'xml_contact')
90
- end
91
-
92
- def test_should_serialize_string
93
- assert_match %r{<name nil="true"></name>}, @xml
94
- end
95
-
96
- def test_should_serialize_integer
97
- assert %r{<age (.*)></age>}.match(@xml)
98
- attributes = $1
99
- assert_match %r{nil="true"}, attributes
100
- assert_match %r{type="integer"}, attributes
101
- end
102
-
103
- def test_should_serialize_binary
104
- assert %r{<avatar (.*)></avatar>}.match(@xml)
105
- attributes = $1
106
- assert_match %r{type="binary"}, attributes
107
- assert_match %r{encoding="base64"}, attributes
108
- assert_match %r{nil="true"}, attributes
109
- end
110
-
111
- def test_should_serialize_datetime
112
- assert %r{<created-at (.*)></created-at>}.match(@xml)
113
- attributes = $1
114
- assert_match %r{nil="true"}, attributes
115
- assert_match %r{type="datetime"}, attributes
116
- end
117
-
118
- def test_should_serialize_boolean
119
- assert %r{<awesome (.*)></awesome>}.match(@xml)
120
- attributes = $1
121
- assert_match %r{type="boolean"}, attributes
122
- assert_match %r{nil="true"}, attributes
123
- end
124
-
125
- def test_should_serialize_yaml
126
- assert %r{<preferences(.*)></preferences>}.match(@xml)
127
- attributes = $1
128
- assert_match %r{type="yaml"}, attributes
129
- assert_match %r{nil="true"}, attributes
130
- end
131
- end
132
-
133
- class DatabaseConnectedXmlModuleSerializationTest < ActiveRecord::TestCase
134
-
135
- fixtures :projects, :developers, :developers_projects
136
-
137
- def test_module
138
- project = MyApplication::Business::Project.find :first
139
- xml = project.to_xml
140
- assert_match %r{<my-application-business-project>}, xml
141
- assert_match %r{</my-application-business-project>}, xml
142
- end
143
-
144
- def test_module_with_include
145
- project = MyApplication::Business::Project.find :first
146
- xml = project.to_xml :include => :developers
147
- assert_match %r{<developer type="MyApplication::Business::Developer">}, xml
148
- assert_match %r{</developer>}, xml
149
- end
150
- end
151
-
152
- class DatabaseConnectedXmlSerializationTest < ActiveRecord::TestCase
153
- fixtures :authors, :posts
154
- # to_xml used to mess with the hash the user provided which
155
- # caused the builder to be reused. This meant the document kept
156
- # getting appended to.
157
- def test_passing_hash_shouldnt_reuse_builder
158
- options = {:include=>:posts}
159
- david = authors(:david)
160
- first_xml_size = david.to_xml(options).size
161
- second_xml_size = david.to_xml(options).size
162
- assert_equal first_xml_size, second_xml_size
163
- end
164
-
165
- def test_include_uses_association_name
166
- xml = authors(:david).to_xml :include=>:hello_posts, :indent => 0
167
- assert_match %r{<hello-posts type="array">}, xml
168
- assert_match %r{<hello-post type="Post">}, xml
169
- assert_match %r{<hello-post type="StiPost">}, xml
170
- end
171
-
172
- def test_included_associations_should_skip_types
173
- xml = authors(:david).to_xml :include=>:hello_posts, :indent => 0, :skip_types => true
174
- assert_match %r{<hello-posts>}, xml
175
- assert_match %r{<hello-post>}, xml
176
- assert_match %r{<hello-post>}, xml
177
- end
178
-
179
- def test_methods_are_called_on_object
180
- xml = authors(:david).to_xml :methods => :label, :indent => 0
181
- assert_match %r{<label>.*</label>}, xml
182
- end
183
-
184
- def test_should_not_call_methods_on_associations_that_dont_respond
185
- xml = authors(:david).to_xml :include=>:hello_posts, :methods => :label, :indent => 2
186
- assert !authors(:david).hello_posts.first.respond_to?(:label)
187
- assert_match %r{^ <label>.*</label>}, xml
188
- assert_no_match %r{^ <label>}, xml
189
- end
190
-
191
- def test_procs_are_called_on_object
192
- proc = Proc.new { |options| options[:builder].tag!('nationality', 'Danish') }
193
- xml = authors(:david).to_xml(:procs => [ proc ])
194
- assert_match %r{<nationality>Danish</nationality>}, xml
195
- end
196
-
197
- def test_top_level_procs_arent_applied_to_associations
198
- author_proc = Proc.new { |options| options[:builder].tag!('nationality', 'Danish') }
199
- xml = authors(:david).to_xml(:procs => [ author_proc ], :include => :posts, :indent => 2)
200
-
201
- assert_match %r{^ <nationality>Danish</nationality>}, xml
202
- assert_no_match %r{^ {6}<nationality>Danish</nationality>}, xml
203
- end
204
-
205
- def test_procs_on_included_associations_are_called
206
- posts_proc = Proc.new { |options| options[:builder].tag!('copyright', 'DHH') }
207
- xml = authors(:david).to_xml(
208
- :indent => 2,
209
- :include => {
210
- :posts => { :procs => [ posts_proc ] }
211
- }
212
- )
213
-
214
- assert_no_match %r{^ <copyright>DHH</copyright>}, xml
215
- assert_match %r{^ {6}<copyright>DHH</copyright>}, xml
216
- end
217
-
218
- def test_should_include_empty_has_many_as_empty_array
219
- authors(:david).posts.delete_all
220
- xml = authors(:david).to_xml :include=>:posts, :indent => 2
221
-
222
- assert_equal [], Hash.from_xml(xml)['author']['posts']
223
- assert_match %r{^ <posts type="array"/>}, xml
224
- end
225
-
226
- def test_should_has_many_array_elements_should_include_type_when_different_from_guessed_value
227
- xml = authors(:david).to_xml :include=>:posts_with_comments, :indent => 2
228
-
229
- assert Hash.from_xml(xml)
230
- assert_match %r{^ <posts-with-comments type="array">}, xml
231
- assert_match %r{^ <posts-with-comment type="Post">}, xml
232
- assert_match %r{^ <posts-with-comment type="StiPost">}, xml
233
-
234
- types = Hash.from_xml(xml)['author']['posts_with_comments'].collect {|t| t['type'] }
235
- assert types.include?('SpecialPost')
236
- assert types.include?('Post')
237
- assert types.include?('StiPost')
238
- end
239
-
240
- end
@@ -1,11 +0,0 @@
1
- require "cases/helper"
2
- require 'models/topic'
3
-
4
- class YamlSerializationTest < ActiveRecord::TestCase
5
- def test_to_yaml_with_time_with_zone_should_not_raise_exception
6
- Time.zone = ActiveSupport::TimeZone["Pacific Time (US & Canada)"]
7
- ActiveRecord::Base.time_zone_aware_attributes = true
8
- topic = Topic.new(:written_on => DateTime.now)
9
- assert_nothing_raised { topic.to_yaml }
10
- end
11
- end
data/test/config.rb DELETED
@@ -1,5 +0,0 @@
1
- TEST_ROOT = File.expand_path(File.dirname(__FILE__))
2
- ASSETS_ROOT = TEST_ROOT + "/assets"
3
- FIXTURES_ROOT = TEST_ROOT + "/fixtures"
4
- MIGRATIONS_ROOT = TEST_ROOT + "/migrations"
5
- SCHEMA_ROOT = TEST_ROOT + "/schema"
@@ -1,18 +0,0 @@
1
- print "Using Derby via JRuby, activerecord-jdbc-adapter and activerecord-jdbcderby-adapter\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- ActiveRecord::Base.configurations = {
7
- 'arunit' => {
8
- :adapter => 'jdbcderby',
9
- :database => 'activerecord_unittest'
10
- },
11
- 'arunit2' => {
12
- :adapter => 'jdbcderby',
13
- :database => 'activerecord_unittest2'
14
- }
15
- }
16
-
17
- ActiveRecord::Base.establish_connection 'arunit'
18
- Course.establish_connection 'arunit2'
@@ -1,18 +0,0 @@
1
- print "Using H2 via JRuby, activerecord-jdbc-adapter and activerecord-jdbch2-adapter\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- ActiveRecord::Base.configurations = {
7
- 'arunit' => {
8
- :adapter => 'jdbch2',
9
- :database => 'activerecord_unittest'
10
- },
11
- 'arunit2' => {
12
- :adapter => 'jdbch2',
13
- :database => 'activerecord_unittest2'
14
- }
15
- }
16
-
17
- ActiveRecord::Base.establish_connection 'arunit'
18
- Course.establish_connection 'arunit2'
@@ -1,18 +0,0 @@
1
- print "Using HSQLDB via JRuby, activerecord-jdbc-adapter and activerecord-jdbchsqldb-adapter\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- ActiveRecord::Base.configurations = {
7
- 'arunit' => {
8
- :adapter => 'jdbchsqldb',
9
- :database => 'activerecord_unittest'
10
- },
11
- 'arunit2' => {
12
- :adapter => 'jdbchsqldb',
13
- :database => 'activerecord_unittest2'
14
- }
15
- }
16
-
17
- ActiveRecord::Base.establish_connection 'arunit'
18
- Course.establish_connection 'arunit2'
@@ -1,26 +0,0 @@
1
- print "Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- # GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost';
8
- # GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost';
9
-
10
- ActiveRecord::Base.configurations = {
11
- 'arunit' => {
12
- :adapter => 'jdbcmysql',
13
- :username => 'rails',
14
- :encoding => 'utf8',
15
- :database => 'activerecord_unittest',
16
- },
17
- 'arunit2' => {
18
- :adapter => 'jdbcmysql',
19
- :username => 'rails',
20
- :database => 'activerecord_unittest2'
21
- }
22
- }
23
-
24
- ActiveRecord::Base.establish_connection 'arunit'
25
- Course.establish_connection 'arunit2'
26
-
@@ -1,26 +0,0 @@
1
- print "Using Postgrsql via JRuby, activerecord-jdbc-adapter and activerecord-postgresql-adapter\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- # createuser rails --createdb --no-superuser --no-createrole
8
- # createdb -O rails activerecord_unittest
9
- # createdb -O rails activerecord_unittest2
10
-
11
- ActiveRecord::Base.configurations = {
12
- 'arunit' => {
13
- :adapter => 'jdbcpostgresql',
14
- :username => ENV['USER'] || 'rails',
15
- :database => 'activerecord_unittest'
16
- },
17
- 'arunit2' => {
18
- :adapter => 'jdbcpostgresql',
19
- :username => ENV['USER'] || 'rails',
20
- :database => 'activerecord_unittest2'
21
- }
22
- }
23
-
24
- ActiveRecord::Base.establish_connection 'arunit'
25
- Course.establish_connection 'arunit2'
26
-
@@ -1,25 +0,0 @@
1
- print "Using SQLite3 via JRuby, activerecord-jdbc-adapter and activerecord-jdbcsqlite3-adapter\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- class SqliteError < StandardError
7
- end
8
-
9
- BASE_DIR = FIXTURES_ROOT
10
- sqlite_test_db = "#{BASE_DIR}/fixture_database.sqlite3"
11
- sqlite_test_db2 = "#{BASE_DIR}/fixture_database_2.sqlite3"
12
-
13
- def make_connection(clazz, db_file)
14
- ActiveRecord::Base.configurations = { clazz.name => { :adapter => 'jdbcsqlite3', :database => db_file, :timeout => 5000 } }
15
- unless File.exist?(db_file)
16
- puts "SQLite3 database not found at #{db_file}. Rebuilding it."
17
- sqlite_command = %Q{sqlite3 "#{db_file}" "create table a (a integer); drop table a;"}
18
- puts "Executing '#{sqlite_command}'"
19
- raise SqliteError.new("Seems that there is no sqlite3 executable available") unless system(sqlite_command)
20
- end
21
- clazz.establish_connection(clazz.name)
22
- end
23
-
24
- make_connection(ActiveRecord::Base, sqlite_test_db)
25
- make_connection(Course, sqlite_test_db2)
@@ -1,25 +0,0 @@
1
- print "Using native DB2\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'db2',
10
- :host => 'localhost',
11
- :username => 'arunit',
12
- :password => 'arunit',
13
- :database => 'arunit'
14
- },
15
- 'arunit2' => {
16
- :adapter => 'db2',
17
- :host => 'localhost',
18
- :username => 'arunit',
19
- :password => 'arunit',
20
- :database => 'arunit2'
21
- }
22
- }
23
-
24
- ActiveRecord::Base.establish_connection 'arunit'
25
- Course.establish_connection 'arunit2'
@@ -1,26 +0,0 @@
1
- print "Using native Firebird\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'firebird',
10
- :host => 'localhost',
11
- :username => 'rails',
12
- :password => 'rails',
13
- :database => 'activerecord_unittest',
14
- :charset => 'UTF8'
15
- },
16
- 'arunit2' => {
17
- :adapter => 'firebird',
18
- :host => 'localhost',
19
- :username => 'rails',
20
- :password => 'rails',
21
- :database => 'activerecord_unittest2'
22
- }
23
- }
24
-
25
- ActiveRecord::Base.establish_connection 'arunit'
26
- Course.establish_connection 'arunit2'
@@ -1,27 +0,0 @@
1
- puts 'Using native Frontbase'
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'frontbase',
10
- :host => 'localhost',
11
- :username => 'rails',
12
- :password => '',
13
- :database => 'activerecord_unittest',
14
- :session_name => "unittest-#{$$}"
15
- },
16
- 'arunit2' => {
17
- :adapter => 'frontbase',
18
- :host => 'localhost',
19
- :username => 'rails',
20
- :password => '',
21
- :database => 'activerecord_unittest2',
22
- :session_name => "unittest-#{$$}"
23
- }
24
- }
25
-
26
- ActiveRecord::Base.establish_connection 'arunit'
27
- Course.establish_connection 'arunit2'
@@ -1,25 +0,0 @@
1
- print "Using native MySQL\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- # GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost';
8
- # GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost';
9
-
10
- ActiveRecord::Base.configurations = {
11
- 'arunit' => {
12
- :adapter => 'mysql',
13
- :username => 'rails',
14
- :encoding => 'utf8',
15
- :database => 'activerecord_unittest',
16
- },
17
- 'arunit2' => {
18
- :adapter => 'mysql',
19
- :username => 'rails',
20
- :database => 'activerecord_unittest2'
21
- }
22
- }
23
-
24
- ActiveRecord::Base.establish_connection 'arunit'
25
- Course.establish_connection 'arunit2'
@@ -1,21 +0,0 @@
1
- print "Using native OpenBase\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'openbase',
10
- :username => 'admin',
11
- :database => 'activerecord_unittest',
12
- },
13
- 'arunit2' => {
14
- :adapter => 'openbase',
15
- :username => 'admin',
16
- :database => 'activerecord_unittest2'
17
- }
18
- }
19
-
20
- ActiveRecord::Base.establish_connection 'arunit'
21
- Course.establish_connection 'arunit2'
@@ -1,27 +0,0 @@
1
- print "Using Oracle\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new STDOUT
6
- ActiveRecord::Base.logger.level = Logger::WARN
7
-
8
- # Set these to your database connection strings
9
- db = ENV['ARUNIT_DB'] || 'activerecord_unittest'
10
-
11
- ActiveRecord::Base.configurations = {
12
- 'arunit' => {
13
- :adapter => 'oracle',
14
- :username => 'arunit',
15
- :password => 'arunit',
16
- :database => db,
17
- },
18
- 'arunit2' => {
19
- :adapter => 'oracle',
20
- :username => 'arunit2',
21
- :password => 'arunit2',
22
- :database => db
23
- }
24
- }
25
-
26
- ActiveRecord::Base.establish_connection 'arunit'
27
- Course.establish_connection 'arunit2'
@@ -1,21 +0,0 @@
1
- print "Using native PostgreSQL\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'postgresql',
10
- :database => 'activerecord_unittest',
11
- :min_messages => 'warning'
12
- },
13
- 'arunit2' => {
14
- :adapter => 'postgresql',
15
- :database => 'activerecord_unittest2',
16
- :min_messages => 'warning'
17
- }
18
- }
19
-
20
- ActiveRecord::Base.establish_connection 'arunit'
21
- Course.establish_connection 'arunit2'
@@ -1,25 +0,0 @@
1
- print "Using native SQlite\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- class SqliteError < StandardError
7
- end
8
-
9
- BASE_DIR = FIXTURES_ROOT
10
- sqlite_test_db = "#{BASE_DIR}/fixture_database.sqlite"
11
- sqlite_test_db2 = "#{BASE_DIR}/fixture_database_2.sqlite"
12
-
13
- def make_connection(clazz, db_file)
14
- ActiveRecord::Base.configurations = { clazz.name => { :adapter => 'sqlite', :database => db_file } }
15
- unless File.exist?(db_file)
16
- puts "SQLite database not found at #{db_file}. Rebuilding it."
17
- sqlite_command = %Q{sqlite "#{db_file}" "create table a (a integer); drop table a;"}
18
- puts "Executing '#{sqlite_command}'"
19
- raise SqliteError.new("Seems that there is no sqlite executable available") unless system(sqlite_command)
20
- end
21
- clazz.establish_connection(clazz.name)
22
- end
23
-
24
- make_connection(ActiveRecord::Base, sqlite_test_db)
25
- make_connection(Course, sqlite_test_db2)
@@ -1,25 +0,0 @@
1
- print "Using native SQLite3\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- class SqliteError < StandardError
7
- end
8
-
9
- BASE_DIR = FIXTURES_ROOT
10
- sqlite_test_db = "#{BASE_DIR}/fixture_database.sqlite3"
11
- sqlite_test_db2 = "#{BASE_DIR}/fixture_database_2.sqlite3"
12
-
13
- def make_connection(clazz, db_file)
14
- ActiveRecord::Base.configurations = { clazz.name => { :adapter => 'sqlite3', :database => db_file, :timeout => 5000 } }
15
- unless File.exist?(db_file)
16
- puts "SQLite3 database not found at #{db_file}. Rebuilding it."
17
- sqlite_command = %Q{sqlite3 "#{db_file}" "create table a (a integer); drop table a;"}
18
- puts "Executing '#{sqlite_command}'"
19
- raise SqliteError.new("Seems that there is no sqlite3 executable available") unless system(sqlite_command)
20
- end
21
- clazz.establish_connection(clazz.name)
22
- end
23
-
24
- make_connection(ActiveRecord::Base, sqlite_test_db)
25
- make_connection(Course, sqlite_test_db2)
@@ -1,18 +0,0 @@
1
- print "Using native SQLite3\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
- ActiveRecord::Base.logger = Logger.new("debug.log")
5
-
6
- class SqliteError < StandardError
7
- end
8
-
9
- def make_connection(clazz, db_definitions_file)
10
- clazz.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
11
- File.read(SCHEMA_ROOT + "/#{db_definitions_file}").split(';').each do |command|
12
- clazz.connection.execute(command) unless command.strip.empty?
13
- end
14
- end
15
-
16
- make_connection(ActiveRecord::Base, 'sqlite.sql')
17
- make_connection(Course, 'sqlite2.sql')
18
- load(SCHEMA_ROOT + "/schema.rb")
@@ -1,23 +0,0 @@
1
- print "Using native Sybase Open Client\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'sybase',
10
- :host => 'database_ASE',
11
- :username => 'sa',
12
- :database => 'activerecord_unittest'
13
- },
14
- 'arunit2' => {
15
- :adapter => 'sybase',
16
- :host => 'database_ASE',
17
- :username => 'sa',
18
- :database => 'activerecord_unittest2'
19
- }
20
- }
21
-
22
- ActiveRecord::Base.establish_connection 'arunit'
23
- Course.establish_connection 'arunit2'