aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Actioncable and Actionpack documentation typos [ci skip]Tom Kadwill2016-04-213-12/+11
|
* 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.
* | | | | Merge pull request #24640 from kamipo/fix_test_blank_columns_created_in_blockRafael França2016-04-191-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Fix `test_blank_columns_created_in_block`
| * | | | | Fix `test_blank_columns_created_in_block`Ryuta Kamizono2016-04-201-1/+1
|/ / / / / | | | | | | | | | | | | | | | Follow up to 1683410.
* | | | | Merge pull request #24031 from ↵Jeremy Daer2016-04-192-2/+14
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | samphilipd/sam/do_not_clobber_options_in_route_definitions Do not destructively mutate passed options hash in route definitions
| * | | | | Do not destructively mutate passed options hash in route definitionsSam Davies2016-03-032-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Fixes #24030 An example scope might be specified as such: ```ruby HTML = { constraints: { format: :html } }.freeze scope HTML do get 'x' end ``` This currently raises an error because the mapper attempts to destructively modify the passed options hash. This is dangerous because this options hash might even be shared with other scopes. We should instead always instantiate a new object instead of modifying the passed options.
* | | | | | Merge pull request #24619 from BenMorganIO/use-rails-5-in-rails-engine-binYves Senn2016-04-191-1/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | remove rails 4 specification in bin/rails for plugins [ci skip]
| * | | | | | mention rails 5 instead of rails 4 in bin/rails for pluginsBen A. Morgan2016-04-191-1/+2
| | | | | | |
* | | | | | | Merge pull request #24638 from maclover7/jm-rm-commentKasper Timm Hansen2016-04-191-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Remove unecessary comment
| * | | | | | | Remove unecessary commentJon Moss2016-04-191-1/+1
|/ / / / / / /
* | | | | | | Database comments: Treat blank comments as no comment. Don't dump blank ↵Jeremy Daer2016-04-193-57/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | comments.
* | | | | | | Merge pull request #24635 from mohitnatoo/doc-queue-adapterVipul A M2016-04-201-0/+12
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | Added documentation for ActiveJob queue adapter for a specific job. [ci skip]
| * | | | | | - Added documentation for ActiveJob queue adapter for a specific job.Mohit Natoo2016-04-201-0/+12
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip] Added note on child class maintaining parent's queue adapter. [ci skip] Added note on child class maintaining parent's queue adapter. [ci skip] removed documentation for child class inheriting the queue adapter.
* | | | | | Merge pull request #24634 from kamipo/arel_visitors_definitions_was_removedRafael França2016-04-194-1/+13
|\ \ \ \ \ \ | | | | | | | | | | | | | | Define `arel_visitor` method on all adapters