Module: CdnAssets::ViewHelpers
- Defined in:
- lib/cdn_assets/view_helpers.rb
Constant Summary collapse
- ASSET_CDN_URLS =
{ bootstrap: { cdnjs: '//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/{v}/css/bootstrap.min.css', jsdelivr: '//cdn.jsdelivr.net/bootstrap/{v}/css/bootstrap.min.css' }, bootstrap_combined: { netdna: '//netdna.bootstrapcdn.com/twitter-bootstrap/{v}/css/bootstrap-combined.min.css' }, bootstrap_js: { cdnjs: '//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/{v}/js/bootstrap.min.js', jsdelivr: '//cdn.jsdelivr.net/bootstrap/{v}/js/bootstrap.min.js', netdna: '//netdna.bootstrapcdn.com/twitter-bootstrap/{v}/js/bootstrap.min.js' }, bootstrap_responsive: { cdnjs: '//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/{v}/css/bootstrap-responsive.min.css', jsdelivr: '//cdn.jsdelivr.net/bootstrap/{v}/css/bootstrap-responsive.min.css' }, font_awesome: { cdnjs: '//cdnjs.cloudflare.com/ajax/libs/font-awesome/{v}/css/font-awesome.min.css', jsdelivr: '//cdn.jsdelivr.net/fontawesome/{v}/css/font-awesome.min.css', netdna: '//netdna.bootstrapcdn.com/font-awesome/{v}/css/font-awesome.min.css' }, jquery: { cdnjs: '//cdnjs.cloudflare.com/ajax/libs/jquery/{v}/jquery.min.js', google: '//ajax.googleapis.com/ajax/libs/jquery/{v}/jquery.min.js', jsdelivr: '//cdn.jsdelivr.net/jquery/{v}/jquery-{v}.min.js', microsoft: '//ajax.aspnetcdn.com/ajax/jQuery/jquery-{v}.min.js' } }
Instance Method Summary collapse
Instance Method Details
#cdn_asset(asset, options = {}) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/cdn_assets/view_helpers.rb', line 37 def cdn_asset(asset, = {}) cdn = .delete(:c) raise ArgumentError, 'Asset CDN not specified' if cdn.nil? version = .delete(:v) raise ArgumentError, 'Asset version not specified' if version.nil? cdn_urls = ASSET_CDN_URLS[asset.to_sym] raise ArgumentError, 'Invalid asset name specified' if cdn_urls.nil? url = cdn_urls[cdn.to_sym] raise ArgumentError, 'Invalid CDN name specified' if url.nil? url = url.gsub '{v}', version.to_s if url.end_with? '.js' javascript_include_tag url, elsif url.end_with? '.css' stylesheet_link_tag url, else raise RuntimeError, 'Unexpected asset type encountered' # should never happen end end |
#cdn_assets(assets = {}) ⇒ Object
33 34 35 |
# File 'lib/cdn_assets/view_helpers.rb', line 33 def cdn_assets(assets = {}) assets.map { |asset, | cdn_asset asset, }.join("\n").html_safe end |