aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | 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.
* | | | | | | | Merge pull request #24650 from y-yagi/use_rails_command_in_zones_task_descVipul A M2016-04-201-1/+1
|\ \ \ \ \ \ \ \ | |_|_|_|/ / / / |/| | | | | | | use rails command in `time:zones` task desc [ci skip]
| * | | | | | | use rails command in `time:zones` task desc [ci skip]yuuji.yaginuma2016-04-201-1/+1
|/ / / / / / /
* | | | | | | Merge pull request #24642 from prathamesh-sonpatki/fix-with-css-classes-exampleRafael França2016-04-201-6/+6
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix example for css_class_attribute and fix indentation
| * | | | | | | Fix example for css_class_attribute and fix indentationPrathamesh Sonpatki2016-04-201-6/+6
|/ / / / / / /
* | | | | | | Merge pull request #24644 from abhishekjain16/grammar_date_helperप्रथमेश Sonpatki2016-04-201-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | [ci skip] Small grammar fix
| * | | | | | | [ci skip] Small grammar fixAbhishek Jain2016-04-201-1/+1
|/ / / / / / /
* | | | | | | `undef_method` is not neededRyuta Kamizono2016-04-191-2/+3
| | | | | | |
* | | | | | | Merge pull request #20625 from Envek/add_country_zones_methodJeremy Daer2016-04-195-11/+57
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Add ActiveSupport::TimeZone.country_zones helper
| * | | | | | | Add ActiveSupport::TimeZone.country_zones helperAndrey Novikov2016-04-193-1/+25
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That helper will return time zones for any country that tzdata knows about. So it will be much simpler for non-US people to list own country time zones in HTML selects or anywhere.
* | | | | | | Merge pull request #24225 from ↵Rafael Mendonça França2016-04-203-3/+439
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | neumayr/date_select_helper_with_css_classes_accept_hash date_select helper with_css_classes option also accept a hash
| * | | | | | | date_select helper with_css_classes option also accept a hashneumayr2016-04-053-3/+439
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `date_select` helper `:with_css_classes` option now accepts a hash of strings for `:year`, `:month`, `:day`, `:hour`, `:minute`, `:second` that will extend the select type with the given css class value. ```erb <%= f.date_select :birthday, with_css_classes: { month: "my-month", year: "my-year" } %> ``` ```html <select id="user_birthday_3i" name="user[birthday(3i)]">…</select> <select id="user_birthday_2i" name="user[birthday(2i)]" class="my-month">…</select> <select id="user_birthday_1i" name="user[birthday(1i)]" class="my-year">…</select> ``` Optional, add global `html_options` to modify every select tag in the set. ```erb <%= f.date_select :birthday, with_css_classes: { month: "my-month", year: "my-year" }, { class: "my-date optional" } %> ``` Supported DateHelper methods: `select_day`, `select_month`, `select_year`, `select_hour`, `select_minute`, `select_second`, `select_datetime`, `select_time`, `time_select`, `date_select` and `datetime_select`. `:with_css_classes` option was added to the `date_select` with #7975.
* | | | | | | | Add CHANGELOG entry for #23869Rafael Mendonça França2016-04-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
* | | | | | | | Merge pull request #23869 from oreoshake/to-sentence-html-safetyRafael França2016-04-202-0/+85
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | | Add html_safe support to ActionView Array#OutputSafetyHelper
| * | | | | | | mimic ActiveSupport's Array#to_sentence in an html_safe-aware wayNeil Matatall2016-03-152-0/+85
| | | | | | | |
* | | | | | | | Ensure Cache#inspect doesn't block concurrent cache writesJeremy Daer2016-04-192-0/+11
| |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Object#inspect recursively inspects instance variables, exposing all internal state, including sensitive internal cache objects. Override Cache#inspect to give a high-level summary that never interferes with concurrent cache writes.