activerecord 1.0.0 → 2.0.0

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 (311) hide show
  1. data/CHANGELOG +4928 -3
  2. data/README +45 -46
  3. data/RUNNING_UNIT_TESTS +8 -11
  4. data/Rakefile +247 -0
  5. data/install.rb +8 -38
  6. data/lib/active_record/aggregations.rb +64 -49
  7. data/lib/active_record/associations/association_collection.rb +217 -47
  8. data/lib/active_record/associations/association_proxy.rb +159 -0
  9. data/lib/active_record/associations/belongs_to_association.rb +56 -0
  10. data/lib/active_record/associations/belongs_to_polymorphic_association.rb +50 -0
  11. data/lib/active_record/associations/has_and_belongs_to_many_association.rb +155 -37
  12. data/lib/active_record/associations/has_many_association.rb +145 -75
  13. data/lib/active_record/associations/has_many_through_association.rb +283 -0
  14. data/lib/active_record/associations/has_one_association.rb +96 -0
  15. data/lib/active_record/associations.rb +1537 -304
  16. data/lib/active_record/attribute_methods.rb +328 -0
  17. data/lib/active_record/base.rb +2001 -588
  18. data/lib/active_record/calculations.rb +269 -0
  19. data/lib/active_record/callbacks.rb +169 -165
  20. data/lib/active_record/connection_adapters/abstract/connection_specification.rb +308 -0
  21. data/lib/active_record/connection_adapters/abstract/database_statements.rb +171 -0
  22. data/lib/active_record/connection_adapters/abstract/query_cache.rb +87 -0
  23. data/lib/active_record/connection_adapters/abstract/quoting.rb +69 -0
  24. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +472 -0
  25. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +306 -0
  26. data/lib/active_record/connection_adapters/abstract_adapter.rb +125 -279
  27. data/lib/active_record/connection_adapters/mysql_adapter.rb +442 -77
  28. data/lib/active_record/connection_adapters/postgresql_adapter.rb +805 -135
  29. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  30. data/lib/active_record/connection_adapters/sqlite_adapter.rb +353 -69
  31. data/lib/active_record/fixtures.rb +946 -100
  32. data/lib/active_record/locking/optimistic.rb +144 -0
  33. data/lib/active_record/locking/pessimistic.rb +77 -0
  34. data/lib/active_record/migration.rb +417 -0
  35. data/lib/active_record/observer.rb +142 -32
  36. data/lib/active_record/query_cache.rb +23 -0
  37. data/lib/active_record/reflection.rb +163 -70
  38. data/lib/active_record/schema.rb +58 -0
  39. data/lib/active_record/schema_dumper.rb +171 -0
  40. data/lib/active_record/serialization.rb +98 -0
  41. data/lib/active_record/serializers/json_serializer.rb +71 -0
  42. data/lib/active_record/serializers/xml_serializer.rb +315 -0
  43. data/lib/active_record/timestamp.rb +41 -0
  44. data/lib/active_record/transactions.rb +87 -57
  45. data/lib/active_record/validations.rb +909 -122
  46. data/lib/active_record/vendor/db2.rb +362 -0
  47. data/lib/active_record/vendor/mysql.rb +126 -29
  48. data/lib/active_record/version.rb +9 -0
  49. data/lib/active_record.rb +35 -7
  50. data/lib/activerecord.rb +1 -0
  51. data/test/aaa_create_tables_test.rb +72 -0
  52. data/test/abstract_unit.rb +73 -5
  53. data/test/active_schema_test_mysql.rb +43 -0
  54. data/test/adapter_test.rb +105 -0
  55. data/test/adapter_test_sqlserver.rb +95 -0
  56. data/test/aggregations_test.rb +110 -16
  57. data/test/all.sh +2 -2
  58. data/test/ar_schema_test.rb +33 -0
  59. data/test/association_inheritance_reload.rb +14 -0
  60. data/test/associations/ar_joins_test.rb +0 -0
  61. data/test/associations/callbacks_test.rb +147 -0
  62. data/test/associations/cascaded_eager_loading_test.rb +110 -0
  63. data/test/associations/eager_singularization_test.rb +145 -0
  64. data/test/associations/eager_test.rb +442 -0
  65. data/test/associations/extension_test.rb +47 -0
  66. data/test/associations/inner_join_association_test.rb +88 -0
  67. data/test/associations/join_model_test.rb +553 -0
  68. data/test/associations_test.rb +1930 -267
  69. data/test/attribute_methods_test.rb +146 -0
  70. data/test/base_test.rb +1316 -84
  71. data/test/binary_test.rb +32 -0
  72. data/test/calculations_test.rb +251 -0
  73. data/test/callbacks_test.rb +400 -0
  74. data/test/class_inheritable_attributes_test.rb +3 -4
  75. data/test/column_alias_test.rb +17 -0
  76. data/test/connection_test_firebird.rb +8 -0
  77. data/test/connection_test_mysql.rb +30 -0
  78. data/test/connections/native_db2/connection.rb +25 -0
  79. data/test/connections/native_firebird/connection.rb +26 -0
  80. data/test/connections/native_frontbase/connection.rb +27 -0
  81. data/test/connections/native_mysql/connection.rb +21 -18
  82. data/test/connections/native_openbase/connection.rb +21 -0
  83. data/test/connections/native_oracle/connection.rb +27 -0
  84. data/test/connections/native_postgresql/connection.rb +17 -18
  85. data/test/connections/native_sqlite/connection.rb +17 -16
  86. data/test/connections/native_sqlite3/connection.rb +25 -0
  87. data/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  88. data/test/connections/native_sybase/connection.rb +23 -0
  89. data/test/copy_table_test_sqlite.rb +69 -0
  90. data/test/datatype_test_postgresql.rb +203 -0
  91. data/test/date_time_test.rb +37 -0
  92. data/test/default_test_firebird.rb +16 -0
  93. data/test/defaults_test.rb +67 -0
  94. data/test/deprecated_finder_test.rb +30 -0
  95. data/test/finder_test.rb +607 -32
  96. data/test/fixtures/accounts.yml +28 -0
  97. data/test/fixtures/all/developers.yml +0 -0
  98. data/test/fixtures/all/people.csv +0 -0
  99. data/test/fixtures/all/tasks.yml +0 -0
  100. data/test/fixtures/author.rb +107 -0
  101. data/test/fixtures/author_favorites.yml +4 -0
  102. data/test/fixtures/authors.yml +7 -0
  103. data/test/fixtures/bad_fixtures/attr_with_numeric_first_char +1 -0
  104. data/test/fixtures/bad_fixtures/attr_with_spaces +1 -0
  105. data/test/fixtures/bad_fixtures/blank_line +3 -0
  106. data/test/fixtures/bad_fixtures/duplicate_attributes +3 -0
  107. data/test/fixtures/bad_fixtures/missing_value +1 -0
  108. data/test/fixtures/binaries.yml +132 -0
  109. data/test/fixtures/binary.rb +2 -0
  110. data/test/fixtures/book.rb +4 -0
  111. data/test/fixtures/books.yml +7 -0
  112. data/test/fixtures/categories/special_categories.yml +9 -0
  113. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  114. data/test/fixtures/categories.yml +14 -0
  115. data/test/fixtures/categories_ordered.yml +7 -0
  116. data/test/fixtures/categories_posts.yml +23 -0
  117. data/test/fixtures/categorization.rb +5 -0
  118. data/test/fixtures/categorizations.yml +17 -0
  119. data/test/fixtures/category.rb +26 -0
  120. data/test/fixtures/citation.rb +6 -0
  121. data/test/fixtures/comment.rb +23 -0
  122. data/test/fixtures/comments.yml +59 -0
  123. data/test/fixtures/companies.yml +55 -0
  124. data/test/fixtures/company.rb +81 -4
  125. data/test/fixtures/company_in_module.rb +32 -6
  126. data/test/fixtures/computer.rb +4 -0
  127. data/test/fixtures/computers.yml +4 -0
  128. data/test/fixtures/contact.rb +16 -0
  129. data/test/fixtures/courses.yml +7 -0
  130. data/test/fixtures/customer.rb +28 -3
  131. data/test/fixtures/customers.yml +17 -0
  132. data/test/fixtures/db_definitions/db2.drop.sql +33 -0
  133. data/test/fixtures/db_definitions/db2.sql +235 -0
  134. data/test/fixtures/db_definitions/db22.drop.sql +2 -0
  135. data/test/fixtures/db_definitions/db22.sql +5 -0
  136. data/test/fixtures/db_definitions/firebird.drop.sql +65 -0
  137. data/test/fixtures/db_definitions/firebird.sql +310 -0
  138. data/test/fixtures/db_definitions/firebird2.drop.sql +2 -0
  139. data/test/fixtures/db_definitions/firebird2.sql +6 -0
  140. data/test/fixtures/db_definitions/frontbase.drop.sql +33 -0
  141. data/test/fixtures/db_definitions/frontbase.sql +273 -0
  142. data/test/fixtures/db_definitions/frontbase2.drop.sql +1 -0
  143. data/test/fixtures/db_definitions/frontbase2.sql +4 -0
  144. data/test/fixtures/db_definitions/openbase.drop.sql +2 -0
  145. data/test/fixtures/db_definitions/openbase.sql +318 -0
  146. data/test/fixtures/db_definitions/openbase2.drop.sql +2 -0
  147. data/test/fixtures/db_definitions/openbase2.sql +7 -0
  148. data/test/fixtures/db_definitions/oracle.drop.sql +67 -0
  149. data/test/fixtures/db_definitions/oracle.sql +330 -0
  150. data/test/fixtures/db_definitions/oracle2.drop.sql +2 -0
  151. data/test/fixtures/db_definitions/oracle2.sql +6 -0
  152. data/test/fixtures/db_definitions/postgresql.drop.sql +44 -0
  153. data/test/fixtures/db_definitions/postgresql.sql +217 -38
  154. data/test/fixtures/db_definitions/postgresql2.drop.sql +2 -0
  155. data/test/fixtures/db_definitions/postgresql2.sql +2 -2
  156. data/test/fixtures/db_definitions/schema.rb +354 -0
  157. data/test/fixtures/db_definitions/schema2.rb +11 -0
  158. data/test/fixtures/db_definitions/sqlite.drop.sql +33 -0
  159. data/test/fixtures/db_definitions/sqlite.sql +139 -5
  160. data/test/fixtures/db_definitions/sqlite2.drop.sql +2 -0
  161. data/test/fixtures/db_definitions/sqlite2.sql +1 -0
  162. data/test/fixtures/db_definitions/sybase.drop.sql +35 -0
  163. data/test/fixtures/db_definitions/sybase.sql +222 -0
  164. data/test/fixtures/db_definitions/sybase2.drop.sql +4 -0
  165. data/test/fixtures/db_definitions/sybase2.sql +5 -0
  166. data/test/fixtures/developer.rb +70 -6
  167. data/test/fixtures/developers.yml +21 -0
  168. data/test/fixtures/developers_projects/david_action_controller +2 -1
  169. data/test/fixtures/developers_projects/david_active_record +2 -1
  170. data/test/fixtures/developers_projects.yml +17 -0
  171. data/test/fixtures/edge.rb +5 -0
  172. data/test/fixtures/edges.yml +6 -0
  173. data/test/fixtures/entrants.yml +14 -0
  174. data/test/fixtures/example.log +1 -0
  175. data/test/fixtures/fk_test_has_fk.yml +3 -0
  176. data/test/fixtures/fk_test_has_pk.yml +2 -0
  177. data/test/fixtures/flowers.jpg +0 -0
  178. data/test/fixtures/funny_jokes.yml +10 -0
  179. data/test/fixtures/item.rb +7 -0
  180. data/test/fixtures/items.yml +4 -0
  181. data/test/fixtures/joke.rb +3 -0
  182. data/test/fixtures/keyboard.rb +3 -0
  183. data/test/fixtures/legacy_thing.rb +3 -0
  184. data/test/fixtures/legacy_things.yml +3 -0
  185. data/test/fixtures/matey.rb +4 -0
  186. data/test/fixtures/mateys.yml +4 -0
  187. data/test/fixtures/migrations/1_people_have_last_names.rb +9 -0
  188. data/test/fixtures/migrations/2_we_need_reminders.rb +12 -0
  189. data/test/fixtures/migrations/3_innocent_jointable.rb +12 -0
  190. data/test/fixtures/migrations_with_decimal/1_give_me_big_numbers.rb +15 -0
  191. data/test/fixtures/migrations_with_duplicate/1_people_have_last_names.rb +9 -0
  192. data/test/fixtures/migrations_with_duplicate/2_we_need_reminders.rb +12 -0
  193. data/test/fixtures/migrations_with_duplicate/3_foo.rb +7 -0
  194. data/test/fixtures/migrations_with_duplicate/3_innocent_jointable.rb +12 -0
  195. data/test/fixtures/migrations_with_missing_versions/1000_people_have_middle_names.rb +9 -0
  196. data/test/fixtures/migrations_with_missing_versions/1_people_have_last_names.rb +9 -0
  197. data/test/fixtures/migrations_with_missing_versions/3_we_need_reminders.rb +12 -0
  198. data/test/fixtures/migrations_with_missing_versions/4_innocent_jointable.rb +12 -0
  199. data/test/fixtures/minimalistic.rb +2 -0
  200. data/test/fixtures/minimalistics.yml +2 -0
  201. data/test/fixtures/mixed_case_monkey.rb +3 -0
  202. data/test/fixtures/mixed_case_monkeys.yml +6 -0
  203. data/test/fixtures/mixins.yml +29 -0
  204. data/test/fixtures/movies.yml +7 -0
  205. data/test/fixtures/naked/csv/accounts.csv +1 -0
  206. data/test/fixtures/naked/yml/accounts.yml +1 -0
  207. data/test/fixtures/naked/yml/companies.yml +1 -0
  208. data/test/fixtures/naked/yml/courses.yml +1 -0
  209. data/test/fixtures/order.rb +4 -0
  210. data/test/fixtures/parrot.rb +13 -0
  211. data/test/fixtures/parrots.yml +27 -0
  212. data/test/fixtures/parrots_pirates.yml +7 -0
  213. data/test/fixtures/people.yml +3 -0
  214. data/test/fixtures/person.rb +4 -0
  215. data/test/fixtures/pirate.rb +5 -0
  216. data/test/fixtures/pirates.yml +9 -0
  217. data/test/fixtures/post.rb +59 -0
  218. data/test/fixtures/posts.yml +48 -0
  219. data/test/fixtures/project.rb +27 -2
  220. data/test/fixtures/projects.yml +7 -0
  221. data/test/fixtures/reader.rb +4 -0
  222. data/test/fixtures/readers.yml +4 -0
  223. data/test/fixtures/reply.rb +18 -2
  224. data/test/fixtures/reserved_words/distinct.yml +5 -0
  225. data/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  226. data/test/fixtures/reserved_words/group.yml +14 -0
  227. data/test/fixtures/reserved_words/select.yml +8 -0
  228. data/test/fixtures/reserved_words/values.yml +7 -0
  229. data/test/fixtures/ship.rb +3 -0
  230. data/test/fixtures/ships.yml +5 -0
  231. data/test/fixtures/subject.rb +4 -0
  232. data/test/fixtures/subscriber.rb +4 -3
  233. data/test/fixtures/tag.rb +7 -0
  234. data/test/fixtures/tagging.rb +10 -0
  235. data/test/fixtures/taggings.yml +25 -0
  236. data/test/fixtures/tags.yml +7 -0
  237. data/test/fixtures/task.rb +3 -0
  238. data/test/fixtures/tasks.yml +7 -0
  239. data/test/fixtures/topic.rb +20 -3
  240. data/test/fixtures/topics.yml +22 -0
  241. data/test/fixtures/treasure.rb +4 -0
  242. data/test/fixtures/treasures.yml +10 -0
  243. data/test/fixtures/vertex.rb +9 -0
  244. data/test/fixtures/vertices.yml +4 -0
  245. data/test/fixtures_test.rb +574 -8
  246. data/test/inheritance_test.rb +113 -27
  247. data/test/json_serialization_test.rb +180 -0
  248. data/test/lifecycle_test.rb +56 -29
  249. data/test/locking_test.rb +273 -0
  250. data/test/method_scoping_test.rb +416 -0
  251. data/test/migration_test.rb +933 -0
  252. data/test/migration_test_firebird.rb +124 -0
  253. data/test/mixin_test.rb +95 -0
  254. data/test/modules_test.rb +23 -10
  255. data/test/multiple_db_test.rb +17 -3
  256. data/test/pk_test.rb +59 -15
  257. data/test/query_cache_test.rb +104 -0
  258. data/test/readonly_test.rb +107 -0
  259. data/test/reflection_test.rb +124 -27
  260. data/test/reserved_word_test_mysql.rb +177 -0
  261. data/test/schema_authorization_test_postgresql.rb +75 -0
  262. data/test/schema_dumper_test.rb +131 -0
  263. data/test/schema_test_postgresql.rb +64 -0
  264. data/test/serialization_test.rb +47 -0
  265. data/test/synonym_test_oracle.rb +17 -0
  266. data/test/table_name_test_sqlserver.rb +23 -0
  267. data/test/threaded_connections_test.rb +48 -0
  268. data/test/transactions_test.rb +227 -29
  269. data/test/unconnected_test.rb +14 -6
  270. data/test/validations_test.rb +1293 -32
  271. data/test/xml_serialization_test.rb +202 -0
  272. metadata +347 -143
  273. data/dev-utils/eval_debugger.rb +0 -9
  274. data/examples/associations.rb +0 -87
  275. data/examples/shared_setup.rb +0 -15
  276. data/examples/validation.rb +0 -88
  277. data/lib/active_record/deprecated_associations.rb +0 -70
  278. data/lib/active_record/support/class_attribute_accessors.rb +0 -43
  279. data/lib/active_record/support/class_inheritable_attributes.rb +0 -37
  280. data/lib/active_record/support/clean_logger.rb +0 -10
  281. data/lib/active_record/support/inflector.rb +0 -70
  282. data/lib/active_record/vendor/simple.rb +0 -702
  283. data/lib/active_record/wrappers/yaml_wrapper.rb +0 -15
  284. data/lib/active_record/wrappings.rb +0 -59
  285. data/rakefile +0 -122
  286. data/test/deprecated_associations_test.rb +0 -336
  287. data/test/fixtures/accounts/signals37 +0 -3
  288. data/test/fixtures/accounts/unknown +0 -2
  289. data/test/fixtures/companies/first_client +0 -6
  290. data/test/fixtures/companies/first_firm +0 -4
  291. data/test/fixtures/companies/second_client +0 -6
  292. data/test/fixtures/courses/java +0 -2
  293. data/test/fixtures/courses/ruby +0 -2
  294. data/test/fixtures/customers/david +0 -6
  295. data/test/fixtures/db_definitions/mysql.sql +0 -96
  296. data/test/fixtures/db_definitions/mysql2.sql +0 -4
  297. data/test/fixtures/developers/david +0 -2
  298. data/test/fixtures/developers/jamis +0 -2
  299. data/test/fixtures/entrants/first +0 -3
  300. data/test/fixtures/entrants/second +0 -3
  301. data/test/fixtures/entrants/third +0 -3
  302. data/test/fixtures/fixture_database.sqlite +0 -0
  303. data/test/fixtures/fixture_database_2.sqlite +0 -0
  304. data/test/fixtures/movies/first +0 -2
  305. data/test/fixtures/movies/second +0 -2
  306. data/test/fixtures/projects/action_controller +0 -2
  307. data/test/fixtures/projects/active_record +0 -2
  308. data/test/fixtures/topics/first +0 -9
  309. data/test/fixtures/topics/second +0 -8
  310. data/test/inflector_test.rb +0 -104
  311. data/test/thread_safety_test.rb +0 -33
