diff options
author | brainopia <brainopia@evilmartians.com> | 2015-04-02 01:53:49 +0300 |
---|---|---|
committer | brainopia <brainopia@evilmartians.com> | 2015-04-02 02:07:45 +0300 |
commit | cdac52e124769909b6cb5fce2c4d00e09d21e059 (patch) | |
tree | ec495f33893beb08670daf2ce70696e3171e847b /actionview/lib/action_view/template/handlers/raw.rb | |
parent | 4ba1376c608cc797c80402a73568744b1c855f67 (diff) | |
download | rails-cdac52e124769909b6cb5fce2c4d00e09d21e059.tar.gz rails-cdac52e124769909b6cb5fce2c4d00e09d21e059.tar.bz2 rails-cdac52e124769909b6cb5fce2c4d00e09d21e059.zip |
Prefer string patterns for gsub
https://github.com/ruby/ruby/pull/579 - there is a new optimization
since ruby 2.2
Previously regexp patterns were faster (since a string was converted to
regexp underneath anyway). But now string patterns are faster and
better reflect the purpose.
Benchmark.ips do |bm|
bm.report('regexp') { 'this is ::a random string'.gsub(/::/, '/') }
bm.report('string') { 'this is ::a random string'.gsub('::', '/') }
bm.compare!
end
# string: 753724.4 i/s
# regexp: 501443.1 i/s - 1.50x slower
Diffstat (limited to 'actionview/lib/action_view/template/handlers/raw.rb')
-rw-r--r-- | actionview/lib/action_view/template/handlers/raw.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/actionview/lib/action_view/template/handlers/raw.rb b/actionview/lib/action_view/template/handlers/raw.rb index 397c86014a..0c0d1fffcb 100644 --- a/actionview/lib/action_view/template/handlers/raw.rb +++ b/actionview/lib/action_view/template/handlers/raw.rb @@ -2,7 +2,7 @@ module ActionView module Template::Handlers class Raw def call(template) - escaped = template.source.gsub(/:/, '\:') + escaped = template.source.gsub(':', '\:') '%q:' + escaped + ':;' end |