aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix another implicit dependency of the AM test suiteSean Griffin2015-09-211-0/+1
| | | | Hopefully this is the last one
* Require dependencies from stdlib in the Decimal typeSean Griffin2015-09-211-0/+2
| | | | | | | In Active Record, it appears these were either autoloaded, which actually was likely due to test ordering since the method `Float#to_d` wouldn't trigger it. This makes it explicit, and unlikely to fail in the future.
* We still need the `Helpers` constant in the `ActiveRecord` namespaceSean Griffin2015-09-211-0/+1
| | | | | | | We should probably review the usage of these constants and decide whether we want to be more transparent about which things come from Active Model vs Active Record, as this is meaningful information as to whether there is database specific behavior or not.
* Remove no-op options being passed in AM type registrationsSean Griffin2015-09-211-11/+11
| | | | | | The `override` option is only a thing for Active Record registrations. We should figure out how to make this properly error out without doing anything too weird to the code.
* Merge pull request #21533Sean Griffin2015-09-2142-426/+655
|\ | | | | | | | | | | | | | | | | | | | | | | Move ActiveRecord::Type to ActiveModel The intention has always been to move the attributes API off of Active Record and onto Active Model. This is the first step in that transition. This merges the pull request (which has been squashed and rebased), with various changes to the code to get the quality to a level which is acceptable to merge. Close #21533
| * Move the appropriate type tests to the Active Model suiteSean Griffin2015-09-219-225/+263
| | | | | | | | | | | | | | | | | | Any tests for a type which is not overridden by Active Record, and does not test the specifics of the attributes API interacting in more complex ways have no reason to be in the Active Record suite. Doing this revealed that the implementation of the date and time types in AM was actually completely broken, and incapable of returning any value other than `nil`.
| * Simplify the implementation of Active Model's type registrySean Griffin2015-09-213-103/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Things like decorations, overrides, and priorities only matter for Active Record, so the Active Model registry can be implemented much more simply. At this point, I wonder if having Active Record's registry inherit from Active Model's is even worth the trouble? The Active Model class was also missing test cases, which have been backfilled. This removes the error when two types are registered with the same name, but given that Active Model is meant to be significantly more generic, I do not think this is an issue for now. If we want, we can raise an error at the point that someone tries to register it.
| * Various stylistic nitpicksSean Griffin2015-09-217-46/+43
| | | | | | | | | | | | | | We do not need to require each file from AM individually, the type module does that for us. Even if the classes are extremely small right now, I'd rather keep any custom classes needed by AR in their own files, as they can easily have more complex changes in the future.
| * `TypeMap` and `HashLookupTypeMap` shouldn't be in Active ModelSean Griffin2015-09-214-8/+5
| | | | | | | | | | | | These are used by the connection adapters to convert SQL type information into the appropriate type object, and makes no sense outside of the context of Active Record
| * Move ActiveRecord::Type to ActiveModelKir Shatrov2015-09-2131-96/+336
|/ | | | The first step of bringing typecasting to ActiveModel
* Merge pull request #21612 from ronakjangir47/remove_unused_paramsSean Griffin2015-09-211-2/+2
|\ | | | | Removed unused parameter `options` for `register_detail` method
| * Removed unused parameter `options` for `register_detail` methodRonak Jangir2015-09-131-2/+2
| | | | | | This method is only called with name & block.
* | Update to latest turbolinksAndrew White2015-09-211-1/+1
| |
* | Use Sidekiq.options to set initial waitAndrew White2015-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | The INITIAL_WAIT constant has moved to the Sidekiq::Poller class but rather than setting the constant directly we can override it via the `:poll_interval_average` option. This was causing random build failures because the test was waiting for 10 seconds for the job to execute but the initial wait was a random value between 10 and 15 seconds.
* | Run `rake db:migrate` for all Active Job integration testsAndrew White2015-09-211-1/+2
| | | | | | | | | | | | If db/schema.rb doesn't exist then we get warnings from the dummy Rails application so run it for all adapters even if they're not using the database to store jobs.
* | Silence logging in Active Job unit testsAndrew White2015-09-211-0/+1
| |
* | Use master version of Turbolinks gemAndrew White2015-09-212-4/+10
| | | | | | | | | | Since `alias_method_chain` is deprecated we need to use the master version of the Turbolinks gem as it has support for using `Module#prepend`.
* | Short-circuit `blank?` on date and time valuesAndrew White2015-09-217-1/+48
| | | | | | | | | | | | | | The concept of a blank date or time doesn't make sense so we can short circuit the calls for `blank?` on these classes to gain small speed boost. Fixes #21657
* | Merge pull request #21684 from amitsuroliya/correct_resultAndrew White2015-09-211-6/+4
|\ \ | | | | | | Applying right result of examples in ActiveSupport Multibyte [ci skip]
| * | Applying right result of examples in ActiveSupport Multibyte [ci skip]amitkumarsuroliya2015-09-211-6/+4
| | |
* | | Merge pull request #21693 from joshuapinter/patch-1Jeremy Daer2015-09-201-0/+2
|\ \ \ | | | | | | | | Add title for key lengths for multiple keys.
| * | | Add title for key lengths for multiple keys.Joshua Pinter2015-09-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously there was no separator between the two code examples so it looked like: ```ruby CREATE INDEX by_name ON accounts(name(10)) add_index(:accounts, [:name, :surname], name: 'by_name_surname', length: {name: 10, surname: 15}) ```
* | | | Merge pull request #21694 from harrykiselev/patch-2Jeremy Daer2015-09-201-0/+1
|\ \ \ \ | | | | | | | | | | Docs typo: missing `end` in routing.rb
| * | | | Update routing.rbHarry V. Kiselev2015-09-201-0/+1
| | | | | | | | | | | | | | | forgotten end of the block
* | | | | Merge pull request #20009 from kamipo/foreign_keys_in_createJeremy Daer2015-09-203-17/+33
|\ \ \ \ \ | |/ / / / |/| | | | Support for foreign keys in create table
| * | | | Support for foreign keys in create tableRyuta Kamizono2015-09-203-17/+33
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If foreign keys specified in create table, generated SQL is slightly more efficient. Definition: ``` create_table :testings do |t| t.references :testing_parent, foreign_key: true end ``` Before: ``` CREATE TABLE "testings" ("id" serial primary key, "testing_parent_id" integer); ALTER TABLE "testings" ADD CONSTRAINT "fk_rails_a196c353b2" FOREIGN KEY ("testing_parent_id") REFERENCES "testing_parents" ("id"); ``` After: ``` CREATE TABLE "testings" ("id" serial primary key, "testing_parent_id" integer, CONSTRAINT "fk_rails_a196c353b2" FOREIGN KEY ("testing_parent_id") REFERENCES "testing_parents" ("id")); ```
* | | | Merge pull request #21687 from kamipo/refactor_table_existsAndrew White2015-09-203-27/+10
|\ \ \ \ | |_|/ / |/| | | Refactor `table_exists?` in AbstractMysqlAdapter
| * | | Refactor `table_exists?` in AbstractMysqlAdapterRyuta Kamizono2015-09-203-27/+10
| |/ / | | | | | | | | | | | | | | | `table_exists?` calls `tables` twice when passed `'dbname.tblname'` arg. This change is that `table_exists?` execute only once query always and extra args of `tables` is removed.
* | | :hocho: TyposAkira Matsuda2015-09-216-6/+6
| | |
* | | TypppoAkira Matsuda2015-09-211-3/+3
| | |
* | | :scissors: empty line at the top of filesAkira Matsuda2015-09-219-9/+0
| | |
* | | Merge pull request #21689 from ↵Andrew White2015-09-202-1/+2
|\ \ \ | | | | | | | | | | | | | | | | y-yagi/fix_application_controller_require_dependency_path fix application_controller require_dependency path generated by the scaffold generator
| * | | fix application_controller require_dependency path generated by the scaffold ↵yuuji.yaginuma2015-09-202-1/+2
| |/ / | | | | | | | | | | | | | | | | | | generator This is follow up to #6643. In #6643, the controller generator only had been fixed, in this commit to fix the scaffold generator.
* | | Merge pull request #21691 from amitsuroliya/guide_fixesKasper Timm Hansen2015-09-201-3/+3
|\ \ \ | | | | | | | | fix `to_time` output in ActiveSupport guide.
| * | | fix `to_time` output in ActiveSupport guide. Since ↵amitkumarsuroliya2015-09-201-3/+3
|/ / / | | | | | | | | | | | | https://github.com/rails/rails/commit/48583f8bf74d1cefefea3cd6591bd546a9eaff6c , to_time returns times formatted as YYYY-MM-DD HH:MM:SS UTC [ci skip] `to_time` method returns in `YYYY-MM-DD HH:MM:SS UTC` format after this commit https://github.com/rails/rails/commit/48583f8bf74d1cefefea3cd6591bd546a9eaff6c .
* | | Merge pull request #21690 from amitsuroliya/typo_fixRobin Dupret2015-09-201-2/+2
|\ \ \ | | | | | | | | correcting word smpt -> smtp in ActionMailer guide [ci skip]
| * | | correcting word smpt -> smtp in ActionMailer guide [ci skip]amitkumarsuroliya2015-09-201-2/+2
|/ / / | | | | | | `smpt.gmail.com` should be `smtp.gmail.com`
* | | Merge pull request #21685 from y-yagi/remove_force_reload_option_from_guideClaudio B.2015-09-191-12/+20
|\ \ \ | |/ / |/| | remove association reload option from guide [ci skip]
| * | remove association reload option from guide [ci skip]yuuji.yaginuma2015-09-201-12/+20
|/ / | | | | | | The option was deprecated in 6eae366d0d2e5d5211eeaf955f56bd1dc6836758
* | Merge pull request #17696 from kamipo/unsigned_integer_supportJeremy Daer2015-09-195-9/+144
|\ \ | | | | | | | | | Add `unsigned` support for numeric data types in MySQL
| * | Add `unsigned` types for numeric data types in MySQLRyuta Kamizono2015-09-184-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the case of using `unsigned` as the type: create_table :foos do |t| t.unsigned_integer :unsigned_integer t.unsigned_bigint :unsigned_bigint t.unsigned_float :unsigned_float t.unsigned_decimal :unsigned_decimal, precision: 10, scale: 2 end
| * | Add `unsigned` support for numeric data types in MySQLRyuta Kamizono2015-09-185-9/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: create_table :foos do |t| t.integer :unsigned_integer, unsigned: true t.bigint :unsigned_bigint, unsigned: true t.float :unsigned_float, unsigned: true t.decimal :unsigned_decimal, unsigned: true, precision: 10, scale: 2 end
* | | Merge pull request #19086 from kamipo/move_explain_into_abstract_mysql_adapterJeremy Daer2015-09-194-78/+113
|\ \ \ | | | | | | | | | | | | Move `explain` into `AbstractMysqlAdapter`
| * | | Move `explain` into `AbstractMysqlAdapter`Ryuta Kamizono2015-03-014-78/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Common methods in both mysql adapters are should be added to `AbstractMysqlAdapter`, but some methods had been added to `Mysql2Adapter`. (8744632f, 0306f82e, #14359) Some methods already moved from `Mysql2Adapter` to `AbstractMysqlAdapter`. (#17601, #17998) Common methods in both mysql adapters are remaining only the `explain` method in `Mysql2Adapter`.
* | | | Merge pull request #20645 from kamipo/fix_mysql_set_type_bugJeremy Daer2015-09-192-1/+10
|\ \ \ \ | | | | | | | | | | Fix undesired type lookup with `SET` in MySQL
| * | | | Fix infinite loop and lookup miss when `SET` type includes other typesRyuta Kamizono2015-06-201-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes the following problems: * cause infinit type lookup loop when SET includes aliased types * For example: when SET('set') includes aliased type `set`, then aliased `varchar('set')` by type lookup, but type lookup infinit matching same rule. * cause type lookup miss when SET includes registered types * For example: when SET('time') includes registered type `time`, then aliased `varchar('time')` by type lookup, then matching `time` type.
| * | | | Fix the MySQL column type `SET` registration bugTaishi Kasuga2015-06-201-0/+4
| | | | |
* | | | | Merge pull request #21589 from ↵Jeremy Daer2015-09-192-16/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | kamipo/eliminate_duplicated_visit_table_definition Eliminate the duplication code of `visit_TableDefinition`
| * | | | | Eliminate the duplication code of `visit_TableDefinition`Ryuta Kamizono2015-09-162-18/+13
| | | | | |
* | | | | | Merge pull request #21609 from kamipo/do_not_dump_view_as_tableJeremy Daer2015-09-197-1/+102
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Do not dump a view as a table in sqlite3, mysql and mysql2 adapters