metadata CHANGED
@@ -1,166 +1,370 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.1
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: activerecord
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
7
- date: 2004-10-25
6
+ version: 2.0.0
7
+ date: 2007-12-06 00:00:00 -06:00
8
8
  summary: Implements the ActiveRecord pattern for ORM.
9
9
  require_paths:
10
- - lib
11
- author: David Heinemeier Hansson
10
+ - lib
12
11
  email: david@loudthinking.com
13
- homepage: http://activerecord.rubyonrails.org
12
+ homepage: http://www.rubyonrails.org
14
13
  rubyforge_project: activerecord
15
- description: "Implements the ActiveRecord pattern (Fowler, PoEAA) for ORM. It ties database tables and classes together for business objects, like Customer or Subscription, that can find, save, and destroy themselves without resorting to manual SQL."
14
+ description: Implements the ActiveRecord pattern (Fowler, PoEAA) for ORM. It ties database tables and classes together for business objects, like Customer or Subscription, that can find, save, and destroy themselves without resorting to manual SQL.
16
15
  autorequire: active_record
17
16
  default_executable:
18
17
  bindir: bin
19
18
  has_rdoc: true
20
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
21
20
  requirements:
22
- -
23
- - ">"
24
- - !ruby/object:Gem::Version
25
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
26
24
  version:
