activerecord 2.3.18 → 3.0.0.beta
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activerecord might be problematic. Click here for more details.
- data/CHANGELOG +105 -34
- data/examples/performance.rb +3 -39
- data/examples/simple.rb +14 -0
- data/lib/active_record.rb +81 -47
- data/lib/active_record/aggregations.rb +1 -3
- data/lib/active_record/association_preload.rb +39 -54
- data/lib/active_record/associations.rb +262 -419
- data/lib/active_record/associations/association_collection.rb +85 -100
- data/lib/active_record/associations/association_proxy.rb +20 -18
- data/lib/active_record/associations/belongs_to_association.rb +8 -8
- data/lib/active_record/associations/has_and_belongs_to_many_association.rb +13 -35
- data/lib/active_record/associations/has_many_association.rb +11 -19
- data/lib/active_record/associations/has_many_through_association.rb +30 -183
- data/lib/active_record/associations/has_one_association.rb +10 -10
- data/lib/active_record/associations/has_one_through_association.rb +13 -11
- data/lib/active_record/associations/through_association_scope.rb +153 -0
- data/lib/active_record/attribute_methods.rb +17 -370
- data/lib/active_record/attribute_methods/before_type_cast.rb +33 -0
- data/lib/active_record/attribute_methods/dirty.rb +87 -0
- data/lib/active_record/attribute_methods/primary_key.rb +44 -0
- data/lib/active_record/attribute_methods/query.rb +37 -0
- data/lib/active_record/attribute_methods/read.rb +116 -0
- data/lib/active_record/attribute_methods/time_zone_conversion.rb +60 -0
- data/lib/active_record/attribute_methods/write.rb +37 -0
- data/lib/active_record/autosave_association.rb +20 -41
- data/lib/active_record/base.rb +357 -1180
- data/lib/active_record/batches.rb +10 -16
- data/lib/active_record/callbacks.rb +66 -126
- data/lib/active_record/connection_adapters/abstract/connection_pool.rb +17 -13
- data/lib/active_record/connection_adapters/abstract/connection_specification.rb +5 -25
- data/lib/active_record/connection_adapters/abstract/database_statements.rb +4 -43
- data/lib/active_record/connection_adapters/abstract/query_cache.rb +3 -2
- data/lib/active_record/connection_adapters/abstract/quoting.rb +15 -4
- data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +1 -1
- data/lib/active_record/connection_adapters/abstract/schema_statements.rb +18 -72
- data/lib/active_record/connection_adapters/abstract_adapter.rb +16 -49
- data/lib/active_record/connection_adapters/mysql_adapter.rb +15 -27
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +84 -46
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +9 -3
- data/lib/active_record/connection_adapters/sqlite_adapter.rb +34 -65
- data/lib/active_record/fixtures.rb +21 -25
- data/lib/active_record/locale/en.yml +9 -27
- data/lib/active_record/locking/optimistic.rb +16 -48
- data/lib/active_record/migration.rb +59 -46
- data/lib/active_record/named_scope.rb +85 -92
- data/lib/active_record/nested_attributes.rb +18 -24
- data/lib/active_record/observer.rb +18 -94
- data/lib/active_record/railtie.rb +83 -0
- data/lib/active_record/railties/controller_runtime.rb +38 -0
- data/lib/active_record/railties/databases.rake +477 -0
- data/lib/active_record/railties/subscriber.rb +27 -0
- data/lib/active_record/reflection.rb +2 -15
- data/lib/active_record/relation.rb +339 -0
- data/lib/active_record/relation/calculations.rb +259 -0
- data/lib/active_record/relation/finder_methods.rb +315 -0
- data/lib/active_record/relation/predicate_builder.rb +46 -0
- data/lib/active_record/relation/query_methods.rb +218 -0
- data/lib/active_record/relation/spawn_methods.rb +102 -0
- data/lib/active_record/schema_dumper.rb +10 -6
- data/lib/active_record/serialization.rb +31 -74
- data/lib/active_record/serializers/xml_serializer.rb +33 -121
- data/lib/active_record/session_store.rb +1 -9
- data/lib/active_record/test_case.rb +1 -3
- data/lib/active_record/timestamp.rb +7 -5
- data/lib/active_record/transactions.rb +9 -9
- data/lib/active_record/validations.rb +51 -1100
- data/lib/active_record/validations/associated.rb +47 -0
- data/lib/active_record/validations/uniqueness.rb +181 -0
- data/lib/active_record/version.rb +3 -3
- data/lib/generators/active_record.rb +30 -0
- data/lib/generators/active_record/migration/migration_generator.rb +25 -0
- data/lib/generators/active_record/migration/templates/migration.rb +11 -0
- data/lib/generators/active_record/model/model_generator.rb +33 -0
- data/lib/generators/active_record/model/templates/migration.rb +16 -0
- data/lib/generators/active_record/model/templates/model.rb +5 -0
- data/lib/generators/active_record/observer/observer_generator.rb +15 -0
- data/lib/generators/active_record/observer/templates/observer.rb +2 -0
- data/lib/generators/active_record/session_migration/session_migration_generator.rb +24 -0
- data/lib/generators/active_record/session_migration/templates/migration.rb +16 -0
- metadata +67 -325
- data/RUNNING_UNIT_TESTS +0 -36
- data/Rakefile +0 -268
- data/install.rb +0 -30
- data/lib/active_record/calculations.rb +0 -321
- data/lib/active_record/connection_adapters/abstract/database_limits.rb +0 -57
- data/lib/active_record/dirty.rb +0 -183
- data/lib/active_record/serializers/json_serializer.rb +0 -91
- data/lib/activerecord.rb +0 -2
- data/test/assets/example.log +0 -1
- data/test/assets/flowers.jpg +0 -0
- data/test/cases/aaa_create_tables_test.rb +0 -24
- data/test/cases/active_schema_test_mysql.rb +0 -122
- data/test/cases/active_schema_test_postgresql.rb +0 -24
- data/test/cases/adapter_test.rb +0 -144
- data/test/cases/aggregations_test.rb +0 -167
- data/test/cases/ar_schema_test.rb +0 -32
- data/test/cases/associations/belongs_to_associations_test.rb +0 -438
- data/test/cases/associations/callbacks_test.rb +0 -161
- data/test/cases/associations/cascaded_eager_loading_test.rb +0 -131
- data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +0 -36
- data/test/cases/associations/eager_load_nested_include_test.rb +0 -131
- data/test/cases/associations/eager_load_nested_polymorphic_include.rb +0 -19
- data/test/cases/associations/eager_singularization_test.rb +0 -145
- data/test/cases/associations/eager_test.rb +0 -852
- data/test/cases/associations/extension_test.rb +0 -62
- data/test/cases/associations/habtm_join_table_test.rb +0 -56
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +0 -827
- data/test/cases/associations/has_many_associations_test.rb +0 -1273
- data/test/cases/associations/has_many_through_associations_test.rb +0 -360
- data/test/cases/associations/has_one_associations_test.rb +0 -330
- data/test/cases/associations/has_one_through_associations_test.rb +0 -209
- data/test/cases/associations/inner_join_association_test.rb +0 -93
- data/test/cases/associations/inverse_associations_test.rb +0 -566
- data/test/cases/associations/join_model_test.rb +0 -712
- data/test/cases/associations_test.rb +0 -282
- data/test/cases/attribute_methods_test.rb +0 -305
- data/test/cases/autosave_association_test.rb +0 -1218
- data/test/cases/base_test.rb +0 -2166
- data/test/cases/batches_test.rb +0 -81
- data/test/cases/binary_test.rb +0 -30
- data/test/cases/calculations_test.rb +0 -360
- data/test/cases/callbacks_observers_test.rb +0 -38
- data/test/cases/callbacks_test.rb +0 -438
- data/test/cases/class_inheritable_attributes_test.rb +0 -32
- data/test/cases/column_alias_test.rb +0 -17
- data/test/cases/column_definition_test.rb +0 -70
- data/test/cases/connection_pool_test.rb +0 -25
- data/test/cases/connection_test_firebird.rb +0 -8
- data/test/cases/connection_test_mysql.rb +0 -65
- data/test/cases/copy_table_test_sqlite.rb +0 -80
- data/test/cases/counter_cache_test.rb +0 -84
- data/test/cases/database_statements_test.rb +0 -12
- data/test/cases/datatype_test_postgresql.rb +0 -204
- data/test/cases/date_time_test.rb +0 -37
- data/test/cases/default_test_firebird.rb +0 -16
- data/test/cases/defaults_test.rb +0 -111
- data/test/cases/deprecated_finder_test.rb +0 -30
- data/test/cases/dirty_test.rb +0 -316
- data/test/cases/finder_respond_to_test.rb +0 -76
- data/test/cases/finder_test.rb +0 -1098
- data/test/cases/fixtures_test.rb +0 -661
- data/test/cases/helper.rb +0 -68
- data/test/cases/i18n_test.rb +0 -46
- data/test/cases/inheritance_test.rb +0 -262
- data/test/cases/invalid_date_test.rb +0 -24
- data/test/cases/json_serialization_test.rb +0 -219
- data/test/cases/lifecycle_test.rb +0 -193
- data/test/cases/locking_test.rb +0 -350
- data/test/cases/method_scoping_test.rb +0 -704
- data/test/cases/migration_test.rb +0 -1649
- data/test/cases/migration_test_firebird.rb +0 -124
- data/test/cases/mixin_test.rb +0 -96
- data/test/cases/modules_test.rb +0 -109
- data/test/cases/multiple_db_test.rb +0 -85
- data/test/cases/named_scope_test.rb +0 -372
- data/test/cases/nested_attributes_test.rb +0 -840
- data/test/cases/pk_test.rb +0 -119
- data/test/cases/pooled_connections_test.rb +0 -103
- data/test/cases/query_cache_test.rb +0 -129
- data/test/cases/readonly_test.rb +0 -107
- data/test/cases/reflection_test.rb +0 -234
- data/test/cases/reload_models_test.rb +0 -22
- data/test/cases/repair_helper.rb +0 -50
- data/test/cases/reserved_word_test_mysql.rb +0 -176
- data/test/cases/sanitize_test.rb +0 -25
- data/test/cases/schema_authorization_test_postgresql.rb +0 -75
- data/test/cases/schema_dumper_test.rb +0 -211
- data/test/cases/schema_test_postgresql.rb +0 -178
- data/test/cases/serialization_test.rb +0 -47
- data/test/cases/sp_test_mysql.rb +0 -16
- data/test/cases/synonym_test_oracle.rb +0 -17
- data/test/cases/timestamp_test.rb +0 -75
- data/test/cases/transactions_test.rb +0 -543
- data/test/cases/unconnected_test.rb +0 -32
- data/test/cases/validations_i18n_test.rb +0 -925
- data/test/cases/validations_test.rb +0 -1684
- data/test/cases/xml_serialization_test.rb +0 -240
- data/test/cases/yaml_serialization_test.rb +0 -11
- data/test/config.rb +0 -5
- data/test/connections/jdbc_jdbcderby/connection.rb +0 -18
- data/test/connections/jdbc_jdbch2/connection.rb +0 -18
- data/test/connections/jdbc_jdbchsqldb/connection.rb +0 -18
- data/test/connections/jdbc_jdbcmysql/connection.rb +0 -26
- data/test/connections/jdbc_jdbcpostgresql/connection.rb +0 -26
- data/test/connections/jdbc_jdbcsqlite3/connection.rb +0 -25
- data/test/connections/native_db2/connection.rb +0 -25
- data/test/connections/native_firebird/connection.rb +0 -26
- data/test/connections/native_frontbase/connection.rb +0 -27
- data/test/connections/native_mysql/connection.rb +0 -25
- data/test/connections/native_openbase/connection.rb +0 -21
- data/test/connections/native_oracle/connection.rb +0 -27
- data/test/connections/native_postgresql/connection.rb +0 -21
- data/test/connections/native_sqlite/connection.rb +0 -25
- data/test/connections/native_sqlite3/connection.rb +0 -25
- data/test/connections/native_sqlite3/in_memory_connection.rb +0 -18
- data/test/connections/native_sybase/connection.rb +0 -23
- data/test/fixtures/accounts.yml +0 -29
- data/test/fixtures/all/developers.yml +0 -0
- data/test/fixtures/all/people.csv +0 -0
- data/test/fixtures/all/tasks.yml +0 -0
- data/test/fixtures/author_addresses.yml +0 -5
- data/test/fixtures/author_favorites.yml +0 -4
- data/test/fixtures/authors.yml +0 -9
- data/test/fixtures/binaries.yml +0 -132
- data/test/fixtures/books.yml +0 -7
- data/test/fixtures/categories.yml +0 -14
- data/test/fixtures/categories/special_categories.yml +0 -9
- data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +0 -4
- data/test/fixtures/categories_ordered.yml +0 -7
- data/test/fixtures/categories_posts.yml +0 -23
- data/test/fixtures/categorizations.yml +0 -17
- data/test/fixtures/clubs.yml +0 -6
- data/test/fixtures/comments.yml +0 -59
- data/test/fixtures/companies.yml +0 -56
- data/test/fixtures/computers.yml +0 -4
- data/test/fixtures/courses.yml +0 -7
- data/test/fixtures/customers.yml +0 -26
- data/test/fixtures/developers.yml +0 -21
- data/test/fixtures/developers_projects.yml +0 -17
- data/test/fixtures/edges.yml +0 -6
- data/test/fixtures/entrants.yml +0 -14
- data/test/fixtures/faces.yml +0 -11
- data/test/fixtures/fk_test_has_fk.yml +0 -3
- data/test/fixtures/fk_test_has_pk.yml +0 -2
- data/test/fixtures/funny_jokes.yml +0 -10
- data/test/fixtures/interests.yml +0 -33
- data/test/fixtures/items.yml +0 -4
- data/test/fixtures/jobs.yml +0 -7
- data/test/fixtures/legacy_things.yml +0 -3
- data/test/fixtures/mateys.yml +0 -4
- data/test/fixtures/member_types.yml +0 -6
- data/test/fixtures/members.yml +0 -6
- data/test/fixtures/memberships.yml +0 -20
- data/test/fixtures/men.yml +0 -5
- data/test/fixtures/minimalistics.yml +0 -2
- data/test/fixtures/mixed_case_monkeys.yml +0 -6
- data/test/fixtures/mixins.yml +0 -29
- data/test/fixtures/movies.yml +0 -7
- data/test/fixtures/naked/csv/accounts.csv +0 -1
- data/test/fixtures/naked/yml/accounts.yml +0 -1
- data/test/fixtures/naked/yml/companies.yml +0 -1
- data/test/fixtures/naked/yml/courses.yml +0 -1
- data/test/fixtures/organizations.yml +0 -5
- data/test/fixtures/owners.yml +0 -7
- data/test/fixtures/parrots.yml +0 -27
- data/test/fixtures/parrots_pirates.yml +0 -7
- data/test/fixtures/people.yml +0 -15
- data/test/fixtures/pets.yml +0 -14
- data/test/fixtures/pirates.yml +0 -9
- data/test/fixtures/polymorphic_designs.yml +0 -19
- data/test/fixtures/polymorphic_prices.yml +0 -19
- data/test/fixtures/posts.yml +0 -52
- data/test/fixtures/price_estimates.yml +0 -7
- data/test/fixtures/projects.yml +0 -7
- data/test/fixtures/readers.yml +0 -9
- data/test/fixtures/references.yml +0 -17
- data/test/fixtures/reserved_words/distinct.yml +0 -5
- data/test/fixtures/reserved_words/distincts_selects.yml +0 -11
- data/test/fixtures/reserved_words/group.yml +0 -14
- data/test/fixtures/reserved_words/select.yml +0 -8
- data/test/fixtures/reserved_words/values.yml +0 -7
- data/test/fixtures/ships.yml +0 -5
- data/test/fixtures/sponsors.yml +0 -9
- data/test/fixtures/subscribers.yml +0 -7
- data/test/fixtures/subscriptions.yml +0 -12
- data/test/fixtures/taggings.yml +0 -28
- data/test/fixtures/tags.yml +0 -7
- data/test/fixtures/tasks.yml +0 -7
- data/test/fixtures/tees.yml +0 -4
- data/test/fixtures/ties.yml +0 -4
- data/test/fixtures/topics.yml +0 -42
- data/test/fixtures/toys.yml +0 -4
- data/test/fixtures/treasures.yml +0 -10
- data/test/fixtures/vertices.yml +0 -4
- data/test/fixtures/warehouse-things.yml +0 -3
- data/test/fixtures/zines.yml +0 -5
- data/test/migrations/broken/100_migration_that_raises_exception.rb +0 -10
- data/test/migrations/decimal/1_give_me_big_numbers.rb +0 -15
- data/test/migrations/duplicate/1_people_have_last_names.rb +0 -9
- data/test/migrations/duplicate/2_we_need_reminders.rb +0 -12
- data/test/migrations/duplicate/3_foo.rb +0 -7
- data/test/migrations/duplicate/3_innocent_jointable.rb +0 -12
- data/test/migrations/duplicate_names/20080507052938_chunky.rb +0 -7
- data/test/migrations/duplicate_names/20080507053028_chunky.rb +0 -7
- data/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +0 -12
- data/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +0 -9
- data/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +0 -12
- data/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +0 -9
- data/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +0 -8
- data/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +0 -12
- data/test/migrations/missing/1000_people_have_middle_names.rb +0 -9
- data/test/migrations/missing/1_people_have_last_names.rb +0 -9
- data/test/migrations/missing/3_we_need_reminders.rb +0 -12
- data/test/migrations/missing/4_innocent_jointable.rb +0 -12
- data/test/migrations/valid/1_people_have_last_names.rb +0 -9
- data/test/migrations/valid/2_we_need_reminders.rb +0 -12
- data/test/migrations/valid/3_innocent_jointable.rb +0 -12
- data/test/models/author.rb +0 -151
- data/test/models/auto_id.rb +0 -4
- data/test/models/binary.rb +0 -2
- data/test/models/bird.rb +0 -9
- data/test/models/book.rb +0 -4
- data/test/models/categorization.rb +0 -5
- data/test/models/category.rb +0 -34
- data/test/models/citation.rb +0 -6
- data/test/models/club.rb +0 -13
- data/test/models/column_name.rb +0 -3
- data/test/models/comment.rb +0 -29
- data/test/models/company.rb +0 -173
- data/test/models/company_in_module.rb +0 -78
- data/test/models/computer.rb +0 -3
- data/test/models/contact.rb +0 -16
- data/test/models/contract.rb +0 -5
- data/test/models/course.rb +0 -3
- data/test/models/customer.rb +0 -73
- data/test/models/default.rb +0 -2
- data/test/models/developer.rb +0 -101
- data/test/models/edge.rb +0 -5
- data/test/models/entrant.rb +0 -3
- data/test/models/essay.rb +0 -3
- data/test/models/event.rb +0 -3
- data/test/models/event_author.rb +0 -8
- data/test/models/face.rb +0 -7
- data/test/models/guid.rb +0 -2
- data/test/models/interest.rb +0 -5
- data/test/models/invoice.rb +0 -4
- data/test/models/item.rb +0 -7
- data/test/models/job.rb +0 -5
- data/test/models/joke.rb +0 -3
- data/test/models/keyboard.rb +0 -3
- data/test/models/legacy_thing.rb +0 -3
- data/test/models/line_item.rb +0 -3
- data/test/models/man.rb +0 -9
- data/test/models/matey.rb +0 -4
- data/test/models/member.rb +0 -12
- data/test/models/member_detail.rb +0 -5
- data/test/models/member_type.rb +0 -3
- data/test/models/membership.rb +0 -9
- data/test/models/minimalistic.rb +0 -2
- data/test/models/mixed_case_monkey.rb +0 -3
- data/test/models/movie.rb +0 -5
- data/test/models/order.rb +0 -4
- data/test/models/organization.rb +0 -6
- data/test/models/owner.rb +0 -5
- data/test/models/parrot.rb +0 -22
- data/test/models/person.rb +0 -16
- data/test/models/pet.rb +0 -5
- data/test/models/pirate.rb +0 -80
- data/test/models/polymorphic_design.rb +0 -3
- data/test/models/polymorphic_price.rb +0 -3
- data/test/models/post.rb +0 -102
- data/test/models/price_estimate.rb +0 -3
- data/test/models/project.rb +0 -30
- data/test/models/reader.rb +0 -4
- data/test/models/reference.rb +0 -4
- data/test/models/reply.rb +0 -46
- data/test/models/ship.rb +0 -19
- data/test/models/ship_part.rb +0 -7
- data/test/models/sponsor.rb +0 -4
- data/test/models/subject.rb +0 -4
- data/test/models/subscriber.rb +0 -8
- data/test/models/subscription.rb +0 -4
- data/test/models/tag.rb +0 -7
- data/test/models/tagging.rb +0 -10
- data/test/models/task.rb +0 -3
- data/test/models/tee.rb +0 -4
- data/test/models/tie.rb +0 -4
- data/test/models/topic.rb +0 -80
- data/test/models/toy.rb +0 -6
- data/test/models/treasure.rb +0 -8
- data/test/models/vertex.rb +0 -9
- data/test/models/warehouse_thing.rb +0 -5
- data/test/models/zine.rb +0 -3
- data/test/schema/mysql_specific_schema.rb +0 -31
- data/test/schema/postgresql_specific_schema.rb +0 -114
- data/test/schema/schema.rb +0 -550
- data/test/schema/schema2.rb +0 -6
- data/test/schema/sqlite_specific_schema.rb +0 -25
data/test/models/project.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
class Project < ActiveRecord::Base
|
2
|
-
has_and_belongs_to_many :developers, :uniq => true, :order => 'developers.name desc, developers.id desc'
|
3
|
-
has_and_belongs_to_many :readonly_developers, :class_name => "Developer", :readonly => true
|
4
|
-
has_and_belongs_to_many :selected_developers, :class_name => "Developer", :select => "developers.*", :uniq => true
|
5
|
-
has_and_belongs_to_many :non_unique_developers, :order => 'developers.name desc, developers.id desc', :class_name => 'Developer'
|
6
|
-
has_and_belongs_to_many :limited_developers, :class_name => "Developer", :limit => 1
|
7
|
-
has_and_belongs_to_many :developers_named_david, :class_name => "Developer", :conditions => "name = 'David'", :uniq => true
|
8
|
-
has_and_belongs_to_many :developers_named_david_with_hash_conditions, :class_name => "Developer", :conditions => { :name => 'David' }, :uniq => true
|
9
|
-
has_and_belongs_to_many :salaried_developers, :class_name => "Developer", :conditions => "salary > 0"
|
10
|
-
has_and_belongs_to_many :developers_with_finder_sql, :class_name => "Developer", :finder_sql => 'SELECT t.*, j.* FROM developers_projects j, developers t WHERE t.id = j.developer_id AND j.project_id = #{id} ORDER BY t.id'
|
11
|
-
has_and_belongs_to_many :developers_by_sql, :class_name => "Developer", :delete_sql => "DELETE FROM developers_projects WHERE project_id = \#{id} AND developer_id = \#{record.id}"
|
12
|
-
has_and_belongs_to_many :developers_with_callbacks, :class_name => "Developer", :before_add => Proc.new {|o, r| o.developers_log << "before_adding#{r.id || '<new>'}"},
|
13
|
-
:after_add => Proc.new {|o, r| o.developers_log << "after_adding#{r.id || '<new>'}"},
|
14
|
-
:before_remove => Proc.new {|o, r| o.developers_log << "before_removing#{r.id}"},
|
15
|
-
:after_remove => Proc.new {|o, r| o.developers_log << "after_removing#{r.id}"}
|
16
|
-
has_and_belongs_to_many :well_payed_salary_groups, :class_name => "Developer", :group => "developers.salary", :having => "SUM(salary) > 10000", :select => "SUM(salary) as salary"
|
17
|
-
|
18
|
-
attr_accessor :developers_log
|
19
|
-
|
20
|
-
def after_initialize
|
21
|
-
@developers_log = []
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
class SpecialProject < Project
|
27
|
-
def hello_world
|
28
|
-
"hello there!"
|
29
|
-
end
|
30
|
-
end
|
data/test/models/reader.rb
DELETED
data/test/models/reference.rb
DELETED
data/test/models/reply.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'models/topic'
|
2
|
-
|
3
|
-
class Reply < Topic
|
4
|
-
named_scope :base
|
5
|
-
|
6
|
-
belongs_to :topic, :foreign_key => "parent_id", :counter_cache => true
|
7
|
-
belongs_to :topic_with_primary_key, :class_name => "Topic", :primary_key => "title", :foreign_key => "parent_title", :counter_cache => "replies_count"
|
8
|
-
has_many :replies, :class_name => "SillyReply", :dependent => :destroy, :foreign_key => "parent_id"
|
9
|
-
|
10
|
-
validate :errors_on_empty_content
|
11
|
-
validate_on_create :title_is_wrong_create
|
12
|
-
|
13
|
-
attr_accessible :title, :author_name, :author_email_address, :written_on, :content, :last_read, :parent_title
|
14
|
-
|
15
|
-
def validate
|
16
|
-
errors.add("title", "Empty") unless attribute_present? "title"
|
17
|
-
end
|
18
|
-
|
19
|
-
def errors_on_empty_content
|
20
|
-
errors.add("content", "Empty") unless attribute_present? "content"
|
21
|
-
end
|
22
|
-
|
23
|
-
def validate_on_create
|
24
|
-
if attribute_present?("title") && attribute_present?("content") && content == "Mismatch"
|
25
|
-
errors.add("title", "is Content Mismatch")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def title_is_wrong_create
|
30
|
-
errors.add("title", "is Wrong Create") if attribute_present?("title") && title == "Wrong Create"
|
31
|
-
end
|
32
|
-
|
33
|
-
def validate_on_update
|
34
|
-
errors.add("title", "is Wrong Update") if attribute_present?("title") && title == "Wrong Update"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
class SillyReply < Reply
|
39
|
-
belongs_to :reply, :foreign_key => "parent_id", :counter_cache => :replies_count
|
40
|
-
end
|
41
|
-
|
42
|
-
module Web
|
43
|
-
class Reply < Web::Topic
|
44
|
-
belongs_to :topic, :foreign_key => "parent_id", :counter_cache => true, :class_name => 'Web::Topic'
|
45
|
-
end
|
46
|
-
end
|
data/test/models/ship.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
class Ship < ActiveRecord::Base
|
2
|
-
self.record_timestamps = false
|
3
|
-
|
4
|
-
belongs_to :pirate
|
5
|
-
belongs_to :update_only_pirate, :class_name => 'Pirate'
|
6
|
-
has_many :parts, :class_name => 'ShipPart'
|
7
|
-
|
8
|
-
accepts_nested_attributes_for :parts, :allow_destroy => true
|
9
|
-
accepts_nested_attributes_for :pirate, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? }
|
10
|
-
accepts_nested_attributes_for :update_only_pirate, :update_only => true
|
11
|
-
|
12
|
-
validates_presence_of :name
|
13
|
-
|
14
|
-
attr_accessor :cancel_save_from_callback
|
15
|
-
before_save :cancel_save_callback_method, :if => :cancel_save_from_callback
|
16
|
-
def cancel_save_callback_method
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
data/test/models/ship_part.rb
DELETED
data/test/models/sponsor.rb
DELETED
data/test/models/subject.rb
DELETED
data/test/models/subscriber.rb
DELETED
data/test/models/subscription.rb
DELETED
data/test/models/tag.rb
DELETED
data/test/models/tagging.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# test that attr_readonly isn't called on the :taggable polymorphic association
|
2
|
-
module Taggable
|
3
|
-
end
|
4
|
-
|
5
|
-
class Tagging < ActiveRecord::Base
|
6
|
-
belongs_to :tag, :include => :tagging
|
7
|
-
belongs_to :super_tag, :class_name => 'Tag', :foreign_key => 'super_tag_id'
|
8
|
-
belongs_to :invalid_tag, :class_name => 'Tag', :foreign_key => 'tag_id'
|
9
|
-
belongs_to :taggable, :polymorphic => true, :counter_cache => true
|
10
|
-
end
|
data/test/models/task.rb
DELETED
data/test/models/tee.rb
DELETED
data/test/models/tie.rb
DELETED
data/test/models/topic.rb
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
class Topic < ActiveRecord::Base
|
2
|
-
named_scope :base
|
3
|
-
named_scope :written_before, lambda { |time|
|
4
|
-
if time
|
5
|
-
{ :conditions => ['written_on < ?', time] }
|
6
|
-
end
|
7
|
-
}
|
8
|
-
named_scope :approved, :conditions => {:approved => true}
|
9
|
-
named_scope :rejected, :conditions => {:approved => false}
|
10
|
-
|
11
|
-
named_scope :by_lifo, :conditions => {:author_name => 'lifo'}
|
12
|
-
|
13
|
-
named_scope :approved_as_hash_condition, :conditions => {:topics => {:approved => true}}
|
14
|
-
named_scope 'approved_as_string', :conditions => {:approved => true}
|
15
|
-
named_scope :replied, :conditions => ['replies_count > 0']
|
16
|
-
named_scope :anonymous_extension do
|
17
|
-
def one
|
18
|
-
1
|
19
|
-
end
|
20
|
-
end
|
21
|
-
module NamedExtension
|
22
|
-
def two
|
23
|
-
2
|
24
|
-
end
|
25
|
-
end
|
26
|
-
module MultipleExtensionOne
|
27
|
-
def extension_one
|
28
|
-
1
|
29
|
-
end
|
30
|
-
end
|
31
|
-
module MultipleExtensionTwo
|
32
|
-
def extension_two
|
33
|
-
2
|
34
|
-
end
|
35
|
-
end
|
36
|
-
named_scope :named_extension, :extend => NamedExtension
|
37
|
-
named_scope :multiple_extensions, :extend => [MultipleExtensionTwo, MultipleExtensionOne]
|
38
|
-
|
39
|
-
has_many :replies, :dependent => :destroy, :foreign_key => "parent_id"
|
40
|
-
has_many :replies_with_primary_key, :class_name => "Reply", :dependent => :destroy, :primary_key => "title", :foreign_key => "parent_title"
|
41
|
-
serialize :content
|
42
|
-
|
43
|
-
before_create :default_written_on
|
44
|
-
before_destroy :destroy_children
|
45
|
-
|
46
|
-
def parent
|
47
|
-
Topic.find(parent_id)
|
48
|
-
end
|
49
|
-
|
50
|
-
# trivial method for testing Array#to_xml with :methods
|
51
|
-
def topic_id
|
52
|
-
id
|
53
|
-
end
|
54
|
-
|
55
|
-
protected
|
56
|
-
def approved=(val)
|
57
|
-
@custom_approved = val
|
58
|
-
write_attribute(:approved, val)
|
59
|
-
end
|
60
|
-
|
61
|
-
def default_written_on
|
62
|
-
self.written_on = Time.now unless attribute_present?("written_on")
|
63
|
-
end
|
64
|
-
|
65
|
-
def destroy_children
|
66
|
-
self.class.delete_all "parent_id = #{id}"
|
67
|
-
end
|
68
|
-
|
69
|
-
def after_initialize
|
70
|
-
if self.new_record?
|
71
|
-
self.author_email_address = 'test@test.com'
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
module Web
|
77
|
-
class Topic < ActiveRecord::Base
|
78
|
-
has_many :replies, :dependent => :destroy, :foreign_key => "parent_id", :class_name => 'Web::Reply'
|
79
|
-
end
|
80
|
-
end
|
data/test/models/toy.rb
DELETED
data/test/models/treasure.rb
DELETED
data/test/models/vertex.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
# This class models a vertex in a directed graph.
|
2
|
-
class Vertex < ActiveRecord::Base
|
3
|
-
has_many :sink_edges, :class_name => 'Edge', :foreign_key => 'source_id'
|
4
|
-
has_many :sinks, :through => :sink_edges
|
5
|
-
|
6
|
-
has_and_belongs_to_many :sources,
|
7
|
-
:class_name => 'Vertex', :join_table => 'edges',
|
8
|
-
:foreign_key => 'sink_id', :association_foreign_key => 'source_id'
|
9
|
-
end
|
data/test/models/zine.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
create_table :binary_fields, :force => true, :options => 'CHARACTER SET latin1' do |t|
|
3
|
-
t.binary :tiny_blob, :limit => 255
|
4
|
-
t.binary :normal_blob, :limit => 65535
|
5
|
-
t.binary :medium_blob, :limit => 16777215
|
6
|
-
t.binary :long_blob, :limit => 2147483647
|
7
|
-
t.text :tiny_text, :limit => 255
|
8
|
-
t.text :normal_text, :limit => 65535
|
9
|
-
t.text :medium_text, :limit => 16777215
|
10
|
-
t.text :long_text, :limit => 2147483647
|
11
|
-
end
|
12
|
-
|
13
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
14
|
-
DROP PROCEDURE IF EXISTS ten;
|
15
|
-
SQL
|
16
|
-
|
17
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
18
|
-
CREATE PROCEDURE ten() SQL SECURITY INVOKER
|
19
|
-
BEGIN
|
20
|
-
select 10;
|
21
|
-
END
|
22
|
-
SQL
|
23
|
-
|
24
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
25
|
-
CREATE PROCEDURE topics() SQL SECURITY INVOKER
|
26
|
-
BEGIN
|
27
|
-
select * from topics limit 1;
|
28
|
-
END
|
29
|
-
SQL
|
30
|
-
|
31
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
|
3
|
-
%w(postgresql_arrays postgresql_moneys postgresql_numbers postgresql_times postgresql_network_addresses postgresql_bit_strings
|
4
|
-
postgresql_oids postgresql_xml_data_type defaults geometrics).each do |table_name|
|
5
|
-
execute "DROP TABLE IF EXISTS #{quote_table_name table_name}"
|
6
|
-
end
|
7
|
-
|
8
|
-
execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
|
9
|
-
execute 'CREATE SEQUENCE companies_nonstd_seq START 101 OWNED BY companies.id'
|
10
|
-
execute "ALTER TABLE companies ALTER COLUMN id SET DEFAULT nextval('companies_nonstd_seq')"
|
11
|
-
execute 'DROP SEQUENCE IF EXISTS companies_id_seq'
|
12
|
-
|
13
|
-
%w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
|
14
|
-
execute "SELECT setval('#{seq_name}', 100)"
|
15
|
-
end
|
16
|
-
|
17
|
-
execute <<_SQL
|
18
|
-
CREATE TABLE defaults (
|
19
|
-
id serial primary key,
|
20
|
-
modified_date date default CURRENT_DATE,
|
21
|
-
modified_date_function date default now(),
|
22
|
-
fixed_date date default '2004-01-01',
|
23
|
-
modified_time timestamp default CURRENT_TIMESTAMP,
|
24
|
-
modified_time_function timestamp default now(),
|
25
|
-
fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
|
26
|
-
char1 char(1) default 'Y',
|
27
|
-
char2 character varying(50) default 'a varchar field',
|
28
|
-
char3 text default 'a text field',
|
29
|
-
positive_integer integer default 1,
|
30
|
-
negative_integer integer default -1,
|
31
|
-
decimal_number decimal(3,2) default 2.78,
|
32
|
-
multiline_default text DEFAULT '--- []
|
33
|
-
|
34
|
-
'::text
|
35
|
-
);
|
36
|
-
_SQL
|
37
|
-
|
38
|
-
execute <<_SQL
|
39
|
-
CREATE TABLE geometrics (
|
40
|
-
id serial primary key,
|
41
|
-
a_point point,
|
42
|
-
-- a_line line, (the line type is currently not implemented in postgresql)
|
43
|
-
a_line_segment lseg,
|
44
|
-
a_box box,
|
45
|
-
a_path path,
|
46
|
-
a_polygon polygon,
|
47
|
-
a_circle circle
|
48
|
-
);
|
49
|
-
_SQL
|
50
|
-
|
51
|
-
execute <<_SQL
|
52
|
-
CREATE TABLE postgresql_arrays (
|
53
|
-
id SERIAL PRIMARY KEY,
|
54
|
-
commission_by_quarter INTEGER[],
|
55
|
-
nicknames TEXT[]
|
56
|
-
);
|
57
|
-
_SQL
|
58
|
-
execute <<_SQL
|
59
|
-
CREATE TABLE postgresql_moneys (
|
60
|
-
id SERIAL PRIMARY KEY,
|
61
|
-
wealth MONEY
|
62
|
-
);
|
63
|
-
_SQL
|
64
|
-
|
65
|
-
execute <<_SQL
|
66
|
-
CREATE TABLE postgresql_numbers (
|
67
|
-
id SERIAL PRIMARY KEY,
|
68
|
-
single REAL,
|
69
|
-
double DOUBLE PRECISION
|
70
|
-
);
|
71
|
-
_SQL
|
72
|
-
|
73
|
-
execute <<_SQL
|
74
|
-
CREATE TABLE postgresql_times (
|
75
|
-
id SERIAL PRIMARY KEY,
|
76
|
-
time_interval INTERVAL
|
77
|
-
);
|
78
|
-
_SQL
|
79
|
-
|
80
|
-
execute <<_SQL
|
81
|
-
CREATE TABLE postgresql_network_addresses (
|
82
|
-
id SERIAL PRIMARY KEY,
|
83
|
-
cidr_address CIDR,
|
84
|
-
inet_address INET,
|
85
|
-
mac_address MACADDR
|
86
|
-
);
|
87
|
-
_SQL
|
88
|
-
|
89
|
-
execute <<_SQL
|
90
|
-
CREATE TABLE postgresql_bit_strings (
|
91
|
-
id SERIAL PRIMARY KEY,
|
92
|
-
bit_string BIT(8),
|
93
|
-
bit_string_varying BIT VARYING(8)
|
94
|
-
);
|
95
|
-
_SQL
|
96
|
-
|
97
|
-
execute <<_SQL
|
98
|
-
CREATE TABLE postgresql_oids (
|
99
|
-
id SERIAL PRIMARY KEY,
|
100
|
-
obj_id OID
|
101
|
-
);
|
102
|
-
_SQL
|
103
|
-
|
104
|
-
begin
|
105
|
-
execute <<_SQL
|
106
|
-
CREATE TABLE postgresql_xml_data_type (
|
107
|
-
id SERIAL PRIMARY KEY,
|
108
|
-
data xml
|
109
|
-
);
|
110
|
-
_SQL
|
111
|
-
rescue #This version of PostgreSQL either has no XML support or is was not compiled with XML support: skipping table
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|