ibm_db 4.0.0-x86-mingw32 → 5.1.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. checksums.yaml +5 -5
  2. data/MANIFEST +14 -14
  3. data/README +208 -208
  4. data/ext/Makefile +269 -0
  5. data/ext/Makefile.nt32 +181 -181
  6. data/ext/Makefile.nt32.191 +212 -212
  7. data/ext/extconf.rb +322 -291
  8. data/ext/gil_release_version.h +3 -0
  9. data/ext/ibm_db-i386-mingw32.def +2 -0
  10. data/ext/ibm_db.c +11879 -11887
  11. data/ext/ibm_db.o +0 -0
  12. data/ext/ibm_db.so +0 -0
  13. data/ext/mkmf.log +110 -0
  14. data/ext/ruby_ibm_db.h +241 -241
  15. data/ext/ruby_ibm_db_cli.c +866 -866
  16. data/ext/ruby_ibm_db_cli.h +500 -500
  17. data/ext/ruby_ibm_db_cli.o +0 -0
  18. data/ext/unicode_support_version.h +3 -0
  19. data/init.rb +41 -41
  20. data/lib/IBM_DB.rb +27 -27
  21. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3593 -3452
  22. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +5 -5
  23. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
  24. data/lib/mswin32/ibm_db.rb +94 -90
  25. data/lib/mswin32/rb2x/i386/ruby26/ibm_db.so +0 -0
  26. data/lib/mswin32/rb2x/i386/ruby27/ibm_db.so +0 -0
  27. data/test/active_record/connection_adapters/fake_adapter.rb +49 -49
  28. data/test/assets/example.log +1 -1
  29. data/test/assets/test.txt +1 -1
  30. data/test/cases/adapter_test.rb +351 -351
  31. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -193
  32. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -50
  33. data/test/cases/adapters/mysql2/boolean_test.rb +100 -100
  34. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -63
  35. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -54
  36. data/test/cases/adapters/mysql2/connection_test.rb +210 -210
  37. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -45
  38. data/test/cases/adapters/mysql2/enum_test.rb +26 -26
  39. data/test/cases/adapters/mysql2/explain_test.rb +21 -21
  40. data/test/cases/adapters/mysql2/json_test.rb +195 -195
  41. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -83
  42. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -152
  43. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -59
  44. data/test/cases/adapters/mysql2/schema_test.rb +126 -126
  45. data/test/cases/adapters/mysql2/sp_test.rb +36 -36
  46. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -14
  47. data/test/cases/adapters/mysql2/table_options_test.rb +42 -42
  48. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -66
  49. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -98
  50. data/test/cases/adapters/postgresql/array_test.rb +339 -339
  51. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -82
  52. data/test/cases/adapters/postgresql/bytea_test.rb +134 -134
  53. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -26
  54. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -38
  55. data/test/cases/adapters/postgresql/cidr_test.rb +25 -25
  56. data/test/cases/adapters/postgresql/citext_test.rb +78 -78
  57. data/test/cases/adapters/postgresql/collation_test.rb +53 -53
  58. data/test/cases/adapters/postgresql/composite_test.rb +132 -132
  59. data/test/cases/adapters/postgresql/connection_test.rb +257 -257
  60. data/test/cases/adapters/postgresql/datatype_test.rb +92 -92
  61. data/test/cases/adapters/postgresql/domain_test.rb +47 -47
  62. data/test/cases/adapters/postgresql/enum_test.rb +91 -91
  63. data/test/cases/adapters/postgresql/explain_test.rb +20 -20
  64. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -63
  65. data/test/cases/adapters/postgresql/full_text_test.rb +44 -44
  66. data/test/cases/adapters/postgresql/geometric_test.rb +378 -378
  67. data/test/cases/adapters/postgresql/hstore_test.rb +382 -382
  68. data/test/cases/adapters/postgresql/infinity_test.rb +69 -69
  69. data/test/cases/adapters/postgresql/integer_test.rb +25 -25
  70. data/test/cases/adapters/postgresql/json_test.rb +237 -237
  71. data/test/cases/adapters/postgresql/ltree_test.rb +53 -53
  72. data/test/cases/adapters/postgresql/money_test.rb +96 -96
  73. data/test/cases/adapters/postgresql/network_test.rb +94 -94
  74. data/test/cases/adapters/postgresql/numbers_test.rb +49 -49
  75. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -405
  76. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -22
  77. data/test/cases/adapters/postgresql/quoting_test.rb +44 -44
  78. data/test/cases/adapters/postgresql/range_test.rb +343 -343
  79. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -111
  80. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -34
  81. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -119
  82. data/test/cases/adapters/postgresql/schema_test.rb +597 -597
  83. data/test/cases/adapters/postgresql/serial_test.rb +154 -154
  84. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -41
  85. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -90
  86. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -33
  87. data/test/cases/adapters/postgresql/utils_test.rb +62 -62
  88. data/test/cases/adapters/postgresql/uuid_test.rb +294 -294
  89. data/test/cases/adapters/postgresql/xml_test.rb +54 -54
  90. data/test/cases/adapters/sqlite3/collation_test.rb +53 -53
  91. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -98
  92. data/test/cases/adapters/sqlite3/explain_test.rb +21 -21
  93. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -101
  94. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -441
  95. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -24
  96. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -20
  97. data/test/cases/aggregations_test.rb +168 -168
  98. data/test/cases/ar_schema_test.rb +146 -146
  99. data/test/cases/associations/association_scope_test.rb +16 -16
  100. data/test/cases/associations/belongs_to_associations_test.rb +1141 -1141
  101. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -41
  102. data/test/cases/associations/callbacks_test.rb +190 -190
  103. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  104. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  105. data/test/cases/associations/eager_load_nested_include_test.rb +126 -126
  106. data/test/cases/associations/eager_singularization_test.rb +148 -148
  107. data/test/cases/associations/eager_test.rb +1514 -1514
  108. data/test/cases/associations/extension_test.rb +87 -87
  109. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +1004 -1004
  110. data/test/cases/associations/has_many_associations_test.rb +2501 -2501
  111. data/test/cases/associations/has_many_through_associations_test.rb +1271 -1271
  112. data/test/cases/associations/has_one_associations_test.rb +707 -707
  113. data/test/cases/associations/has_one_through_associations_test.rb +383 -383
  114. data/test/cases/associations/inner_join_association_test.rb +139 -139
  115. data/test/cases/associations/inverse_associations_test.rb +733 -733
  116. data/test/cases/associations/join_model_test.rb +777 -777
  117. data/test/cases/associations/left_outer_join_association_test.rb +88 -88
  118. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  119. data/test/cases/associations/required_test.rb +102 -102
  120. data/test/cases/associations_test.rb +385 -385
  121. data/test/cases/attribute_decorators_test.rb +126 -125
  122. data/test/cases/attribute_methods/read_test.rb +60 -60
  123. data/test/cases/attribute_methods_test.rb +1009 -1009
  124. data/test/cases/attribute_set_test.rb +270 -270
  125. data/test/cases/attribute_test.rb +246 -246
  126. data/test/cases/attributes_test.rb +253 -253
  127. data/test/cases/autosave_association_test.rb +1708 -1708
  128. data/test/cases/base_test.rb +1713 -1713
  129. data/test/cases/batches_test.rb +489 -489
  130. data/test/cases/binary_test.rb +44 -44
  131. data/test/cases/bind_parameter_test.rb +110 -110
  132. data/test/cases/cache_key_test.rb +26 -25
  133. data/test/cases/calculations_test.rb +798 -798
  134. data/test/cases/callbacks_test.rb +636 -636
  135. data/test/cases/clone_test.rb +40 -40
  136. data/test/cases/coders/json_test.rb +15 -15
  137. data/test/cases/coders/yaml_column_test.rb +63 -63
  138. data/test/cases/collection_cache_key_test.rb +115 -115
  139. data/test/cases/column_alias_test.rb +17 -17
  140. data/test/cases/column_definition_test.rb +92 -92
  141. data/test/cases/comment_test.rb +145 -143
  142. data/test/cases/connection_adapters/adapter_leasing_test.rb +56 -56
  143. data/test/cases/connection_adapters/connection_handler_test.rb +160 -160
  144. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  145. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +255 -255
  146. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +69 -69
  147. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  148. data/test/cases/connection_adapters/schema_cache_test.rb +61 -61
  149. data/test/cases/connection_adapters/type_lookup_test.rb +118 -118
  150. data/test/cases/connection_management_test.rb +112 -112
  151. data/test/cases/connection_pool_test.rb +521 -521
  152. data/test/cases/connection_specification/resolver_test.rb +131 -131
  153. data/test/cases/core_test.rb +112 -112
  154. data/test/cases/counter_cache_test.rb +214 -214
  155. data/test/cases/custom_locking_test.rb +17 -17
  156. data/test/cases/database_statements_test.rb +34 -34
  157. data/test/cases/date_test.rb +44 -44
  158. data/test/cases/date_time_precision_test.rb +107 -106
  159. data/test/cases/date_time_test.rb +61 -61
  160. data/test/cases/defaults_test.rb +219 -218
  161. data/test/cases/dirty_test.rb +763 -763
  162. data/test/cases/disconnected_test.rb +30 -30
  163. data/test/cases/dup_test.rb +157 -157
  164. data/test/cases/enum_test.rb +444 -444
  165. data/test/cases/errors_test.rb +16 -16
  166. data/test/cases/explain_subscriber_test.rb +64 -64
  167. data/test/cases/explain_test.rb +87 -87
  168. data/test/cases/finder_respond_to_test.rb +60 -60
  169. data/test/cases/finder_test.rb +1294 -1294
  170. data/test/cases/fixture_set/file_test.rb +156 -156
  171. data/test/cases/fixtures_test.rb +988 -988
  172. data/test/cases/forbidden_attributes_protection_test.rb +165 -165
  173. data/test/cases/habtm_destroy_order_test.rb +61 -61
  174. data/test/cases/helper.rb +204 -204
  175. data/test/cases/hot_compatibility_test.rb +142 -142
  176. data/test/cases/i18n_test.rb +45 -45
  177. data/test/cases/inheritance_test.rb +606 -606
  178. data/test/cases/integration_test.rb +155 -155
  179. data/test/cases/invalid_connection_test.rb +24 -24
  180. data/test/cases/invertible_migration_test.rb +387 -387
  181. data/test/cases/json_serialization_test.rb +311 -311
  182. data/test/cases/locking_test.rb +493 -493
  183. data/test/cases/log_subscriber_test.rb +225 -225
  184. data/test/cases/migration/change_schema_test.rb +458 -458
  185. data/test/cases/migration/change_table_test.rb +256 -256
  186. data/test/cases/migration/column_attributes_test.rb +176 -176
  187. data/test/cases/migration/column_positioning_test.rb +56 -56
  188. data/test/cases/migration/columns_test.rb +310 -310
  189. data/test/cases/migration/command_recorder_test.rb +350 -350
  190. data/test/cases/migration/compatibility_test.rb +118 -118
  191. data/test/cases/migration/create_join_table_test.rb +157 -157
  192. data/test/cases/migration/foreign_key_test.rb +362 -360
  193. data/test/cases/migration/helper.rb +39 -39
  194. data/test/cases/migration/index_test.rb +218 -218
  195. data/test/cases/migration/logger_test.rb +36 -36
  196. data/test/cases/migration/pending_migrations_test.rb +52 -52
  197. data/test/cases/migration/references_foreign_key_test.rb +221 -216
  198. data/test/cases/migration/references_index_test.rb +101 -101
  199. data/test/cases/migration/references_statements_test.rb +136 -136
  200. data/test/cases/migration/rename_table_test.rb +93 -93
  201. data/test/cases/migration_test.rb +1157 -1157
  202. data/test/cases/migrator_test.rb +471 -470
  203. data/test/cases/mixin_test.rb +68 -68
  204. data/test/cases/modules_test.rb +172 -172
  205. data/test/cases/multiparameter_attributes_test.rb +372 -372
  206. data/test/cases/multiple_db_test.rb +122 -122
  207. data/test/cases/nested_attributes_test.rb +1098 -1098
  208. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  209. data/test/cases/persistence_test.rb +1001 -1001
  210. data/test/cases/pooled_connections_test.rb +81 -81
  211. data/test/cases/primary_keys_test.rb +376 -376
  212. data/test/cases/query_cache_test.rb +446 -446
  213. data/test/cases/quoting_test.rb +202 -202
  214. data/test/cases/readonly_test.rb +119 -119
  215. data/test/cases/reaper_test.rb +85 -85
  216. data/test/cases/reflection_test.rb +509 -509
  217. data/test/cases/relation/delegation_test.rb +63 -63
  218. data/test/cases/relation/merging_test.rb +157 -157
  219. data/test/cases/relation/mutation_test.rb +183 -183
  220. data/test/cases/relation/or_test.rb +92 -92
  221. data/test/cases/relation/predicate_builder_test.rb +16 -16
  222. data/test/cases/relation/record_fetch_warning_test.rb +40 -40
  223. data/test/cases/relation/where_chain_test.rb +105 -105
  224. data/test/cases/relation/where_clause_test.rb +182 -182
  225. data/test/cases/relation/where_test.rb +322 -322
  226. data/test/cases/relation_test.rb +328 -328
  227. data/test/cases/relations_test.rb +2026 -2026
  228. data/test/cases/reload_models_test.rb +22 -22
  229. data/test/cases/result_test.rb +90 -90
  230. data/test/cases/sanitize_test.rb +176 -176
  231. data/test/cases/schema_dumper_test.rb +457 -457
  232. data/test/cases/schema_loading_test.rb +52 -52
  233. data/test/cases/scoping/default_scoping_test.rb +528 -528
  234. data/test/cases/scoping/named_scoping_test.rb +561 -561
  235. data/test/cases/scoping/relation_scoping_test.rb +400 -400
  236. data/test/cases/secure_token_test.rb +32 -32
  237. data/test/cases/serialization_test.rb +104 -104
  238. data/test/cases/serialized_attribute_test.rb +364 -364
  239. data/test/cases/statement_cache_test.rb +136 -136
  240. data/test/cases/store_test.rb +195 -195
  241. data/test/cases/suppressor_test.rb +63 -63
  242. data/test/cases/tasks/database_tasks_test.rb +462 -462
  243. data/test/cases/tasks/mysql_rake_test.rb +345 -345
  244. data/test/cases/tasks/postgresql_rake_test.rb +304 -304
  245. data/test/cases/tasks/sqlite_rake_test.rb +220 -220
  246. data/test/cases/test_case.rb +131 -131
  247. data/test/cases/test_fixtures_test.rb +36 -36
  248. data/test/cases/time_precision_test.rb +103 -102
  249. data/test/cases/timestamp_test.rb +501 -501
  250. data/test/cases/touch_later_test.rb +121 -121
  251. data/test/cases/transaction_callbacks_test.rb +518 -518
  252. data/test/cases/transaction_isolation_test.rb +106 -106
  253. data/test/cases/transactions_test.rb +835 -834
  254. data/test/cases/type/adapter_specific_registry_test.rb +133 -133
  255. data/test/cases/type/date_time_test.rb +14 -14
  256. data/test/cases/type/integer_test.rb +27 -27
  257. data/test/cases/type/string_test.rb +22 -22
  258. data/test/cases/type/type_map_test.rb +177 -177
  259. data/test/cases/type_test.rb +39 -39
  260. data/test/cases/types_test.rb +24 -24
  261. data/test/cases/unconnected_test.rb +33 -33
  262. data/test/cases/validations/absence_validation_test.rb +73 -73
  263. data/test/cases/validations/association_validation_test.rb +97 -97
  264. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  265. data/test/cases/validations/i18n_validation_test.rb +86 -86
  266. data/test/cases/validations/length_validation_test.rb +79 -79
  267. data/test/cases/validations/presence_validation_test.rb +103 -103
  268. data/test/cases/validations/uniqueness_validation_test.rb +548 -548
  269. data/test/cases/validations_repair_helper.rb +19 -19
  270. data/test/cases/validations_test.rb +194 -194
  271. data/test/cases/view_test.rb +216 -216
  272. data/test/cases/yaml_serialization_test.rb +121 -121
  273. data/test/config.example.yml +97 -97
  274. data/test/config.rb +5 -5
  275. data/test/connections/native_ibm_db/connection.rb +44 -0
  276. data/test/fixtures/accounts.yml +29 -29
  277. data/test/fixtures/admin/accounts.yml +2 -2
  278. data/test/fixtures/admin/users.yml +10 -10
  279. data/test/fixtures/author_addresses.yml +17 -17
  280. data/test/fixtures/author_favorites.yml +3 -3
  281. data/test/fixtures/authors.yml +23 -23
  282. data/test/fixtures/bad_posts.yml +9 -9
  283. data/test/fixtures/binaries.yml +133 -133
  284. data/test/fixtures/books.yml +31 -31
  285. data/test/fixtures/bulbs.yml +5 -5
  286. data/test/fixtures/cars.yml +9 -9
  287. data/test/fixtures/categories.yml +19 -19
  288. data/test/fixtures/categories/special_categories.yml +9 -9
  289. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  290. data/test/fixtures/categories_ordered.yml +7 -7
  291. data/test/fixtures/categories_posts.yml +31 -31
  292. data/test/fixtures/categorizations.yml +23 -23
  293. data/test/fixtures/clubs.yml +8 -8
  294. data/test/fixtures/collections.yml +3 -3
  295. data/test/fixtures/colleges.yml +3 -3
  296. data/test/fixtures/comments.yml +65 -65
  297. data/test/fixtures/companies.yml +67 -67
  298. data/test/fixtures/computers.yml +10 -10
  299. data/test/fixtures/content.yml +3 -3
  300. data/test/fixtures/content_positions.yml +3 -3
  301. data/test/fixtures/courses.yml +8 -8
  302. data/test/fixtures/customers.yml +25 -25
  303. data/test/fixtures/dashboards.yml +6 -6
  304. data/test/fixtures/dead_parrots.yml +5 -5
  305. data/test/fixtures/developers.yml +22 -22
  306. data/test/fixtures/developers_projects.yml +16 -16
  307. data/test/fixtures/dog_lovers.yml +7 -7
  308. data/test/fixtures/dogs.yml +4 -4
  309. data/test/fixtures/doubloons.yml +3 -3
  310. data/test/fixtures/edges.yml +5 -5
  311. data/test/fixtures/entrants.yml +14 -14
  312. data/test/fixtures/essays.yml +6 -6
  313. data/test/fixtures/faces.yml +11 -11
  314. data/test/fixtures/fk_test_has_fk.yml +3 -3
  315. data/test/fixtures/fk_test_has_pk.yml +1 -1
  316. data/test/fixtures/friendships.yml +4 -4
  317. data/test/fixtures/funny_jokes.yml +10 -10
  318. data/test/fixtures/interests.yml +33 -33
  319. data/test/fixtures/items.yml +3 -3
  320. data/test/fixtures/jobs.yml +7 -7
  321. data/test/fixtures/legacy_things.yml +3 -3
  322. data/test/fixtures/live_parrots.yml +4 -4
  323. data/test/fixtures/mateys.yml +4 -4
  324. data/test/fixtures/member_details.yml +8 -8
  325. data/test/fixtures/member_types.yml +6 -6
  326. data/test/fixtures/members.yml +11 -11
  327. data/test/fixtures/memberships.yml +34 -34
  328. data/test/fixtures/men.yml +5 -5
  329. data/test/fixtures/minimalistics.yml +2 -2
  330. data/test/fixtures/minivans.yml +5 -5
  331. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  332. data/test/fixtures/mixins.yml +29 -29
  333. data/test/fixtures/movies.yml +7 -7
  334. data/test/fixtures/naked/yml/accounts.yml +1 -1
  335. data/test/fixtures/naked/yml/companies.yml +1 -1
  336. data/test/fixtures/naked/yml/courses.yml +1 -1
  337. data/test/fixtures/naked/yml/parrots.yml +2 -2
  338. data/test/fixtures/naked/yml/trees.yml +3 -3
  339. data/test/fixtures/nodes.yml +29 -29
  340. data/test/fixtures/organizations.yml +5 -5
  341. data/test/fixtures/other_comments.yml +6 -6
  342. data/test/fixtures/other_dogs.yml +2 -2
  343. data/test/fixtures/other_posts.yml +7 -7
  344. data/test/fixtures/other_topics.yml +42 -42
  345. data/test/fixtures/owners.yml +9 -9
  346. data/test/fixtures/parrots.yml +27 -27
  347. data/test/fixtures/parrots_pirates.yml +7 -7
  348. data/test/fixtures/people.yml +24 -24
  349. data/test/fixtures/peoples_treasures.yml +3 -3
  350. data/test/fixtures/pets.yml +19 -19
  351. data/test/fixtures/pirates.yml +12 -15
  352. data/test/fixtures/posts.yml +80 -80
  353. data/test/fixtures/price_estimates.yml +16 -16
  354. data/test/fixtures/products.yml +4 -4
  355. data/test/fixtures/projects.yml +7 -7
  356. data/test/fixtures/ratings.yml +14 -14
  357. data/test/fixtures/readers.yml +11 -11
  358. data/test/fixtures/references.yml +17 -17
  359. data/test/fixtures/reserved_words/distinct.yml +5 -5
  360. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  361. data/test/fixtures/reserved_words/group.yml +14 -14
  362. data/test/fixtures/reserved_words/select.yml +8 -8
  363. data/test/fixtures/reserved_words/values.yml +7 -7
  364. data/test/fixtures/ships.yml +6 -6
  365. data/test/fixtures/speedometers.yml +8 -8
  366. data/test/fixtures/sponsors.yml +12 -12
  367. data/test/fixtures/string_key_objects.yml +7 -7
  368. data/test/fixtures/subscribers.yml +10 -10
  369. data/test/fixtures/subscriptions.yml +12 -12
  370. data/test/fixtures/taggings.yml +78 -78
  371. data/test/fixtures/tags.yml +11 -11
  372. data/test/fixtures/tasks.yml +7 -7
  373. data/test/fixtures/teapots.yml +3 -3
  374. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  375. data/test/fixtures/to_be_linked/users.yml +10 -10
  376. data/test/fixtures/topics.yml +49 -49
  377. data/test/fixtures/toys.yml +14 -14
  378. data/test/fixtures/traffic_lights.yml +9 -9
  379. data/test/fixtures/treasures.yml +10 -10
  380. data/test/fixtures/trees.yml +3 -3
  381. data/test/fixtures/uuid_children.yml +3 -3
  382. data/test/fixtures/uuid_parents.yml +2 -2
  383. data/test/fixtures/variants.yml +4 -4
  384. data/test/fixtures/vegetables.yml +19 -19
  385. data/test/fixtures/vertices.yml +3 -3
  386. data/test/fixtures/warehouse_things.yml +2 -2
  387. data/test/fixtures/zines.yml +5 -5
  388. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  389. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  390. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  391. data/test/migrations/missing/1000_people_have_middle_names.rb +9 -9
  392. data/test/migrations/missing/1_people_have_last_names.rb +9 -9
  393. data/test/migrations/missing/3_we_need_reminders.rb +12 -12
  394. data/test/migrations/missing/4_innocent_jointable.rb +12 -12
  395. data/test/migrations/rename/1_we_need_things.rb +11 -11
  396. data/test/migrations/rename/2_rename_things.rb +9 -9
  397. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  398. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  399. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  400. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  401. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  402. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  403. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  404. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  405. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  406. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  407. data/test/migrations/valid/2_we_need_reminders.rb +12 -12
  408. data/test/migrations/valid/3_innocent_jointable.rb +12 -12
  409. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  410. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +12 -12
  411. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +12 -12
  412. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  413. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  414. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  415. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  416. data/test/models/admin.rb +5 -5
  417. data/test/models/admin/account.rb +3 -3
  418. data/test/models/admin/user.rb +40 -40
  419. data/test/models/aircraft.rb +5 -5
  420. data/test/models/arunit2_model.rb +3 -3
  421. data/test/models/author.rb +209 -209
  422. data/test/models/auto_id.rb +4 -4
  423. data/test/models/autoloadable/extra_firm.rb +2 -2
  424. data/test/models/binary.rb +2 -2
  425. data/test/models/bird.rb +12 -12
  426. data/test/models/book.rb +23 -23
  427. data/test/models/boolean.rb +2 -2
  428. data/test/models/bulb.rb +52 -52
  429. data/test/models/cake_designer.rb +3 -3
  430. data/test/models/car.rb +29 -29
  431. data/test/models/carrier.rb +2 -2
  432. data/test/models/cat.rb +10 -10
  433. data/test/models/categorization.rb +19 -19
  434. data/test/models/category.rb +35 -35
  435. data/test/models/chef.rb +8 -8
  436. data/test/models/citation.rb +3 -3
  437. data/test/models/club.rb +25 -25
  438. data/test/models/college.rb +10 -10
  439. data/test/models/column.rb +3 -3
  440. data/test/models/column_name.rb +3 -3
  441. data/test/models/comment.rb +76 -76
  442. data/test/models/company.rb +230 -230
  443. data/test/models/company_in_module.rb +98 -98
  444. data/test/models/computer.rb +3 -3
  445. data/test/models/contact.rb +41 -41
  446. data/test/models/content.rb +40 -40
  447. data/test/models/contract.rb +20 -20
  448. data/test/models/country.rb +7 -7
  449. data/test/models/course.rb +6 -6
  450. data/test/models/customer.rb +83 -83
  451. data/test/models/customer_carrier.rb +14 -14
  452. data/test/models/dashboard.rb +3 -3
  453. data/test/models/default.rb +2 -2
  454. data/test/models/department.rb +4 -4
  455. data/test/models/developer.rb +274 -274
  456. data/test/models/dog.rb +5 -5
  457. data/test/models/dog_lover.rb +5 -5
  458. data/test/models/doubloon.rb +12 -12
  459. data/test/models/drink_designer.rb +3 -3
  460. data/test/models/edge.rb +5 -5
  461. data/test/models/electron.rb +5 -5
  462. data/test/models/engine.rb +4 -4
  463. data/test/models/entrant.rb +3 -3
  464. data/test/models/essay.rb +5 -5
  465. data/test/models/event.rb +3 -3
  466. data/test/models/eye.rb +37 -37
  467. data/test/models/face.rb +9 -9
  468. data/test/models/friendship.rb +6 -6
  469. data/test/models/guid.rb +2 -2
  470. data/test/models/guitar.rb +4 -4
  471. data/test/models/hotel.rb +11 -11
  472. data/test/models/image.rb +3 -3
  473. data/test/models/interest.rb +5 -5
  474. data/test/models/invoice.rb +4 -4
  475. data/test/models/item.rb +7 -7
  476. data/test/models/job.rb +7 -7
  477. data/test/models/joke.rb +7 -7
  478. data/test/models/keyboard.rb +3 -3
  479. data/test/models/legacy_thing.rb +3 -3
  480. data/test/models/lesson.rb +11 -11
  481. data/test/models/line_item.rb +3 -3
  482. data/test/models/liquid.rb +4 -4
  483. data/test/models/man.rb +11 -11
  484. data/test/models/matey.rb +4 -4
  485. data/test/models/member.rb +42 -42
  486. data/test/models/member_detail.rb +8 -8
  487. data/test/models/member_type.rb +3 -3
  488. data/test/models/membership.rb +35 -35
  489. data/test/models/mentor.rb +2 -2
  490. data/test/models/minimalistic.rb +2 -2
  491. data/test/models/minivan.rb +9 -9
  492. data/test/models/mixed_case_monkey.rb +3 -3
  493. data/test/models/mocktail_designer.rb +2 -2
  494. data/test/models/molecule.rb +6 -6
  495. data/test/models/movie.rb +5 -5
  496. data/test/models/node.rb +5 -5
  497. data/test/models/non_primary_key.rb +2 -2
  498. data/test/models/notification.rb +3 -3
  499. data/test/models/order.rb +4 -4
  500. data/test/models/organization.rb +14 -14
  501. data/test/models/other_dog.rb +5 -5
  502. data/test/models/owner.rb +37 -37
  503. data/test/models/parrot.rb +28 -28
  504. data/test/models/person.rb +142 -142
  505. data/test/models/personal_legacy_thing.rb +4 -4
  506. data/test/models/pet.rb +18 -18
  507. data/test/models/pet_treasure.rb +6 -6
  508. data/test/models/pirate.rb +92 -92
  509. data/test/models/possession.rb +3 -3
  510. data/test/models/post.rb +273 -273
  511. data/test/models/price_estimate.rb +4 -4
  512. data/test/models/professor.rb +5 -5
  513. data/test/models/project.rb +40 -40
  514. data/test/models/publisher.rb +2 -2
  515. data/test/models/publisher/article.rb +4 -4
  516. data/test/models/publisher/magazine.rb +3 -3
  517. data/test/models/rating.rb +4 -4
  518. data/test/models/reader.rb +23 -23
  519. data/test/models/recipe.rb +3 -3
  520. data/test/models/record.rb +2 -2
  521. data/test/models/reference.rb +22 -22
  522. data/test/models/reply.rb +61 -61
  523. data/test/models/ship.rb +39 -39
  524. data/test/models/ship_part.rb +8 -8
  525. data/test/models/shop.rb +17 -17
  526. data/test/models/shop_account.rb +6 -6
  527. data/test/models/speedometer.rb +6 -6
  528. data/test/models/sponsor.rb +7 -7
  529. data/test/models/string_key_object.rb +3 -3
  530. data/test/models/student.rb +4 -4
  531. data/test/models/subject.rb +16 -16
  532. data/test/models/subscriber.rb +8 -8
  533. data/test/models/subscription.rb +4 -4
  534. data/test/models/tag.rb +13 -13
  535. data/test/models/tagging.rb +13 -13
  536. data/test/models/task.rb +5 -5
  537. data/test/models/topic.rb +118 -118
  538. data/test/models/toy.rb +6 -6
  539. data/test/models/traffic_light.rb +4 -4
  540. data/test/models/treasure.rb +14 -14
  541. data/test/models/treaty.rb +7 -7
  542. data/test/models/tree.rb +3 -3
  543. data/test/models/tuning_peg.rb +4 -4
  544. data/test/models/tyre.rb +11 -11
  545. data/test/models/user.rb +14 -14
  546. data/test/models/uuid_child.rb +3 -3
  547. data/test/models/uuid_item.rb +6 -6
  548. data/test/models/uuid_parent.rb +3 -3
  549. data/test/models/vegetables.rb +24 -24
  550. data/test/models/vehicle.rb +6 -6
  551. data/test/models/vertex.rb +9 -9
  552. data/test/models/warehouse_thing.rb +5 -5
  553. data/test/models/wheel.rb +3 -3
  554. data/test/models/without_table.rb +3 -3
  555. data/test/models/zine.rb +3 -3
  556. data/test/schema/i5/ibm_db_specific_schema.rb +137 -0
  557. data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
  558. data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
  559. data/test/schema/mysql2_specific_schema.rb +68 -68
  560. data/test/schema/oracle_specific_schema.rb +40 -40
  561. data/test/schema/postgresql_specific_schema.rb +114 -114
  562. data/test/schema/schema.rb +1057 -1057
  563. data/test/schema/schema.rb.original +1057 -1057
  564. data/test/schema/sqlite_specific_schema.rb +18 -18
  565. data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
  566. data/test/support/config.rb +43 -43
  567. data/test/support/connection.rb +23 -23
  568. data/test/support/connection_helper.rb +14 -14
  569. data/test/support/ddl_helper.rb +8 -8
  570. data/test/support/schema_dumping_helper.rb +20 -20
  571. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -22
  572. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -182
  573. metadata +30 -14
  574. data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
  575. data/test/fixtures/author_addresses.original +0 -11
  576. data/test/fixtures/authors.original +0 -17