27
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - David Heinemeier Hansson
28
31
  files:
29
- - rakefile
30
- - install.rb
31
- - README
32
- - RUNNING_UNIT_TESTS
33
- - CHANGELOG
34
- - lib/active_record
35
- - lib/active_record.rb
36
- - lib/active_record/aggregations.rb
37
- - lib/active_record/associations
38
- - lib/active_record/associations.rb
39
- - lib/active_record/base.rb
40
- - lib/active_record/callbacks.rb
41
- - lib/active_record/connection_adapters
42
- - lib/active_record/deprecated_associations.rb
43
- - lib/active_record/fixtures.rb
44
- - lib/active_record/observer.rb
45
- - lib/active_record/reflection.rb
46
- - lib/active_record/support
47
- - lib/active_record/transactions.rb
48
- - lib/active_record/validations.rb
49
- - lib/active_record/vendor
50
- - lib/active_record/wrappers
51
- - lib/active_record/wrappings.rb
52
- - lib/active_record/associations/association_collection.rb
53
- - lib/active_record/associations/has_and_belongs_to_many_association.rb
54
- - lib/active_record/associations/has_many_association.rb
55
- - lib/active_record/connection_adapters/abstract_adapter.rb
56
- - lib/active_record/connection_adapters/mysql_adapter.rb
57
- - lib/active_record/connection_adapters/postgresql_adapter.rb
58
- - lib/active_record/connection_adapters/sqlite_adapter.rb
59
- - lib/active_record/support/class_attribute_accessors.rb
60
- - lib/active_record/support/class_inheritable_attributes.rb
61
- - lib/active_record/support/clean_logger.rb
62
- - lib/active_record/support/inflector.rb
63
- - lib/active_record/vendor/mysql.rb
64
- - lib/active_record/vendor/simple.rb
65
- - lib/active_record/wrappers/yaml_wrapper.rb
66
- - test/abstract_unit.rb
67
- - test/aggregations_test.rb
68
- - test/all.sh
69
- - test/associations_test.rb
70
- - test/base_test.rb
71
- - test/class_inheritable_attributes_test.rb
72
- - test/connections
73
- - test/deprecated_associations_test.rb
74
- - test/finder_test.rb
75
- - test/fixtures
76
- - test/fixtures_test.rb
77
- - test/inflector_test.rb
78
- - test/inheritance_test.rb
79
- - test/lifecycle_test.rb
80
- - test/modules_test.rb
81
- - test/multiple_db_test.rb
82
- - test/pk_test.rb
83
- - test/reflection_test.rb
84
- - test/thread_safety_test.rb
85
- - test/transactions_test.rb
86
- - test/unconnected_test.rb
87
- - test/validations_test.rb
88
- - test/connections/native_mysql
89
- - test/connections/native_postgresql
90
- - test/connections/native_sqlite
91
- - test/connections/native_mysql/connection.rb
92
- - test/connections/native_postgresql/connection.rb
93
- - test/connections/native_sqlite/connection.rb
94
- - test/fixtures/accounts
95
- - test/fixtures/auto_id.rb
96
- - test/fixtures/column_name.rb
97
- - test/fixtures/companies
98
- - test/fixtures/company.rb
99
- - test/fixtures/company_in_module.rb
100
- - test/fixtures/course.rb
101
- - test/fixtures/courses
102
- - test/fixtures/customer.rb
103
- - test/fixtures/customers
104
- - test/fixtures/db_definitions
105
- - test/fixtures/default.rb
106
- - test/fixtures/developer.rb
107
- - test/fixtures/developers
108
- - test/fixtures/developers_projects
109
- - test/fixtures/entrant.rb
110
- - test/fixtures/entrants
111
- - test/fixtures/fixture_database.sqlite
112
- - test/fixtures/fixture_database_2.sqlite
113
- - test/fixtures/movie.rb
114
- - test/fixtures/movies
115
- - test/fixtures/project.rb
116
- - test/fixtures/projects
117
- - test/fixtures/reply.rb
118
- - test/fixtures/subscriber.rb
119
- - test/fixtures/subscribers
120
- - test/fixtures/topic.rb
121
- - test/fixtures/topics
122
- - test/fixtures/accounts/signals37
123
- - test/fixtures/accounts/unknown
124
- - test/fixtures/companies/first_client
125
- - test/fixtures/companies/first_firm
126
- - test/fixtures/companies/second_client
127
- - test/fixtures/courses/java
128
- - test/fixtures/courses/ruby
129
- - test/fixtures/customers/david
130
- - test/fixtures/db_definitions/mysql.sql
131
- - test/fixtures/db_definitions/mysql2.sql
132
- - test/fixtures/db_definitions/postgresql.sql
133
- - test/fixtures/db_definitions/postgresql2.sql
134
- - test/fixtures/db_definitions/sqlite.sql
135
- - test/fixtures/db_definitions/sqlite2.sql
136
- - test/fixtures/developers/david
137
- - test/fixtures/developers/jamis
138
- - test/fixtures/developers_projects/david_action_controller
139
- - test/fixtures/developers_projects/david_active_record
140
- - test/fixtures/developers_projects/jamis_active_record
141
- - test/fixtures/entrants/first
142
- - test/fixtures/entrants/second
143
- - test/fixtures/entrants/third
144
- - test/fixtures/movies/first
145
- - test/fixtures/movies/second
146
- - test/fixtures/projects/action_controller
147
- - test/fixtures/projects/active_record
148
- - test/fixtures/subscribers/first
149
- - test/fixtures/subscribers/second
150
- - test/fixtures/topics/first
151
- - test/fixtures/topics/second
152
- - examples/associations.png
153
- - examples/associations.rb
154
- - examples/shared_setup.rb
155
- - examples/validation.rb
156
- - dev-utils/eval_debugger.rb
32
+ - Rakefile
33
+ - install.rb
34
+ - README
35
+ - RUNNING_UNIT_TESTS
36
+ - CHANGELOG
37
+ - lib/active_record
38
+ - lib/active_record/aggregations.rb
39
+ - lib/active_record/associations
40
+ - lib/active_record/associations/association_collection.rb
41
+ - lib/active_record/associations/association_proxy.rb
42
+ - lib/active_record/associations/belongs_to_association.rb
43
+ - lib/active_record/associations/belongs_to_polymorphic_association.rb
44
+ - lib/active_record/associations/has_and_belongs_to_many_association.rb
45
+ - lib/active_record/associations/has_many_association.rb
46
+ - lib/active_record/associations/has_many_through_association.rb
47
+ - lib/active_record/associations/has_one_association.rb
48
+ - lib/active_record/associations.rb
49
+ - lib/active_record/attribute_methods.rb
50
+ - lib/active_record/base.rb
51
+ - lib/active_record/calculations.rb
52
+ - lib/active_record/callbacks.rb
53
+ - lib/active_record/connection_adapters
54
+ - lib/active_record/connection_adapters/abstract
55
+ - lib/active_record/connection_adapters/abstract/connection_specification.rb
56
+ - lib/active_record/connection_adapters/abstract/database_statements.rb
57
+ - lib/active_record/connection_adapters/abstract/query_cache.rb
58
+ - lib/active_record/connection_adapters/abstract/quoting.rb
59
+ - lib/active_record/connection_adapters/abstract/schema_definitions.rb
60
+ - lib/active_record/connection_adapters/abstract/schema_statements.rb
61
+ - lib/active_record/connection_adapters/abstract_adapter.rb
62
+ - lib/active_record/connection_adapters/mysql_adapter.rb
63
+ - lib/active_record/connection_adapters/postgresql_adapter.rb
64
+ - lib/active_record/connection_adapters/sqlite3_adapter.rb
65
+ - lib/active_record/connection_adapters/sqlite_adapter.rb
66
+ - lib/active_record/fixtures.rb
67
+ - lib/active_record/locking
68
+ - lib/active_record/locking/optimistic.rb
69
+ - lib/active_record/locking/pessimistic.rb
70
+ - lib/active_record/migration.rb
71
+ - lib/active_record/observer.rb
72
+ - lib/active_record/query_cache.rb
73
+ - lib/active_record/reflection.rb
74
+ - lib/active_record/schema.rb
75
+ - lib/active_record/schema_dumper.rb
76
+ - lib/active_record/serialization.rb
77
+ - lib/active_record/serializers
78
+ - lib/active_record/serializers/json_serializer.rb
79
+ - lib/active_record/serializers/xml_serializer.rb
80
+ - lib/active_record/timestamp.rb
81
+ - lib/active_record/transactions.rb
82
+ - lib/active_record/validations.rb
83
+ - lib/active_record/vendor
84
+ - lib/active_record/vendor/db2.rb
85
+ - lib/active_record/vendor/mysql.rb
86
+ - lib/active_record/version.rb
87
+ - lib/active_record.rb
88
+ - lib/activerecord.rb
89
+ - test/aaa_create_tables_test.rb
90
+ - test/abstract_unit.rb
91
+ - test/active_schema_test_mysql.rb
92
+ - test/adapter_test.rb
93
+ - test/adapter_test_sqlserver.rb
94
+ - test/aggregations_test.rb
95
+ - test/all.sh
96
+ - test/ar_schema_test.rb
97
+ - test/association_inheritance_reload.rb
98
+ - test/associations
99
+ - test/associations/ar_joins_test.rb
100
+ - test/associations/callbacks_test.rb
101
+ - test/associations/cascaded_eager_loading_test.rb
102
+ - test/associations/eager_singularization_test.rb
103
+ - test/associations/eager_test.rb
104
+ - test/associations/extension_test.rb
105
+ - test/associations/inner_join_association_test.rb
106
+ - test/associations/join_model_test.rb
107
+ - test/associations_test.rb
108
+ - test/attribute_methods_test.rb
109
+ - test/base_test.rb
110
+ - test/binary_test.rb
111
+ - test/calculations_test.rb
112
+ - test/callbacks_test.rb
113
+ - test/class_inheritable_attributes_test.rb
114
+ - test/column_alias_test.rb
115
+ - test/connection_test_firebird.rb
116
+ - test/connection_test_mysql.rb
117
+ - test/connections
118
+ - test/connections/native_db2
119
+ - test/connections/native_db2/connection.rb
120
+ - test/connections/native_firebird
121
+ - test/connections/native_firebird/connection.rb
122
+ - test/connections/native_frontbase
123
+ - test/connections/native_frontbase/connection.rb
124
+ - test/connections/native_mysql
125
+ - test/connections/native_mysql/connection.rb
126
+ - test/connections/native_openbase
127
+ - test/connections/native_openbase/connection.rb
128
+ - test/connections/native_oracle
129
+ - test/connections/native_oracle/connection.rb
130
+ - test/connections/native_postgresql
131
+ - test/connections/native_postgresql/connection.rb
132
+ - test/connections/native_sqlite
133
+ - test/connections/native_sqlite/connection.rb
134
+ - test/connections/native_sqlite3
135
+ - test/connections/native_sqlite3/connection.rb
136
+ - test/connections/native_sqlite3/in_memory_connection.rb
137
+ - test/connections/native_sybase
138
+ - test/connections/native_sybase/connection.rb
139
+ - test/copy_table_test_sqlite.rb
140
+ - test/datatype_test_postgresql.rb
141
+ - test/date_time_test.rb
142
+ - test/default_test_firebird.rb
143
+ - test/defaults_test.rb
144
+ - test/deprecated_finder_test.rb
145
+ - test/finder_test.rb
146
+ - test/fixtures
147
+ - test/fixtures/accounts.yml
148
+ - test/fixtures/all
149
+ - test/fixtures/all/developers.yml
150
+ - test/fixtures/all/people.csv
151
+ - test/fixtures/all/tasks.yml
152
+ - test/fixtures/author.rb
153
+ - test/fixtures/author_favorites.yml
154
+ - test/fixtures/authors.yml
155
+ - test/fixtures/auto_id.rb
156
+ - test/fixtures/bad_fixtures
157
+ - test/fixtures/bad_fixtures/attr_with_numeric_first_char
158
+ - test/fixtures/bad_fixtures/attr_with_spaces
159
+ - test/fixtures/bad_fixtures/blank_line
160
+ - test/fixtures/bad_fixtures/duplicate_attributes
161
+ - test/fixtures/bad_fixtures/missing_value
162
+ - test/fixtures/binaries.yml
163
+ - test/fixtures/binary.rb
164
+ - test/fixtures/book.rb
165
+ - test/fixtures/books.yml
166
+ - test/fixtures/categories
167
+ - test/fixtures/categories/special_categories.yml
168
+ - test/fixtures/categories/subsubdir
169
+ - test/fixtures/categories/subsubdir/arbitrary_filename.yml
170
+ - test/fixtures/categories.yml
171
+ - test/fixtures/categories_ordered.yml
172
+ - test/fixtures/categories_posts.yml
173
+ - test/fixtures/categorization.rb
174
+ - test/fixtures/categorizations.yml
175
+ - test/fixtures/category.rb
176
+ - test/fixtures/citation.rb
177
+ - test/fixtures/column_name.rb
178
+ - test/fixtures/comment.rb
179
+ - test/fixtures/comments.yml
180
+ - test/fixtures/companies.yml
181
+ - test/fixtures/company.rb
182
+ - test/fixtures/company_in_module.rb
183
+ - test/fixtures/computer.rb
184
+ - test/fixtures/computers.yml
185
+ - test/fixtures/contact.rb
186
+ - test/fixtures/course.rb
187
+ - test/fixtures/courses.yml
188
+ - test/fixtures/customer.rb
189
+ - test/fixtures/customers.yml
190
+ - test/fixtures/db_definitions
191
+ - test/fixtures/db_definitions/db2.drop.sql
192
+ - test/fixtures/db_definitions/db2.sql
193
+ - test/fixtures/db_definitions/db22.drop.sql
194
+ - test/fixtures/db_definitions/db22.sql
195
+ - test/fixtures/db_definitions/firebird.drop.sql
196
+ - test/fixtures/db_definitions/firebird.sql
197
+ - test/fixtures/db_definitions/firebird2.drop.sql
198
+ - test/fixtures/db_definitions/firebird2.sql
199
+ - test/fixtures/db_definitions/frontbase.drop.sql
200
+ - test/fixtures/db_definitions/frontbase.sql
201
+ - test/fixtures/db_definitions/frontbase2.drop.sql
202
+ - test/fixtures/db_definitions/frontbase2.sql
203
+ - test/fixtures/db_definitions/openbase.drop.sql
204
+ - test/fixtures/db_definitions/openbase.sql
205
+ - test/fixtures/db_definitions/openbase2.drop.sql
206
+ - test/fixtures/db_definitions/openbase2.sql
207
+ - test/fixtures/db_definitions/oracle.drop.sql
208
+ - test/fixtures/db_definitions/oracle.sql
209
+ - test/fixtures/db_definitions/oracle2.drop.sql
210
+ - test/fixtures/db_definitions/oracle2.sql
211
+ - test/fixtures/db_definitions/postgresql.drop.sql
212
+ - test/fixtures/db_definitions/postgresql.sql
213
+ - test/fixtures/db_definitions/postgresql2.drop.sql
214
+ - test/fixtures/db_definitions/postgresql2.sql
215
+ - test/fixtures/db_definitions/schema.rb
216
+ - test/fixtures/db_definitions/schema2.rb
217
+ - test/fixtures/db_definitions/sqlite.drop.sql
218
+ - test/fixtures/db_definitions/sqlite.sql
219
+ - test/fixtures/db_definitions/sqlite2.drop.sql
220
+ - test/fixtures/db_definitions/sqlite2.sql
221
+ - test/fixtures/db_definitions/sybase.drop.sql
222
+ - test/fixtures/db_definitions/sybase.sql
223
+ - test/fixtures/db_definitions/sybase2.drop.sql
224
+ - test/fixtures/db_definitions/sybase2.sql
225
+ - test/fixtures/default.rb
226
+ - test/fixtures/developer.rb
227
+ - test/fixtures/developers.yml
228
+ - test/fixtures/developers_projects
229
+ - test/fixtures/developers_projects/david_action_controller
230
+ - test/fixtures/developers_projects/david_active_record
231
+ - test/fixtures/developers_projects/jamis_active_record
232
+ - test/fixtures/developers_projects.yml
233
+ - test/fixtures/edge.rb
234
+ - test/fixtures/edges.yml
235
+ - test/fixtures/entrant.rb
236
+ - test/fixtures/entrants.yml
237
+ - test/fixtures/example.log
238
+ - test/fixtures/fk_test_has_fk.yml
239
+ - test/fixtures/fk_test_has_pk.yml
240
+ - test/fixtures/flowers.jpg
241
+ - test/fixtures/funny_jokes.yml
242
+ - test/fixtures/item.rb
243
+ - test/fixtures/items.yml
244
+ - test/fixtures/joke.rb
245
+ - test/fixtures/keyboard.rb
246
+ - test/fixtures/legacy_thing.rb
247
+ - test/fixtures/legacy_things.yml
248
+ - test/fixtures/matey.rb
249
+ - test/fixtures/mateys.yml
250
+ - test/fixtures/migrations
251
+ - test/fixtures/migrations/1_people_have_last_names.rb
252
+ - test/fixtures/migrations/2_we_need_reminders.rb
253
+ - test/fixtures/migrations/3_innocent_jointable.rb
254
+ - test/fixtures/migrations_with_decimal
255
+ - test/fixtures/migrations_with_decimal/1_give_me_big_numbers.rb
256
+ - test/fixtures/migrations_with_duplicate
257
+ - test/fixtures/migrations_with_duplicate/1_people_have_last_names.rb
258
+ - test/fixtures/migrations_with_duplicate/2_we_need_reminders.rb
259
+ - test/fixtures/migrations_with_duplicate/3_foo.rb
260
+ - test/fixtures/migrations_with_duplicate/3_innocent_jointable.rb
261
+ - test/fixtures/migrations_with_missing_versions
262
+ - test/fixtures/migrations_with_missing_versions/1000_people_have_middle_names.rb
263
+ - test/fixtures/migrations_with_missing_versions/1_people_have_last_names.rb
264
+ - test/fixtures/migrations_with_missing_versions/3_we_need_reminders.rb
265
+ - test/fixtures/migrations_with_missing_versions/4_innocent_jointable.rb
266
+ - test/fixtures/minimalistic.rb
267
+ - test/fixtures/minimalistics.yml
268
+ - test/fixtures/mixed_case_monkey.rb
269
+ - test/fixtures/mixed_case_monkeys.yml
270
+ - test/fixtures/mixins.yml
271
+ - test/fixtures/movie.rb
272
+ - test/fixtures/movies.yml
273
+ - test/fixtures/naked
274
+ - test/fixtures/naked/csv
275
+ - test/fixtures/naked/csv/accounts.csv
276
+ - test/fixtures/naked/yml
277
+ - test/fixtures/naked/yml/accounts.yml
278
+ - test/fixtures/naked/yml/companies.yml
279
+ - test/fixtures/naked/yml/courses.yml
280
+ - test/fixtures/order.rb
281
+ - test/fixtures/parrot.rb
282
+ - test/fixtures/parrots.yml
283
+ - test/fixtures/parrots_pirates.yml
284
+ - test/fixtures/people.yml
285
+ - test/fixtures/person.rb
286
+ - test/fixtures/pirate.rb
287
+ - test/fixtures/pirates.yml
288
+ - test/fixtures/post.rb
289
+ - test/fixtures/posts.yml
290
+ - test/fixtures/project.rb
291
+ - test/fixtures/projects.yml
292
+ - test/fixtures/reader.rb
293
+ - test/fixtures/readers.yml
294
+ - test/fixtures/reply.rb
295
+ - test/fixtures/reserved_words
296
+ - test/fixtures/reserved_words/distinct.yml
297
+ - test/fixtures/reserved_words/distincts_selects.yml
298
+ - test/fixtures/reserved_words/group.yml
299
+ - test/fixtures/reserved_words/select.yml
300
+ - test/fixtures/reserved_words/values.yml
301
+ - test/fixtures/ship.rb
302
+ - test/fixtures/ships.yml
303
+ - test/fixtures/subject.rb
304
+ - test/fixtures/subscriber.rb
305
+ - test/fixtures/subscribers
306
+ - test/fixtures/subscribers/first
307
+ - test/fixtures/subscribers/second
308
+ - test/fixtures/tag.rb
309
+ - test/fixtures/tagging.rb
310
+ - test/fixtures/taggings.yml
311
+ - test/fixtures/tags.yml
312
+ - test/fixtures/task.rb
313
+ - test/fixtures/tasks.yml
314
+ - test/fixtures/topic.rb
315
+ - test/fixtures/topics.yml
316
+ - test/fixtures/treasure.rb
317
+ - test/fixtures/treasures.yml
318
+ - test/fixtures/vertex.rb
319
+ - test/fixtures/vertices.yml
320
+ - test/fixtures_test.rb
321
+ - test/inheritance_test.rb
322
+ - test/json_serialization_test.rb
323
+ - test/lifecycle_test.rb
324
+ - test/locking_test.rb
325
+ - test/method_scoping_test.rb
326
+ - test/migration_test.rb
327
+ - test/migration_test_firebird.rb
328
+ - test/mixin_test.rb
329
+ - test/modules_test.rb
330
+ - test/multiple_db_test.rb
331
+ - test/pk_test.rb
332
+ - test/query_cache_test.rb
333
+ - test/readonly_test.rb
334
+ - test/reflection_test.rb
335
+ - test/reserved_word_test_mysql.rb
336
+ - test/schema_authorization_test_postgresql.rb
337
+ - test/schema_dumper_test.rb
338
+ - test/schema_test_postgresql.rb
339
+ - test/serialization_test.rb
340
+ - test/synonym_test_oracle.rb
341
+ - test/table_name_test_sqlserver.rb
342
+ - test/threaded_connections_test.rb
343
+ - test/transactions_test.rb
344
+ - test/unconnected_test.rb
345
+ - test/validations_test.rb
346
+ - test/xml_serialization_test.rb
347
+ - examples/associations.png
157
348
  test_files: []
