aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | | 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
| * | | | | | | | | Define `arel_visitor` method on all adaptersRyuta Kamizono2016-04-204-1/+13
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | `Arel::Visitors::VISITORS` was removed at https://github.com/rails/arel/pull/412.
* | | | | | | | | Merge pull request #24567 from Edouard-chin/ec-method-typoSean Griffin2016-04-191-2/+2
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Small typo on a method name:
| * | | | | | | | | Small typo on a method name:Edouard CHIN2016-04-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - clear_test_deliviers -> clear_test_deliveries
* | | | | | | | | | Merge pull request #24632 from vipulnsward/rm-reference-to-methodSantiago Pastorino2016-04-191-2/+0
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Remove reference to unknown method `dirty?` in docs [ci skip]
| * | | | | | | | | | Remove reference to unknown method `dirty?` to docsVipul A M2016-04-191-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
* | | | | | | | | | | Merge pull request #24630 from aried3r/patch-1Vipul A M2016-04-191-1/+1
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Update send_data documentation [ci skip]
| * | | | | | | | | | | Update send_data documentation [ci skip]Anton Rieder2016-04-191-1/+1
|/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | Add missing period after sentence.
* | | | | | | | | | | Merge pull request #24626 from JustinJruby/masterJon Moss2016-04-191-1/+1
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | | Change the Hash.to_xml with a lamda example
| * | | | | | | | | | Change the Hash.to_xml with a lamda example Justin2016-04-191-1/+1
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update 'foo'.to_xml(lambda { |options, key| options[:builder].b(key) }) to {foo: lambda { |options, key| options[:builder].b(key) }}.to_xml
* | | | | | | | | | Merge pull request #24621 from kamipo/remove_unused_table_with_autoincrementJeremy Daer2016-04-191-4/+0
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove unused `table_with_autoincrement` table