@@ -1,8 +1,8 @@
1
- class MigrationVersionCheck < ActiveRecord::Migration::Current
2
- def self.up
3
- raise "incorrect migration version" unless version == 20131219224947
4
- end
5
-
6
- def self.down
7
- end
8
- end
1
+ class MigrationVersionCheck < ActiveRecord::Migration::Current
2
+ def self.up
3
+ raise "incorrect migration version" unless version == 20131219224947
4
+ end
5
+
6
+ def self.down
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
- module Admin
2
- def self.table_name_prefix
3
- 'admin_'
4
- end
5
- end
1
+ module Admin
2
+ def self.table_name_prefix
3
+ 'admin_'
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
- class Admin::Account < ActiveRecord::Base
2
- has_many :users
3
- end
1
+ class Admin::Account < ActiveRecord::Base
2
+ has_many :users
3
+ end
@@ -1,40 +1,40 @@
1
- class Admin::User < ActiveRecord::Base
2
- class Coder
3
- def initialize(default = {})
4
- @default = default
5
- end
6
-
7
- def dump(o)
8
- ActiveSupport::JSON.encode(o || @default)
9
- end
10
-
11
- def load(s)
12
- s.present? ? ActiveSupport::JSON.decode(s) : @default.clone
13
- end
14
- end
15
-
16
- belongs_to :account
17
- store :params, accessors: [ :token ], coder: YAML
18
- store :settings, :accessors => [ :color, :homepage ]
19
- store_accessor :settings, :favorite_food
20
- store :preferences, :accessors => [ :remember_login ]
21
- store :json_data, :accessors => [ :height, :weight ], :coder => Coder.new
22
- store :json_data_empty, :accessors => [ :is_a_good_guy ], :coder => Coder.new
23
-
24
- def phone_number
25
- read_store_attribute(:settings, :phone_number).gsub(/(\d{3})(\d{3})(\d{4})/,'(\1) \2-\3')
26
- end
27
-
28
- def phone_number=(value)
29
- write_store_attribute(:settings, :phone_number, value && value.gsub(/[^\d]/,''))
30
- end
31
-
32
- def color
33
- super || 'red'
34
- end
35
-
36
- def color=(value)
37
- value = 'blue' unless %w(black red green blue).include?(value)
38
- super
39
- end
40
- end
1
+ class Admin::User < ActiveRecord::Base
2
+ class Coder
3
+ def initialize(default = {})
4
+ @default = default
5
+ end
6
+
7
+ def dump(o)
8
+ ActiveSupport::JSON.encode(o || @default)
9
+ end
10
+
11
+ def load(s)
12
+ s.present? ? ActiveSupport::JSON.decode(s) : @default.clone
13
+ end
14
+ end
15
+
16
+ belongs_to :account
17
+ store :params, accessors: [ :token ], coder: YAML
18
+ store :settings, :accessors => [ :color, :homepage ]
19
+ store_accessor :settings, :favorite_food
20
+ store :preferences, :accessors => [ :remember_login ]
21
+ store :json_data, :accessors => [ :height, :weight ], :coder => Coder.new
22
+ store :json_data_empty, :accessors => [ :is_a_good_guy ], :coder => Coder.new
23
+
24
+ def phone_number
25
+ read_store_attribute(:settings, :phone_number).gsub(/(\d{3})(\d{3})(\d{4})/,'(\1) \2-\3')
26
+ end
27
+
28
+ def phone_number=(value)
29
+ write_store_attribute(:settings, :phone_number, value && value.gsub(/[^\d]/,''))
30
+ end
31
+
32
+ def color
33
+ super || 'red'
34
+ end
35
+
36
+ def color=(value)
37
+ value = 'blue' unless %w(black red green blue).include?(value)
38
+ super
39
+ end
40
+ end
@@ -1,5 +1,5 @@
1
- class Aircraft < ActiveRecord::Base
2
- self.pluralize_table_names = false
3
- has_many :engines, :foreign_key => "car_id"
4
- has_many :wheels, as: :wheelable
5
- end
1
+ class Aircraft < ActiveRecord::Base
2
+ self.pluralize_table_names = false
3
+ has_many :engines, :foreign_key => "car_id"
4
+ has_many :wheels, as: :wheelable
5
+ end
@@ -1,3 +1,3 @@
1
- class ARUnit2Model < ActiveRecord::Base
2
- self.abstract_class = true
3
- end
1
+ class ARUnit2Model < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -1,209 +1,209 @@
1
- class Author < ActiveRecord::Base
2
- has_many :posts
3
- has_many :serialized_posts
4
- has_one :post
5
- has_many :very_special_comments, :through => :posts
6
- has_many :posts_with_comments, -> { includes(:comments) }, :class_name => "Post"
7
- has_many :popular_grouped_posts, -> { includes(:comments).group("type").having("SUM(comments_count) > 1").select("type") }, :class_name => "Post"
8
- has_many :posts_with_comments_sorted_by_comment_id, -> { includes(:comments).order('comments.id') }, :class_name => "Post"
9
- has_many :posts_sorted_by_id_limited, -> { order('posts.id').limit(1) }, :class_name => "Post"
10
- has_many :posts_with_categories, -> { includes(:categories) }, :class_name => "Post"
11
- has_many :posts_with_comments_and_categories, -> { includes(:comments, :categories).order("posts.id") }, :class_name => "Post"
12
- has_many :posts_with_special_categorizations, :class_name => 'PostWithSpecialCategorization'
13
- has_one :post_about_thinking, -> { where("posts.title like '%thinking%'") }, :class_name => 'Post'
14
- has_one :post_about_thinking_with_last_comment, -> { where("posts.title like '%thinking%'").includes(:last_comment) }, :class_name => 'Post'
15
- has_many :comments, through: :posts do
16
- def ratings
17
- Rating.joins(:comment).merge(self)
18
- end
19
- end
20
- has_many :comments_containing_the_letter_e, :through => :posts, :source => :comments
21
- has_many :comments_with_order_and_conditions, -> { order('comments.body').where("comments.body like 'Thank%'") }, :through => :posts, :source => :comments
22
- has_many :comments_with_include, -> { includes(:post) }, :through => :posts, :source => :comments
23
-
24
- has_many :first_posts
25
- has_many :comments_on_first_posts, -> { order('posts.id desc, comments.id asc') }, :through => :first_posts, :source => :comments
26
-
27
- has_one :first_post
28
- has_one :comment_on_first_post, -> { order('posts.id desc, comments.id asc') }, :through => :first_post, :source => :comments
29
-
30
- has_many :thinking_posts, -> { where(:title => 'So I was thinking') }, :dependent => :delete_all, :class_name => 'Post'
31
- has_many :welcome_posts, -> { where(:title => 'Welcome to the weblog') }, :class_name => 'Post'
32
-
33
- has_many :welcome_posts_with_one_comment,
34
- -> { where(title: 'Welcome to the weblog').where('comments_count = ?', 1) },
35
- class_name: 'Post'
36
- has_many :welcome_posts_with_comments,
37
- -> { where(title: 'Welcome to the weblog').where(Post.arel_table[:comments_count].gt(0)) },
38
- class_name: 'Post'
39
-
40
- has_many :comments_desc, -> { order('comments.id DESC') }, :through => :posts, :source => :comments
41
- has_many :funky_comments, :through => :posts, :source => :comments
42
- has_many :ordered_uniq_comments, -> { distinct.order('comments.id') }, :through => :posts, :source => :comments
43
- has_many :ordered_uniq_comments_desc, -> { distinct.order('comments.id DESC') }, :through => :posts, :source => :comments
44
- has_many :readonly_comments, -> { readonly }, :through => :posts, :source => :comments
45
-
46
- has_many :special_posts
47
- has_many :special_post_comments, :through => :special_posts, :source => :comments
48
- has_many :special_posts_with_default_scope, :class_name => 'SpecialPostWithDefaultScope'
49
-
50
- has_many :sti_posts, :class_name => 'StiPost'
51
- has_many :sti_post_comments, :through => :sti_posts, :source => :comments
52
-
53
- has_many :special_nonexistent_posts, -> { where("posts.body = 'nonexistent'") }, :class_name => "SpecialPost"
54
- has_many :special_nonexistent_post_comments, -> { where('comments.post_id' => 0) }, :through => :special_nonexistent_posts, :source => :comments
55
- has_many :nonexistent_comments, :through => :posts
56
-
57
- has_many :hello_posts, -> { where "posts.body = 'hello'" }, :class_name => "Post"
58
- has_many :hello_post_comments, :through => :hello_posts, :source => :comments
59
- has_many :posts_with_no_comments, -> { where('comments.id' => nil).includes(:comments) }, :class_name => 'Post'
60
-
61
- has_many :hello_posts_with_hash_conditions, -> { where(:body => 'hello') }, :class_name => "Post"
62
- has_many :hello_post_comments_with_hash_conditions, :through =>
63
- :hello_posts_with_hash_conditions, :source => :comments
64
-
65
- has_many :other_posts, :class_name => "Post"
66
- has_many :posts_with_callbacks, :class_name => "Post", :before_add => :log_before_adding,
67
- :after_add => :log_after_adding,
68
- :before_remove => :log_before_removing,
69
- :after_remove => :log_after_removing
70
- has_many :posts_with_proc_callbacks, :class_name => "Post",
71
- :before_add => Proc.new {|o, r| o.post_log << "before_adding#{r.id || '<new>'}"},
72
- :after_add => Proc.new {|o, r| o.post_log << "after_adding#{r.id || '<new>'}"},
73
- :before_remove => Proc.new {|o, r| o.post_log << "before_removing#{r.id}"},
74
- :after_remove => Proc.new {|o, r| o.post_log << "after_removing#{r.id}"}
75
- has_many :posts_with_multiple_callbacks, :class_name => "Post",
76
- :before_add => [:log_before_adding, Proc.new {|o, r| o.post_log << "before_adding_proc#{r.id || '<new>'}"}],
77
- :after_add => [:log_after_adding, Proc.new {|o, r| o.post_log << "after_adding_proc#{r.id || '<new>'}"}]
78
- has_many :unchangeable_posts, :class_name => "Post", :before_add => :raise_exception, :after_add => :log_after_adding
79
-
80
- has_many :categorizations
81
- has_many :categories, :through => :categorizations
82
- has_many :named_categories, :through => :categorizations
83
-
84
- has_many :special_categorizations
85
- has_many :special_categories, :through => :special_categorizations, :source => :category
86
- has_one :special_category, :through => :special_categorizations, :source => :category
87
-
88
- has_many :categories_like_general, -> { where(:name => 'General') }, :through => :categorizations, :source => :category, :class_name => 'Category'
89
-
90
- has_many :categorized_posts, :through => :categorizations, :source => :post
91
- has_many :unique_categorized_posts, -> { distinct }, :through => :categorizations, :source => :post
92
-
93
- has_many :nothings, :through => :kateggorisatons, :class_name => 'Category'
94
-
95
- has_many :author_favorites
96
- has_many :favorite_authors, -> { order('name') }, :through => :author_favorites
97
-
98
- has_many :taggings, :through => :posts, :source => :taggings
99
- has_many :taggings_2, :through => :posts, :source => :tagging
100
- has_many :tags, :through => :posts
101
- has_many :post_categories, :through => :posts, :source => :categories
102
- has_many :tagging_tags, :through => :taggings, :source => :tag
103
-
104
- has_many :similar_posts, -> { distinct }, :through => :tags, :source => :tagged_posts
105
- has_many :distinct_tags, -> { select("DISTINCT tags.*").order("tags.name") }, :through => :posts, :source => :tags
106
-
107
- has_many :tags_with_primary_key, :through => :posts
108
-
109
- has_many :books
110
- has_many :subscriptions, :through => :books
111
- has_many :subscribers, -> { order("subscribers.nick") }, :through => :subscriptions
112
- has_many :distinct_subscribers, -> { select("DISTINCT subscribers.*").order("subscribers.nick") }, :through => :subscriptions, :source => :subscriber
113
-
114
- has_one :essay, :primary_key => :name, :as => :writer
115
- has_one :essay_category, :through => :essay, :source => :category
116
- has_one :essay_owner, :through => :essay, :source => :owner
117
-
118
- has_one :essay_2, :primary_key => :name, :class_name => 'Essay', :foreign_key => :author_id
119
- has_one :essay_category_2, :through => :essay_2, :source => :category
120
-
121
- has_many :essays, :primary_key => :name, :as => :writer
122
- has_many :essay_categories, :through => :essays, :source => :category
123
- has_many :essay_owners, :through => :essays, :source => :owner
124
-
125
- has_many :essays_2, :primary_key => :name, :class_name => 'Essay', :foreign_key => :author_id
126
- has_many :essay_categories_2, :through => :essays_2, :source => :category
127
-
128
- belongs_to :owned_essay, :primary_key => :name, :class_name => 'Essay'
129
- has_one :owned_essay_category, :through => :owned_essay, :source => :category
130
-
131
- belongs_to :author_address, :dependent => :destroy
132
- belongs_to :author_address_extra, :dependent => :delete, :class_name => "AuthorAddress"
133
-
134
- has_many :category_post_comments, :through => :categories, :source => :post_comments
135
-
136
- has_many :misc_posts, -> { where(:posts => { :title => ['misc post by bob', 'misc post by mary'] }) }, :class_name => 'Post'
137
- has_many :misc_post_first_blue_tags, :through => :misc_posts, :source => :first_blue_tags
138
-
139
- has_many :misc_post_first_blue_tags_2, -> { where(:posts => { :title => ['misc post by bob', 'misc post by mary'] }) },
140
- :through => :posts, :source => :first_blue_tags_2
141
-
142
- has_many :posts_with_default_include, :class_name => 'PostWithDefaultInclude'
143
- has_many :comments_on_posts_with_default_include, :through => :posts_with_default_include, :source => :comments
144
-
145
- has_many :posts_with_signature, ->(record) { where("posts.title LIKE ?", "%by #{record.name.downcase}%") }, class_name: "Post"
146
-
147
- has_many :posts_with_extension, -> { order(:title) }, class_name: "Post" do
148
- def extension_method; end
149
- end
150
-
151
- has_many :posts_with_extension_and_instance, ->(record) { order(:title) }, class_name: "Post" do
152
- def extension_method; end
153
- end
154
-
155
- attr_accessor :post_log
156
- after_initialize :set_post_log
157
-
158
- def set_post_log
159
- @post_log = []
160
- end
161
-
162
- def label
163
- "#{id}-#{name}"
164
- end
165
-
166
- def social
167
- %w(twitter github)
168
- end
169
-
170
- validates_presence_of :name
171
-
172
- private
173
- def log_before_adding(object)
174
- @post_log << "before_adding#{object.id || '<new>'}"
175
- end
176
-
177
- def log_after_adding(object)
178
- @post_log << "after_adding#{object.id}"
179
- end
180
-
181
- def log_before_removing(object)
182
- @post_log << "before_removing#{object.id}"
183
- end
184
-
185
- def log_after_removing(object)
186
- @post_log << "after_removing#{object.id}"
187
- end
188
-
189
- def raise_exception(object)
190
- raise Exception.new("You can't add a post")
191
- end
192
- end
193
-
194
- class AuthorAddress < ActiveRecord::Base
195
- has_one :author
196
-
197
- def self.destroyed_author_address_ids
198
- @destroyed_author_address_ids ||= []
199
- end
200
-
201
- before_destroy do |author_address|
202
- AuthorAddress.destroyed_author_address_ids << author_address.id
203
- end
204
- end
205
-
206
- class AuthorFavorite < ActiveRecord::Base
207
- belongs_to :author
208
- belongs_to :favorite_author, :class_name => "Author"
209
- end
1
+ class Author < ActiveRecord::Base
2
+ has_many :posts
3
+ has_many :serialized_posts
4
+ has_one :post
5
+ has_many :very_special_comments, :through => :posts
6
+ has_many :posts_with_comments, -> { includes(:comments) }, :class_name => "Post"
7
+ has_many :popular_grouped_posts, -> { includes(:comments).group("type").having("SUM(comments_count) > 1").select("type") }, :class_name => "Post"
8
+ has_many :posts_with_comments_sorted_by_comment_id, -> { includes(:comments).order('comments.id') }, :class_name => "Post"
9
+ has_many :posts_sorted_by_id_limited, -> { order('posts.id').limit(1) }, :class_name => "Post"
10
+ has_many :posts_with_categories, -> { includes(:categories) }, :class_name => "Post"
11
+ has_many :posts_with_comments_and_categories, -> { includes(:comments, :categories).order("posts.id") }, :class_name => "Post"
12
+ has_many :posts_with_special_categorizations, :class_name => 'PostWithSpecialCategorization'
13
+ has_one :post_about_thinking, -> { where("posts.title like '%thinking%'") }, :class_name => 'Post'
14
+ has_one :post_about_thinking_with_last_comment, -> { where("posts.title like '%thinking%'").includes(:last_comment) }, :class_name => 'Post'
15
+ has_many :comments, through: :posts do
16
+ def ratings
17
+ Rating.joins(:comment).merge(self)
18
+ end
19
+ end
20
+ has_many :comments_containing_the_letter_e, :through => :posts, :source => :comments
21
+ has_many :comments_with_order_and_conditions, -> { order('comments.body').where("comments.body like 'Thank%'") }, :through => :posts, :source => :comments
22
+ has_many :comments_with_include, -> { includes(:post) }, :through => :posts, :source => :comments
23
+
24
+ has_many :first_posts
25
+ has_many :comments_on_first_posts, -> { order('posts.id desc, comments.id asc') }, :through => :first_posts, :source => :comments
26
+
27
+ has_one :first_post
28
+ has_one :comment_on_first_post, -> { order('posts.id desc, comments.id asc') }, :through => :first_post, :source => :comments
29
+
30
+ has_many :thinking_posts, -> { where(:title => 'So I was thinking') }, :dependent => :delete_all, :class_name => 'Post'
31
+ has_many :welcome_posts, -> { where(:title => 'Welcome to the weblog') }, :class_name => 'Post'
32
+
33
+ has_many :welcome_posts_with_one_comment,
34
+ -> { where(title: 'Welcome to the weblog').where('comments_count = ?', 1) },
35
+ class_name: 'Post'
36
+ has_many :welcome_posts_with_comments,
37
+ -> { where(title: 'Welcome to the weblog').where(Post.arel_table[:comments_count].gt(0)) },
38
+ class_name: 'Post'
39
+
40
+ has_many :comments_desc, -> { order('comments.id DESC') }, :through => :posts, :source => :comments
41
+ has_many :funky_comments, :through => :posts, :source => :comments
42
+ has_many :ordered_uniq_comments, -> { distinct.order('comments.id') }, :through => :posts, :source => :comments
43
+ has_many :ordered_uniq_comments_desc, -> { distinct.order('comments.id DESC') }, :through => :posts, :source => :comments
44
+ has_many :readonly_comments, -> { readonly }, :through => :posts, :source => :comments
45
+
46
+ has_many :special_posts
47
+ has_many :special_post_comments, :through => :special_posts, :source => :comments
48
+ has_many :special_posts_with_default_scope, :class_name => 'SpecialPostWithDefaultScope'
49
+
50
+ has_many :sti_posts, :class_name => 'StiPost'
51
+ has_many :sti_post_comments, :through => :sti_posts, :source => :comments
52
+
53
+ has_many :special_nonexistent_posts, -> { where("posts.body = 'nonexistent'") }, :class_name => "SpecialPost"
54
+ has_many :special_nonexistent_post_comments, -> { where('comments.post_id' => 0) }, :through => :special_nonexistent_posts, :source => :comments
55
+ has_many :nonexistent_comments, :through => :posts
56
+
57
+ has_many :hello_posts, -> { where "posts.body = 'hello'" }, :class_name => "Post"
58
+ has_many :hello_post_comments, :through => :hello_posts, :source => :comments
59
+ has_many :posts_with_no_comments, -> { where('comments.id' => nil).includes(:comments) }, :class_name => 'Post'
60
+
61
+ has_many :hello_posts_with_hash_conditions, -> { where(:body => 'hello') }, :class_name => "Post"
62
+ has_many :hello_post_comments_with_hash_conditions, :through =>
63
+ :hello_posts_with_hash_conditions, :source => :comments
64
+
65
+ has_many :other_posts, :class_name => "Post"
66
+ has_many :posts_with_callbacks, :class_name => "Post", :before_add => :log_before_adding,
67
+ :after_add => :log_after_adding,
68
+ :before_remove => :log_before_removing,
69
+ :after_remove => :log_after_removing
70
+ has_many :posts_with_proc_callbacks, :class_name => "Post",
71
+ :before_add => Proc.new {|o, r| o.post_log << "before_adding#{r.id || '<new>'}"},
72
+ :after_add => Proc.new {|o, r| o.post_log << "after_adding#{r.id || '<new>'}"},
73
+ :before_remove => Proc.new {|o, r| o.post_log << "before_removing#{r.id}"},
74
+ :after_remove => Proc.new {|o, r| o.post_log << "after_removing#{r.id}"}
75
+ has_many :posts_with_multiple_callbacks, :class_name => "Post",
76
+ :before_add => [:log_before_adding, Proc.new {|o, r| o.post_log << "before_adding_proc#{r.id || '<new>'}"}],
77
+ :after_add => [:log_after_adding, Proc.new {|o, r| o.post_log << "after_adding_proc#{r.id || '<new>'}"}]
78
+ has_many :unchangeable_posts, :class_name => "Post", :before_add => :raise_exception, :after_add => :log_after_adding
79
+
80
+ has_many :categorizations
81
+ has_many :categories, :through => :categorizations
82
+ has_many :named_categories, :through => :categorizations
83
+
84
+ has_many :special_categorizations
85
+ has_many :special_categories, :through => :special_categorizations, :source => :category
86
+ has_one :special_category, :through => :special_categorizations, :source => :category
87
+
88
+ has_many :categories_like_general, -> { where(:name => 'General') }, :through => :categorizations, :source => :category, :class_name => 'Category'
89
+
90
+ has_many :categorized_posts, :through => :categorizations, :source => :post
91
+ has_many :unique_categorized_posts, -> { distinct }, :through => :categorizations, :source => :post
92
+
93
+ has_many :nothings, :through => :kateggorisatons, :class_name => 'Category'
94
+
95
+ has_many :author_favorites
96
+ has_many :favorite_authors, -> { order('name') }, :through => :author_favorites
97
+
98
+ has_many :taggings, :through => :posts, :source => :taggings
99
+ has_many :taggings_2, :through => :posts, :source => :tagging
100
+ has_many :tags, :through => :posts
101
+ has_many :post_categories, :through => :posts, :source => :categories
102
+ has_many :tagging_tags, :through => :taggings, :source => :tag
103
+
104
+ has_many :similar_posts, -> { distinct }, :through => :tags, :source => :tagged_posts
105
+ has_many :distinct_tags, -> { select("DISTINCT tags.*").order("tags.name") }, :through => :posts, :source => :tags
106
+
107
+ has_many :tags_with_primary_key, :through => :posts
108
+
109
+ has_many :books
110
+ has_many :subscriptions, :through => :books
111
+ has_many :subscribers, -> { order("subscribers.nick") }, :through => :subscriptions
112
+ has_many :distinct_subscribers, -> { select("DISTINCT subscribers.*").order("subscribers.nick") }, :through => :subscriptions, :source => :subscriber
113
+
114
+ has_one :essay, :primary_key => :name, :as => :writer
115
+ has_one :essay_category, :through => :essay, :source => :category
116
+ has_one :essay_owner, :through => :essay, :source => :owner
117
+
118
+ has_one :essay_2, :primary_key => :name, :class_name => 'Essay', :foreign_key => :author_id
119
+ has_one :essay_category_2, :through => :essay_2, :source => :category
120
+
121
+ has_many :essays, :primary_key => :name, :as => :writer
122
+ has_many :essay_categories, :through => :essays, :source => :category
123
+ has_many :essay_owners, :through => :essays, :source => :owner
124
+
125
+ has_many :essays_2, :primary_key => :name, :class_name => 'Essay', :foreign_key => :author_id
126
+ has_many :essay_categories_2, :through => :essays_2, :source => :category
127
+
128
+ belongs_to :owned_essay, :primary_key => :name, :class_name => 'Essay'
129
+ has_one :owned_essay_category, :through => :owned_essay, :source => :category
130
+
131
+ belongs_to :author_address, :dependent => :destroy
132
+ belongs_to :author_address_extra, :dependent => :delete, :class_name => "AuthorAddress"
133
+
134
+ has_many :category_post_comments, :through => :categories, :source => :post_comments
135
+
136
+ has_many :misc_posts, -> { where(:posts => { :title => ['misc post by bob', 'misc post by mary'] }) }, :class_name => 'Post'
137
+ has_many :misc_post_first_blue_tags, :through => :misc_posts, :source => :first_blue_tags
138
+
139
+ has_many :misc_post_first_blue_tags_2, -> { where(:posts => { :title => ['misc post by bob', 'misc post by mary'] }) },
140
+ :through => :posts, :source => :first_blue_tags_2
141
+
142
+ has_many :posts_with_default_include, :class_name => 'PostWithDefaultInclude'
143
+ has_many :comments_on_posts_with_default_include, :through => :posts_with_default_include, :source => :comments
144
+
145
+ has_many :posts_with_signature, ->(record) { where("posts.title LIKE ?", "%by #{record.name.downcase}%") }, class_name: "Post"
146
+
147
+ has_many :posts_with_extension, -> { order(:title) }, class_name: "Post" do
148
+ def extension_method; end
149
+ end
150
+
151
+ has_many :posts_with_extension_and_instance, ->(record) { order(:title) }, class_name: "Post" do
152
+ def extension_method; end
153
+ end
154
+
155
+ attr_accessor :post_log
156
+ after_initialize :set_post_log
157
+
158
+ def set_post_log
159
+ @post_log = []
160
+ end
161
+
162
+ def label
163
+ "#{id}-#{name}"
164
+ end
165
+
166
+ def social
167
+ %w(twitter github)
168
+ end
169
+
170
+ validates_presence_of :name
171
+
172
+ private
173
+ def log_before_adding(object)
174
+ @post_log << "before_adding#{object.id || '<new>'}"
175
+ end
176
+
177
+ def log_after_adding(object)
178
+ @post_log << "after_adding#{object.id}"
179
+ end
180
+
181
+ def log_before_removing(object)
182
+ @post_log << "before_removing#{object.id}"
183
+ end
184
+
185
+ def log_after_removing(object)
186
+ @post_log << "after_removing#{object.id}"
187
+ end
188
+
189
+ def raise_exception(object)
190
+ raise Exception.new("You can't add a post")
191
+ end
192
+ end
193
+
194
+ class AuthorAddress < ActiveRecord::Base
195
+ has_one :author
196
+
197
+ def self.destroyed_author_address_ids
198
+ @destroyed_author_address_ids ||= []
199
+ end
200
+
201
+ before_destroy do |author_address|
202
+ AuthorAddress.destroyed_author_address_ids << author_address.id
203
+ end
204
+ end
205
+
206
+ class AuthorFavorite < ActiveRecord::Base
207
+ belongs_to :author
208
+ belongs_to :favorite_author, :class_name => "Author"
209
+ end