349
+
158
350
  rdoc_options:
159
- - "--main"
160
- - README
351
+ - --main
352
+ - README
161
353
  extra_rdoc_files:
162
- - README
354
+ - README
163
355
  executables: []
356
+
164
357
  extensions: []
358
+
165
359
  requirements: []
166
- dependencies: []
360
+
361
+ dependencies:
362
+ - !ruby/object:Gem::Dependency
363
+ name: activesupport
364
+ version_requirement:
365
+ version_requirements: !ruby/object:Gem::Version::Requirement
366
+ requirements:
367
+ - - "="
368
+ - !ruby/object:Gem::Version
369
+ version: 2.0.0
370
+ version:
@@ -1,9 +0,0 @@
1
- # Require the eval_debugger to get an insight into the methods that aggregations and associations macross are adding.
2
- # All the additions are reported to $stderr just by requiring this file.
3
- class Module
4
- alias :old_module_eval :module_eval
5
- def module_eval(*args, &block)
6
- puts("in #{self.name}, #{if args[1] then "file #{args[1]}" end} #{if args[2] then "on line #{args[2]}" end}:\n#{args[0]}") if args[0]
7
- old_module_eval(*args, &block)
8
- end
9
- end
@@ -1,87 +0,0 @@
1
- require File.dirname(__FILE__) + '/shared_setup'
2
-
3
- logger = Logger.new(STDOUT)
4
-
5
- # Database setup ---------------
6
-
7
- logger.info "\nCreate tables"
8
-
9
- [ "DROP TABLE companies", "DROP TABLE people", "DROP TABLE people_companies",
10
- "CREATE TABLE companies (id int(11) auto_increment, client_of int(11), name varchar(255), type varchar(100), PRIMARY KEY (id))",
11
- "CREATE TABLE people (id int(11) auto_increment, name varchar(100), PRIMARY KEY (id))",
12
- "CREATE TABLE people_companies (person_id int(11), company_id int(11), PRIMARY KEY (person_id, company_id))",
13
- ].each { |statement|
14
- # Tables doesn't necessarily already exist
15
- begin; ActiveRecord::Base.connection.execute(statement); rescue ActiveRecord::StatementInvalid; end
16
- }
17
-
18
-
19
- # Class setup ---------------
20
-
21
- class Company < ActiveRecord::Base
22
- has_and_belongs_to_many :people, :class_name => "Person", :join_table => "people_companies", :table_name => "people"
23
- end
24
-
25
- class Firm < Company
26
- has_many :clients, :foreign_key => "client_of"
27
-
28
- def people_with_all_clients
29
- clients.inject([]) { |people, client| people + client.people }
30
- end
31
- end
32
-
33
- class Client < Company
34
- belongs_to :firm, :foreign_key => "client_of"
35
- end
36
-
37
- class Person < ActiveRecord::Base
38
- has_and_belongs_to_many :companies, :join_table => "people_companies"
39
- def self.table_name() "people" end
40
- end
41
-
42
-
43
- # Usage ---------------
44
-
45
- logger.info "\nCreate fixtures"
46
-
47
- Firm.new("name" => "Next Angle").save
48
- Client.new("name" => "37signals", "client_of" => 1).save
49
- Person.new("name" => "David").save
50
-
51
-
52
- logger.info "\nUsing Finders"
53
-
54
- next_angle = Company.find(1)
55
- next_angle = Firm.find(1)
56
- next_angle = Company.find_first "name = 'Next Angle'"
57
- next_angle = Firm.find_by_sql("SELECT * FROM companies WHERE id = 1").first
58
-
59
- Firm === next_angle
60
-
61
-
62
- logger.info "\nUsing has_many association"
63
-
64
- next_angle.has_clients?
65
- next_angle.clients_count
66
- all_clients = next_angle.clients
67
-
68
- thirty_seven_signals = next_angle.find_in_clients(2)
69
-
70
-
71
- logger.info "\nUsing belongs_to association"
72
-
73
- thirty_seven_signals.has_firm?
74
- thirty_seven_signals.firm?(next_angle)
75
-
76
-
77
- logger.info "\nUsing has_and_belongs_to_many association"
78
-
79
- david = Person.find(1)
80
- david.add_companies(thirty_seven_signals, next_angle)
81
- david.companies.include?(next_angle)
82
- david.companies_count == 2
83
-
84
- david.remove_companies(next_angle)
85
- david.companies_count == 1
86
-
87
- thirty_seven_signals.people.include?(david)
@@ -1,15 +0,0 @@
1
- # Be sure to change the mysql_connection details and create a database for the example
2
-
3
- $: << File.dirname(__FILE__) + '/../lib'
4
-
5
- require 'active_record'
6
- require 'logger'; class Logger; def format_message(severity, timestamp, msg, progname) "#{msg}\n" end; end
7
-
8
- ActiveRecord::Base.logger = Logger.new(STDOUT)
9
- ActiveRecord::Base.establish_connection(
10
- :adapter => "mysql",
11
- :host => "localhost",
12
- :username => "root",
13
- :password => "",
14
- :database => "activerecord_examples"
15
- )