aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/helpers/asset_url_helper.rb
Commit message (Collapse)AuthorAgeFilesLines
* Add documentation on actionview asset_path with host and protocolLaurent Arnoud2019-06-121-0/+2
|
* Add `Style/RedundantFreeze` to remove redudant `.freeze`Yasuo Honda2018-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | | Since Rails 6.0 will support Ruby 2.4.1 or higher `# frozen_string_literal: true` magic comment is enough to make string object frozen. This magic comment is enabled by `Style/FrozenStringLiteralComment` cop. * Exclude these files not to auto correct false positive `Regexp#freeze` - 'actionpack/lib/action_dispatch/journey/router/utils.rb' - 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb' It has been fixed by https://github.com/rubocop-hq/rubocop/pull/6333 Once the newer version of RuboCop released and available at Code Climate these exclude entries should be removed. * Replace `String#freeze` with `String#-@` manually if explicit frozen string objects are required - 'actionpack/test/controller/test_case_test.rb' - 'activemodel/test/cases/type/string_test.rb' - 'activesupport/lib/active_support/core_ext/string/strip.rb' - 'activesupport/test/core_ext/string_ext_test.rb' - 'railties/test/generators/actions_test.rb'
* [ci skip] Change references from Rake task to Rails commandAlberto Almagro2018-08-011-2/+3
| | | | | This commit follows the path we started at commit #ea4f0e2 and continued at PR #33229.
* Fix typos, update documentationJames Lovejoy2018-01-111-6/+6
| | | | [ci skip]
* Fix asset url examples [ci skip]Ryuta Kamizono2017-11-151-6/+6
|
* Fix broken doc layout for action_view [ci skip]Yoshiyuki Hirano2017-08-271-1/+1
|
* Remove `alt` text from `image_tag` example [ci skip]yuuji.yaginuma2017-08-241-4/+4
| | | | Follow up of #30213
* Use frozen string literal in actionview/Kir Shatrov2017-07-241-0/+2
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* Merge pull request #27665 from kenta-s/improve-compute_asset_extnameRafael França2017-01-181-1/+5
|\ | | | | compute_asset_extname should explicitly return nil in else clause
| * should explicitly returns nil in else clausekenta-s2017-01-131-1/+5
| |
* | Fix grammar in asset_url_helper.rb [ci skip]kenta-s2017-01-131-3/+3
|/
* Minor corrections to #26905Andrew White2016-11-131-1/+1
|
* Merge pull request #26905 from bogdanvlviv/docsAndrew White2016-11-131-2/+2
|\ | | | | Add missing `+` around a some literals.
| * Add missing `+` around a some literals.bogdanvlviv2016-10-271-2/+2
| | | | | | | | | | | | Mainly around `nil` [ci skip]
* | let Regexp#match? be globally availableXavier Noria2016-10-271-1/+0
|/ | | | | | Regexp#match? should be considered to be part of the Ruby core library. We are emulating it for < 2.4, but not having to require the extension is part of the illusion of the emulation.
* [ci skip] Replace to closing tagAndrey Molchanov2016-09-201-1/+1
|
* Fix styleschneems2016-08-301-5/+5
|
* Address comment via @dhh, better option namingschneems2016-08-301-11/+11
|
* Address doc style comments from @robin850schneems2016-08-291-9/+9
|
* Fully document asset_path.schneems2016-08-291-7/+58
|
* Do not deprecate using assets with leading slashschneems2016-08-291-10/+5
|
* Favor `public_folder: true` over `public_*`schneems2016-08-291-112/+0
| | | | Adding all those `public_*` methods is a bit heavy handed, we can change the API to instead use `public_folder: true`. Change was pretty easy since it was already implemented that way.
* Fix formattingschneems2016-08-291-15/+14
|
* Match method signatureschneems2016-08-291-3/+3
|
* Add docs to `public_*_path` methods & fix commentsschneems2016-08-291-15/+36
|
* Add public URL helpersschneems2016-08-291-0/+56
|
* Add descriptive commentschneems2016-08-291-7/+7
|
* Make sure routes don't interfere with pathsschneems2016-08-291-0/+11
|
* Allow a more explicit public behaviorschneems2016-08-291-2/+37
| | | | | We want to make it more explicit when a user wants to avoid the asset pipeline to do this we will add `public_*` methods to all path helpers. So if someone wants to use an asset that isn't maintained by the asset pipeline they can use `public_asset_path` instead of `asset_path` and letting it fall through. The main reason for this change is the desire to raise helpful errors in the future. Right now if you typo an asset name, then we assume you intended an asset in the `public/` folder and not in the pipeline so nothing fails and the error sits silently until you realize the page didn't render correctly. We have to deprecate today so we can raise meaningful error messages in the future.
* Add three new rubocop rulesRafael Mendonça França2016-08-161-12/+12
| | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* modernizes hash syntax in actionviewXavier Noria2016-08-061-1/+1
|
* applies new string literal convention in actionview/libXavier Noria2016-08-061-13/+13
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* systematic revision of =~ usage in AVXavier Noria2016-07-251-10/+13
| | | | | Where appropriate, prefer the more concise Regexp#match?, String#include?, String#start_with?, or String#end_with?
* typo fix [ci skip]amitkumarsuroliya2015-08-181-2/+2
|
* [ci skip] Fix simultaneous spellingKasper Timm Hansen2015-08-101-1/+1
|
* Update info on browser connection limits [ci skip]Derek Prior2015-08-101-11/+18
| | | | | | | Browsers have not been limited to two connections per host for quite some time now. With more connections allowed, the trade-off involved in asset host distribution isn't so clear and it becomes more important that developers measure actual performance before and after.
* Freeze string literals when not mutated.schneems2015-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I wrote a utility that helps find areas where you could optimize your program using a frozen string instead of a string literal, it's called [let_it_go](https://github.com/schneems/let_it_go). After going through the output and adding `.freeze` I was able to eliminate the creation of 1,114 string objects on EVERY request to [codetriage](codetriage.com). How does this impact execution? To look at memory: ```ruby require 'get_process_mem' mem = GetProcessMem.new GC.start GC.disable 1_114.times { " " } before = mem.mb after = mem.mb GC.enable puts "Diff: #{after - before} mb" ``` Creating 1,114 string objects results in `Diff: 0.03125 mb` of RAM allocated on every request. Or 1mb every 32 requests. To look at raw speed: ```ruby require 'benchmark/ips' number_of_objects_reduced = 1_114 Benchmark.ips do |x| x.report("freeze") { number_of_objects_reduced.times { " ".freeze } } x.report("no-freeze") { number_of_objects_reduced.times { " " } } end ``` We get the results ``` Calculating ------------------------------------- freeze 1.428k i/100ms no-freeze 609.000 i/100ms ------------------------------------------------- freeze 14.363k (± 8.5%) i/s - 71.400k no-freeze 6.084k (± 8.1%) i/s - 30.450k ``` Now we can do some maths: ```ruby ips = 6_226k # iterations / 1 second call_time_before = 1.0 / ips # seconds per iteration ips = 15_254 # iterations / 1 second call_time_after = 1.0 / ips # seconds per iteration diff = call_time_before - call_time_after number_of_objects_reduced * diff * 100 # => 0.4530373333993266 miliseconds saved per request ``` So we're shaving off 1 second of execution time for every 220 requests. Is this going to be an insane speed boost to any Rails app: nope. Should we merge it: yep. p.s. If you know of a method call that doesn't modify a string input such as [String#gsub](https://github.com/schneems/let_it_go/blob/b0e2da69f0cca87ab581022baa43291cdf48638c/lib/let_it_go/core_ext/string.rb#L37) please [give me a pull request to the appropriate file](https://github.com/schneems/let_it_go/blob/b0e2da69f0cca87ab581022baa43291cdf48638c/lib/let_it_go/core_ext/string.rb#L37), or open an issue in LetItGo so we can track and freeze more strings. Keep those strings Frozen ![](https://www.dropbox.com/s/z4dj9fdsv213r4v/let-it-go.gif?dl=1)
* Merge pull request #20669 from akolomiychuk/image-pathYves Senn2015-06-291-0/+2
|\ | | | | | | Passing nil to image_tag
| * Add nil check in asset_pathAnton Kolomiychuk2015-06-291-0/+2
|/
* fix typo asser url [ci skip]Mehmet Emin İNAÇ2015-04-161-6/+6
|
* [Skip ci] Add information about :host optionsAnton Davydov2015-04-161-0/+30
| | | | | | Added informations about :host options for each url helper (#javascript_url, #video_url, #stylesheet_url, etc) based on #asser_url method.
* Revert "Merge pull request #15312 from JuanitoFatas/action_view/asset_path"Matthew Draper2014-09-141-1/+1
| | | | | | | This reverts commit 21ec7fefea5a1b823cb88733b019b3d52240801d. Per #16911, there's actually a good reason for a "blank" value to have a useful `to_s` here. So let's also add some tests to prove that.
* Return an absolute instead of relative path from an asset url in the case of ↵Jolyon Pawlyn2014-07-151-1/+1
| | | | the `asset_host` proc returning nil
* [ci skip] /javascript/ -> JavaScript - cover whole appAkshay Vishnoi2014-07-041-2/+2
|
* [ci skip] correct output for asset_helper methodsKuldeep Aggarwal2014-06-161-10/+10
| | | | see cc255d3
* Update documentation for setting asset_host to a Proc, mention that the ↵Manuel Meurer2014-05-311-1/+4
| | | | request parameter might not be supplied [ci skip]
* correct docs for (asset|image)_path [ci skip]Aditya Kapoor2014-05-271-14/+14
|
* Convert source to string if it is present.Juanito Fatas2014-05-251-1/+1
|