aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Actionpack documentation typos [ci skip]Tom Kadwill2016-04-234-10/+10
| | | | |
* | | | | Schema load: Fix dupe version insertJeremy Daer2016-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | Re. 6e098284e97250eaed6f30f5c7c362d87da986b0
* | | | | Merge pull request #24693 from vipulnsward/fix-test-nameArthur Nogueira Neves2016-04-221-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Fix test name
| * | | | | Fix test nameVipul A M2016-04-231-1/+1
|/ / / / /
* | | | | Merge pull request #24685 from vipulnsward/sqlite-compat-for-multi-insertJeremy Daer2016-04-224-4/+43
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Gracefully fallback on version migrations for sqlite < 3.7.11
| * | | | | https://github.com/rails/rails/commit/42dd2336b31a8d98776d039a2b9fd7f834156a ↵Vipul A M2016-04-234-4/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 78 changed INSERT INTO versions to run in 1 single query. This breaks for sqlite versions < 3.7.11, which is especially the case on Ubuntu 12.04 LTS, that has SQLite version 3.7.9 as default. So we check for support for multi insert, before performing single query inserts, else fallback to older version of running multiple queries. [Vipul A M & Yasuo Honda]
* | | | | | Do not attempt to return connection with open transaction to pool (#24610)Sean Griffin2016-04-222-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the query cache completes, if Active Record is still inside of a transaction, it is because the transaction is meant to be left open above this unit of work (such as transactional fixtures in tests). There were several tests around the behavior of "tests" that were invalid, as tests are not run through the executor. They have been changed to reflect the new behavior, which is closer to what actually occurs in Rails tests. Fixes #23989 Fixes #24491 Close #24500
* | | | | | fix boot performance issueAaron Patterson2016-04-221-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Slight refactor to improve boot performance on some Ruby implementations (for now).
* | | | | | Merge pull request #24686 from javiervidal/broken-links-in-3-0-releases-notesVipul A M2016-04-221-3/+2
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | Fix broken links in 'Ruby on Rails 3.0 Release Notes' [ci skip]
| * | | | | Fix broken links in 'Ruby on Rails 3.0 Release Notes' [ci skip]Javier Vidal2016-04-221-3/+2
|/ / / / /
* | | | | Change definition of what async means for an Active Job Job [ci skip]Vipul A M2016-04-221-1/+2
|\ \ \ \ \ | |/ / / / |/| | | | Change definition of what async means for an Active Job Job [ci skip]
| * | | | - [ci skip] Active Job Async doesn't support to Async feature as per it's ↵Mohit Natoo2016-04-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | definition. - [ci skip] Active Job Async doesn't support to Async feature as per it's definition. - [ci skip] Active Job Async doesn't support to Async feature as per it's definition. - [ci skip] Active Job Async doesn't support to Async feature as per it's definition. - [ci skip] Active Job Async doesn't support to Async feature as per it's definition.
* | | | | Merge pull request #24681 from tcopeland/not_example_can_demonstrate_inequalityRichard Schneeman2016-04-211-3/+13
|\ \ \ \ \ | | | | | | | | | | | | Combine inequality and equality and add SQL examples [ci skip]
| * | | | | Add SQL examples for equality and NOT [ci skip]Tom Copeland2016-04-211-3/+13
|/ / / / /
* | | | | Merge pull request #24669 from tomkadwill/action_pack_typosVipul A M2016-04-223-12/+11
|\ \ \ \ \ | | | | | | | | | | | | Actioncable and Actionpack documentation typos [ci skip]
| * | | | | Actioncable and Actionpack documentation typos [ci skip]Tom Kadwill2016-04-213-12/+11
| | |/ / / | |/| | |
* | | | | just say nothing about why this regexp is slower [ci skip]Xavier Noria2016-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Further investigation seems to disprove that backtracking is the reason why the positive variant is slower, see https://github.com/rails/rails/pull/24658#issuecomment-213079710 so, just say nothing about it, only assert it is slower.
* | | | | Merge pull request #24680 from mohitnatoo/rake-dev-cacheKasper Timm Hansen2016-04-211-1/+1
|\ \ \ \ \ | | | | | | | | | | | | using rails dev:cache instead of rake dev:cache
| * | | | | - using rails dev:cache instead of rake dev:cacheMohit Natoo2016-04-221-1/+1
| | |/ / / | |/| | |
* | | | | Merge pull request #24676 from vipulnsward/log-ac-failed-statesJeremy Daer2016-04-211-0/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Log if redis connection is in stale/failed state.
| * | | | | Log if redis connection is in stale/failed state.Vipul A M2016-04-211-0/+4
| | | | | |
* | | | | | Make file update checker tests more resilient on WindowsSean Griffin2016-04-213-5/+10
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without the `wdm` gem, it appears that `listen` keeps an open handle to each of these files, causing them not to be removed when the tempdir tries to clean iteslf up, and then directory to fail to unlink. In addition to fixing that particular failure, we now construct OS agnostic paths, and capture exceptions if the directory fails to unlink so that minitest will report it rather than crash
* | | | | Merge pull request #24661 from maclover7/fix-22975Rafael França2016-04-212-1/+9
|\ \ \ \ \ | | | | | | | | | | | | Fix ApplicationController.renderer.defaults.merge!
| * | | | | Fix ApplicationController.renderer.defaults.merge!Jon Moss2016-04-202-1/+9
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, users were trying to modify a frozen Hash. Includes a regression test :) Fixes #22975
* | | | | Merge pull request #24672 from mrkjlchvz/mc-space-bumpRafael França2016-04-211-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Minor space bump.
| * | | | | Minor space bump.Mark2016-04-211-1/+1
| | | | | |
* | | | | | Merge pull request #24664 from ↵Rafael França2016-04-211-1/+1
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | y-yagi/use_wrapper_file_to_add_rake_task_for_engines use wrapper file to add rake task for engines
| * | | | | use wrapper file to add rake task for enginesyuuji.yaginuma2016-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `bundler` provides wrapper file to add rask tasks. https://github.com/bundler/bundler/blob/master/lib/bundler/gem_tasks.rb Instead of directly call method, by which require this file, it can be used without updating of Rakefile if task has been added.
* | | | | | restores code comments in String#blank? [ci skip]Xavier Noria2016-04-211-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you come here without context, it is important to hightlight that checking the predicate is worthwhile due to the observation that blank strings are often empty. So you complicate the code (which has a cost in terms of readability and aesthetics), but statistically makes sense. Then, you also need to explain why the second operand is so convoluted. Otherwise, you wonder why this line is written precisely this way. That is what code comments are for.
* | | | | | Merge pull request #24663 from kamipo/remove_unused_blank_reJeremy Daer2016-04-201-2/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Remove unused `BLANK_RE`
| * | | | | | Remove unused `BLANK_RE`Ryuta Kamizono2016-04-211-2/+0
| | |_|/ / / | |/| | | | | | | | | | | | | | | | Follow up to #24658.
* | | | | | Merge pull request #24657 from maclover7/fix-23643-1Rafael França2016-04-211-0/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Add #18323 to 5.0 release notes
| * | | | | | Add #18323 to 5.0 release notesJon Moss2016-04-201-0/+3
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #23643. [ci skip]
* | | | | | Merge pull request #24666 from tlynam/patch-1Rafael França2016-04-201-5/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Update delegate to use newer Ruby syntax
| * | | | | | Update delegate to use newer Ruby syntaxTodd Lynam2016-04-201-5/+2
| | | | | | | | | | | | | | | | | | | | | This commit updates `delegate` to use the keyword argument syntax added in Ruby 2. I left the `ArgumentError` when `to` is missing, because it better explains how to correctly use `delegate`. We could instead rely on the default `ArgumentError` that would be raised if `to` were a required keyword argument.
* | | | | | | Merge pull request #24668 from rails/revert-24667-add_doc_for_type_optionप्रथमेश Sonpatki2016-04-211-2/+0
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Revert "add doc for `:type` option of `#create_join_table` [ci skip]"
| * | | | | | | Revert "add doc for `:type` option of `#create_join_table` [ci skip]"प्रथमेश Sonpatki2016-04-211-2/+0
|/ / / / / / /
* | | | | | | Merge pull request #24667 from y-yagi/add_doc_for_type_optionप्रथमेश Sonpatki2016-04-211-0/+2
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | add doc for `:type` option of `#create_join_table` [ci skip]
| * | | | | | add doc for `:type` option of `#create_join_table` [ci skip]yuuji.yaginuma2016-04-211-0/+2
|/ / / / / / | | | | | | | | | | | | | | | | | | Follow up to #24221.
* | | | | | Merge pull request #24662 from tcopeland/autoloading_typoJon Moss2016-04-201-2/+2
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Fix small typos [ci skip]
| * | | | | Fix small typos [ci skip]Tom Copeland2016-04-201-2/+2
|/ / / / /
* | | | | Merge pull request #24658 from schneems/schneems/faster-regex-blank-stringXavier Noria2016-04-201-6/+3
|\ \ \ \ \ | | | | | | | | | | | | Speed up String#blank? Regex
| * | | | | Speed up String#blank? Regexschneems2016-04-201-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up on https://github.com/rails/rails/commit/697384df36a939e565b7c08725017d49dc83fe40#commitcomment-17184696. The regex to detect a blank string `/\A[[:space:]]*\z/` will loop through every character in the string to ensure that all of them are a `:space:` type. We can invert this logic and instead look for any non-`:space:` characters. When that happens, we would return on the first character found and the regex engine does not need to keep looking. Thanks @nellshamrell for the regex talk at LSRC. By defining a "blank" string as any string that does not have a non-whitespace character (yes, double negative) we can get a substantial speed bump. Also an inline regex is (barely) faster than a regex in a constant, since it skips the constant lookup. A regex literal is frozen by default. ```ruby require 'benchmark/ips' def string_generate str = " abcdefghijklmnopqrstuvwxyz\t".freeze str[rand(0..(str.length - 1))] * rand(0..23) end strings = 100.times.map { string_generate } ALL_WHITESPACE_STAR = /\A[[:space:]]*\z/ Benchmark.ips do |x| x.report('current regex ') { strings.each {|str| str.empty? || ALL_WHITESPACE_STAR === str } } x.report('+ instead of * ') { strings.each {|str| str.empty? || /\A[[:space:]]+\z/ === str } } x.report('not a non-whitespace char') { strings.each {|str| str.empty? || !(/[[:^space:]]/ === str) } } x.compare! end # Warming up -------------------------------------- # current regex # 1.744k i/100ms # not a non-whitespace char # 2.264k i/100ms # Calculating ------------------------------------- # current regex # 18.078k (± 8.9%) i/s - 90.688k # not a non-whitespace char # 23.580k (± 7.1%) i/s - 117.728k # Comparison: # not a non-whitespace char: 23580.3 i/s # current regex : 18078.2 i/s - 1.30x slower ``` This makes the method roughly 30% faster `(23.580 - 18.078)/18.078 * 100`. cc/ @fxn
* | | | | | Merge pull request #24221 from gregmolnar/uuidKasper Timm Hansen2016-04-202-2/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | create_join_table should work with uuid
| * | | | | | add column type option to create_join_table to support uuidGreg Molnar2016-03-172-2/+10
| | | | | | |
* | | | | | | Merge pull request #24656 from mohitnatoo/regardless-if-or-notRafael França2016-04-201-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Use of `whether or not` instead of `regardless if ... or not`
| * | | | | | | - [ci skip] `regardless` is usually followed by `of` and not by `if .. or not`.Mohit Natoo2016-04-211-2/+2
| | |_|_|_|/ / | |/| | | | |
* | | | | | | Merge pull request #23557 from ↵Jeremy Daer2016-04-204-32/+55
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | kamipo/dump_indexes_in_create_for_generates_sql_in_one_query Dump indexes in `create_table` for generates SQL in one query
| * | | | | | Dump indexes in `create_table` for generates SQL in one queryRyuta Kamizono2016-04-204-32/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the adapter supports indexes in create table, it generates SQL in one query.
* | | | | | | ~3.5x speedup of String#blank? for empty stringsXavier Noria2016-04-201-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See the rationale in the comment in this patch. To benchmark this I ran a number of variations, ultimately narrowing to require 'benchmark/ips' str = '' regexp = /\A[[:space:]]*\z/ Benchmark.ips do |x| x.report('regexp') { regexp === str } x.report('empty') { str.empty? || regexp === str } x.compare! end This benchmark has consistently reported speedups around 3.5x: Calculating ------------------------------------- regexp 69.197k i/100ms empty 115.468k i/100ms ------------------------------------------------- regexp 2. 6.3%) i/s - 13.839M empty 9. 8.8%) i/s - 47.804M Comparison: empty: 9642607.6 i/s regexp: 2768351.9 i/s - 3.48x slower Sometimes even reaching 4x. Running the same bechmark on strings of 10 or 100 characters (with whitespace or present) has shown a slowdown of just about 1.01/1.02. Marginal, we seem to have a worthwhile trade-off here.