actionpack 3.2.19 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +850 -401
- data/MIT-LICENSE +1 -1
- data/README.rdoc +5 -288
- data/lib/abstract_controller/asset_paths.rb +2 -2
- data/lib/abstract_controller/base.rb +39 -37
- data/lib/abstract_controller/callbacks.rb +101 -82
- data/lib/abstract_controller/collector.rb +7 -3
- data/lib/abstract_controller/helpers.rb +25 -13
- data/lib/abstract_controller/layouts.rb +74 -74
- data/lib/abstract_controller/logger.rb +1 -2
- data/lib/abstract_controller/rendering.rb +30 -13
- data/lib/abstract_controller/translation.rb +16 -1
- data/lib/abstract_controller/url_for.rb +6 -6
- data/lib/abstract_controller/view_paths.rb +1 -1
- data/lib/abstract_controller.rb +1 -8
- data/lib/action_controller/base.rb +46 -22
- data/lib/action_controller/caching/fragments.rb +23 -53
- data/lib/action_controller/caching.rb +46 -33
- data/lib/action_controller/deprecated/integration_test.rb +3 -0
- data/lib/action_controller/deprecated.rb +5 -1
- data/lib/action_controller/log_subscriber.rb +16 -8
- data/lib/action_controller/metal/conditional_get.rb +76 -32
- data/lib/action_controller/metal/data_streaming.rb +20 -26
- data/lib/action_controller/metal/exceptions.rb +19 -6
- data/lib/action_controller/metal/flash.rb +24 -9
- data/lib/action_controller/metal/force_ssl.rb +70 -12
- data/lib/action_controller/metal/head.rb +25 -4
- data/lib/action_controller/metal/helpers.rb +5 -9
- data/lib/action_controller/metal/hide_actions.rb +0 -1
- data/lib/action_controller/metal/http_authentication.rb +107 -83
- data/lib/action_controller/metal/implicit_render.rb +1 -1
- data/lib/action_controller/metal/instrumentation.rb +2 -1
- data/lib/action_controller/metal/live.rb +175 -0
- data/lib/action_controller/metal/mime_responds.rb +161 -47
- data/lib/action_controller/metal/params_wrapper.rb +112 -74
- data/lib/action_controller/metal/rack_delegation.rb +9 -3
- data/lib/action_controller/metal/redirecting.rb +15 -20
- data/lib/action_controller/metal/renderers.rb +11 -9
- data/lib/action_controller/metal/rendering.rb +9 -1
- data/lib/action_controller/metal/request_forgery_protection.rb +112 -19
- data/lib/action_controller/metal/responder.rb +20 -19
- data/lib/action_controller/metal/streaming.rb +12 -18
- data/lib/action_controller/metal/strong_parameters.rb +520 -0
- data/lib/action_controller/metal/testing.rb +13 -18
- data/lib/action_controller/metal/url_for.rb +28 -25
- data/lib/action_controller/metal.rb +17 -32
- data/lib/action_controller/model_naming.rb +12 -0
- data/lib/action_controller/railtie.rb +33 -17
- data/lib/action_controller/railties/helpers.rb +22 -0
- data/lib/action_controller/record_identifier.rb +18 -72
- data/lib/action_controller/test_case.rb +251 -131
- data/lib/action_controller/vendor/html-scanner.rb +4 -19
- data/lib/action_controller.rb +15 -6
- data/lib/action_dispatch/http/cache.rb +63 -11
- data/lib/action_dispatch/http/filter_parameters.rb +18 -8
- data/lib/action_dispatch/http/filter_redirect.rb +37 -0
- data/lib/action_dispatch/http/headers.rb +49 -17
- data/lib/action_dispatch/http/mime_negotiation.rb +24 -1
- data/lib/action_dispatch/http/mime_type.rb +154 -100
- data/lib/action_dispatch/http/mime_types.rb +1 -1
- data/lib/action_dispatch/http/parameter_filter.rb +44 -46
- data/lib/action_dispatch/http/parameters.rb +28 -28
- data/lib/action_dispatch/http/rack_cache.rb +2 -3
- data/lib/action_dispatch/http/request.rb +64 -18
- data/lib/action_dispatch/http/response.rb +130 -35
- data/lib/action_dispatch/http/upload.rb +63 -20
- data/lib/action_dispatch/http/url.rb +98 -35
- data/lib/action_dispatch/journey/backwards.rb +5 -0
- data/lib/action_dispatch/journey/formatter.rb +146 -0
- data/lib/action_dispatch/journey/gtg/builder.rb +162 -0
- data/lib/action_dispatch/journey/gtg/simulator.rb +44 -0
- data/lib/action_dispatch/journey/gtg/transition_table.rb +156 -0
- data/lib/action_dispatch/journey/nfa/builder.rb +76 -0
- data/lib/action_dispatch/journey/nfa/dot.rb +36 -0
- data/lib/action_dispatch/journey/nfa/simulator.rb +47 -0
- data/lib/action_dispatch/journey/nfa/transition_table.rb +163 -0
- data/lib/action_dispatch/journey/nodes/node.rb +124 -0
- data/lib/action_dispatch/journey/parser.rb +206 -0
- data/lib/action_dispatch/journey/parser.y +47 -0
- data/lib/action_dispatch/journey/parser_extras.rb +23 -0
- data/lib/action_dispatch/journey/path/pattern.rb +196 -0
- data/lib/action_dispatch/journey/route.rb +124 -0
- data/lib/action_dispatch/journey/router/strexp.rb +24 -0
- data/lib/action_dispatch/journey/router/utils.rb +54 -0
- data/lib/action_dispatch/journey/router.rb +166 -0
- data/lib/action_dispatch/journey/routes.rb +75 -0
- data/lib/action_dispatch/journey/scanner.rb +61 -0
- data/lib/action_dispatch/journey/visitors.rb +197 -0
- data/lib/action_dispatch/journey/visualizer/fsm.css +34 -0
- data/lib/action_dispatch/journey/visualizer/fsm.js +134 -0
- data/lib/action_dispatch/journey/visualizer/index.html.erb +52 -0
- data/lib/action_dispatch/journey.rb +5 -0
- data/lib/action_dispatch/middleware/callbacks.rb +9 -4
- data/lib/action_dispatch/middleware/cookies.rb +259 -114
- data/lib/action_dispatch/middleware/debug_exceptions.rb +26 -17
- data/lib/action_dispatch/middleware/exception_wrapper.rb +29 -3
- data/lib/action_dispatch/middleware/flash.rb +58 -58
- data/lib/action_dispatch/middleware/params_parser.rb +14 -29
- data/lib/action_dispatch/middleware/public_exceptions.rb +30 -14
- data/lib/action_dispatch/middleware/reloader.rb +6 -6
- data/lib/action_dispatch/middleware/remote_ip.rb +145 -39
- data/lib/action_dispatch/middleware/request_id.rb +2 -6
- data/lib/action_dispatch/middleware/session/abstract_store.rb +22 -20
- data/lib/action_dispatch/middleware/session/cookie_store.rb +82 -28
- data/lib/action_dispatch/middleware/session/mem_cache_store.rb +8 -3
- data/lib/action_dispatch/middleware/show_exceptions.rb +12 -45
- data/lib/action_dispatch/middleware/ssl.rb +70 -0
- data/lib/action_dispatch/middleware/stack.rb +6 -1
- data/lib/action_dispatch/middleware/static.rb +2 -1
- data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb +14 -11
- data/lib/action_dispatch/middleware/templates/rescues/_source.erb +25 -0
- data/lib/action_dispatch/middleware/templates/rescues/_trace.erb +7 -9
- data/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb +15 -9
- data/lib/action_dispatch/middleware/templates/rescues/layout.erb +127 -5
- data/lib/action_dispatch/middleware/templates/rescues/missing_template.erb +7 -2
- data/lib/action_dispatch/middleware/templates/rescues/routing_error.erb +30 -15
- data/lib/action_dispatch/middleware/templates/rescues/template_error.erb +39 -13
- data/lib/action_dispatch/middleware/templates/rescues/unknown_action.erb +6 -2
- data/lib/action_dispatch/middleware/templates/routes/_route.html.erb +16 -0
- data/lib/action_dispatch/middleware/templates/routes/_table.html.erb +144 -0
- data/lib/action_dispatch/railtie.rb +16 -6
- data/lib/action_dispatch/request/session.rb +181 -0
- data/lib/action_dispatch/routing/inspector.rb +240 -0
- data/lib/action_dispatch/routing/mapper.rb +540 -291
- data/lib/action_dispatch/routing/polymorphic_routes.rb +16 -20
- data/lib/action_dispatch/routing/redirection.rb +46 -29
- data/lib/action_dispatch/routing/route_set.rb +207 -164
- data/lib/action_dispatch/routing/routes_proxy.rb +2 -0
- data/lib/action_dispatch/routing/url_for.rb +48 -33
- data/lib/action_dispatch/routing.rb +48 -83
- data/lib/action_dispatch/testing/assertions/dom.rb +3 -13
- data/lib/action_dispatch/testing/assertions/response.rb +32 -40
- data/lib/action_dispatch/testing/assertions/routing.rb +42 -41
- data/lib/action_dispatch/testing/assertions/selector.rb +17 -22
- data/lib/action_dispatch/testing/assertions/tag.rb +20 -23
- data/lib/action_dispatch/testing/integration.rb +65 -51
- data/lib/action_dispatch/testing/test_process.rb +9 -6
- data/lib/action_dispatch/testing/test_request.rb +7 -3
- data/lib/action_dispatch.rb +21 -15
- data/lib/action_pack/version.rb +7 -6
- data/lib/action_pack.rb +1 -1
- data/lib/action_view/base.rb +15 -34
- data/lib/action_view/buffers.rb +7 -1
- data/lib/action_view/context.rb +4 -4
- data/lib/action_view/dependency_tracker.rb +93 -0
- data/lib/action_view/digestor.rb +85 -0
- data/lib/action_view/flows.rb +1 -4
- data/lib/action_view/helpers/active_model_helper.rb +3 -4
- data/lib/action_view/helpers/asset_tag_helper.rb +215 -352
- data/lib/action_view/helpers/asset_url_helper.rb +355 -0
- data/lib/action_view/helpers/atom_feed_helper.rb +13 -10
- data/lib/action_view/helpers/cache_helper.rb +150 -18
- data/lib/action_view/helpers/capture_helper.rb +44 -31
- data/lib/action_view/helpers/csrf_helper.rb +0 -2
- data/lib/action_view/helpers/date_helper.rb +269 -248
- data/lib/action_view/helpers/debug_helper.rb +10 -11
- data/lib/action_view/helpers/form_helper.rb +931 -537
- data/lib/action_view/helpers/form_options_helper.rb +341 -166
- data/lib/action_view/helpers/form_tag_helper.rb +190 -90
- data/lib/action_view/helpers/javascript_helper.rb +23 -16
- data/lib/action_view/helpers/number_helper.rb +148 -329
- data/lib/action_view/helpers/output_safety_helper.rb +3 -3
- data/lib/action_view/helpers/record_tag_helper.rb +17 -22
- data/lib/action_view/helpers/rendering_helper.rb +2 -2
- data/lib/action_view/helpers/sanitize_helper.rb +3 -6
- data/lib/action_view/helpers/tag_helper.rb +46 -33
- data/lib/action_view/helpers/tags/base.rb +147 -0
- data/lib/action_view/helpers/tags/check_box.rb +64 -0
- data/lib/action_view/helpers/tags/checkable.rb +16 -0
- data/lib/action_view/helpers/tags/collection_check_boxes.rb +43 -0
- data/lib/action_view/helpers/tags/collection_helpers.rb +83 -0
- data/lib/action_view/helpers/tags/collection_radio_buttons.rb +36 -0
- data/lib/action_view/helpers/tags/collection_select.rb +28 -0
- data/lib/action_view/helpers/tags/color_field.rb +25 -0
- data/lib/action_view/helpers/tags/date_field.rb +13 -0
- data/lib/action_view/helpers/tags/date_select.rb +72 -0
- data/lib/action_view/helpers/tags/datetime_field.rb +22 -0
- data/lib/action_view/helpers/tags/datetime_local_field.rb +19 -0
- data/lib/action_view/helpers/tags/datetime_select.rb +8 -0
- data/lib/action_view/helpers/tags/email_field.rb +8 -0
- data/lib/action_view/helpers/tags/file_field.rb +8 -0
- data/lib/action_view/helpers/tags/grouped_collection_select.rb +29 -0
- data/lib/action_view/helpers/tags/hidden_field.rb +8 -0
- data/lib/action_view/helpers/tags/label.rb +65 -0
- data/lib/action_view/helpers/tags/month_field.rb +13 -0
- data/lib/action_view/helpers/tags/number_field.rb +18 -0
- data/lib/action_view/helpers/tags/password_field.rb +12 -0
- data/lib/action_view/helpers/tags/radio_button.rb +31 -0
- data/lib/action_view/helpers/tags/range_field.rb +8 -0
- data/lib/action_view/helpers/tags/search_field.rb +24 -0
- data/lib/action_view/helpers/tags/select.rb +40 -0
- data/lib/action_view/helpers/tags/tel_field.rb +8 -0
- data/lib/action_view/helpers/tags/text_area.rb +18 -0
- data/lib/action_view/helpers/tags/text_field.rb +29 -0
- data/lib/action_view/helpers/tags/time_field.rb +13 -0
- data/lib/action_view/helpers/tags/time_select.rb +8 -0
- data/lib/action_view/helpers/tags/time_zone_select.rb +20 -0
- data/lib/action_view/helpers/tags/url_field.rb +8 -0
- data/lib/action_view/helpers/tags/week_field.rb +13 -0
- data/lib/action_view/helpers/tags.rb +39 -0
- data/lib/action_view/helpers/text_helper.rb +130 -114
- data/lib/action_view/helpers/translation_helper.rb +32 -16
- data/lib/action_view/helpers/url_helper.rb +211 -270
- data/lib/action_view/helpers.rb +2 -4
- data/lib/action_view/locale/en.yml +1 -105
- data/lib/action_view/log_subscriber.rb +6 -4
- data/lib/action_view/lookup_context.rb +15 -28
- data/lib/action_view/model_naming.rb +12 -0
- data/lib/action_view/path_set.rb +8 -20
- data/lib/action_view/railtie.rb +6 -22
- data/lib/action_view/record_identifier.rb +84 -0
- data/lib/action_view/renderer/abstract_renderer.rb +25 -19
- data/lib/action_view/renderer/partial_renderer.rb +158 -81
- data/lib/action_view/renderer/renderer.rb +8 -12
- data/lib/action_view/renderer/streaming_template_renderer.rb +2 -5
- data/lib/action_view/renderer/template_renderer.rb +12 -10
- data/lib/action_view/routing_url_for.rb +107 -0
- data/lib/action_view/template/error.rb +22 -12
- data/lib/action_view/template/handlers/builder.rb +1 -1
- data/lib/action_view/template/handlers/erb.rb +40 -19
- data/lib/action_view/template/handlers/raw.rb +11 -0
- data/lib/action_view/template/handlers.rb +12 -9
- data/lib/action_view/template/resolver.rb +107 -53
- data/lib/action_view/template/text.rb +12 -8
- data/lib/action_view/template/types.rb +57 -0
- data/lib/action_view/template.rb +25 -23
- data/lib/action_view/test_case.rb +67 -42
- data/lib/{action_controller → action_view}/vendor/html-scanner/html/document.rb +0 -0
- data/lib/{action_controller → action_view}/vendor/html-scanner/html/node.rb +12 -12
- data/lib/{action_controller → action_view}/vendor/html-scanner/html/sanitizer.rb +13 -2
- data/lib/{action_controller → action_view}/vendor/html-scanner/html/selector.rb +9 -9
- data/lib/{action_controller → action_view}/vendor/html-scanner/html/tokenizer.rb +1 -1
- data/lib/{action_controller → action_view}/vendor/html-scanner/html/version.rb +0 -0
- data/lib/action_view/vendor/html-scanner.rb +20 -0
- data/lib/action_view.rb +17 -8
- metadata +184 -214
- data/lib/action_controller/caching/actions.rb +0 -185
- data/lib/action_controller/caching/pages.rb +0 -187
- data/lib/action_controller/caching/sweeping.rb +0 -97
- data/lib/action_controller/deprecated/performance_test.rb +0 -1
- data/lib/action_controller/metal/compatibility.rb +0 -65
- data/lib/action_controller/metal/session_management.rb +0 -14
- data/lib/action_controller/railties/paths.rb +0 -25
- data/lib/action_dispatch/middleware/best_standards_support.rb +0 -30
- data/lib/action_dispatch/middleware/body_proxy.rb +0 -30
- data/lib/action_dispatch/middleware/head.rb +0 -18
- data/lib/action_dispatch/middleware/rescue.rb +0 -26
- data/lib/action_dispatch/testing/performance_test.rb +0 -10
- data/lib/action_view/asset_paths.rb +0 -142
- data/lib/action_view/helpers/asset_paths.rb +0 -7
- data/lib/action_view/helpers/asset_tag_helpers/asset_include_tag.rb +0 -146
- data/lib/action_view/helpers/asset_tag_helpers/asset_paths.rb +0 -93
- data/lib/action_view/helpers/asset_tag_helpers/javascript_tag_helpers.rb +0 -193
- data/lib/action_view/helpers/asset_tag_helpers/stylesheet_tag_helpers.rb +0 -148
- data/lib/sprockets/assets.rake +0 -99
- data/lib/sprockets/bootstrap.rb +0 -37
- data/lib/sprockets/compressors.rb +0 -83
- data/lib/sprockets/helpers/isolated_helper.rb +0 -13
- data/lib/sprockets/helpers/rails_helper.rb +0 -182
- data/lib/sprockets/helpers.rb +0 -6
- data/lib/sprockets/railtie.rb +0 -62
- data/lib/sprockets/static_compiler.rb +0 -56
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
require 'active_support/concern'
|
|
2
|
-
require 'active_support/core_ext/file'
|
|
3
|
-
require 'action_view/helpers/asset_tag_helpers/asset_include_tag'
|
|
4
|
-
|
|
5
|
-
module ActionView
|
|
6
|
-
module Helpers
|
|
7
|
-
module AssetTagHelper
|
|
8
|
-
|
|
9
|
-
class StylesheetIncludeTag < AssetIncludeTag
|
|
10
|
-
def asset_name
|
|
11
|
-
'stylesheet'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def extension
|
|
15
|
-
'css'
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def asset_tag(source, options)
|
|
19
|
-
# We force the :request protocol here to avoid a double-download bug in IE7 and IE8
|
|
20
|
-
tag("link", { "rel" => "stylesheet", "type" => Mime::CSS, "media" => "screen", "href" => path_to_asset(source, :protocol => :request) }.merge(options))
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def custom_dir
|
|
24
|
-
config.stylesheets_dir
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
module StylesheetTagHelpers
|
|
30
|
-
extend ActiveSupport::Concern
|
|
31
|
-
|
|
32
|
-
module ClassMethods
|
|
33
|
-
# Register one or more stylesheet files to be included when <tt>symbol</tt>
|
|
34
|
-
# is passed to <tt>stylesheet_link_tag</tt>. This method is typically intended
|
|
35
|
-
# to be called from plugin initialization to register stylesheet files
|
|
36
|
-
# that the plugin installed in <tt>public/stylesheets</tt>.
|
|
37
|
-
#
|
|
38
|
-
# ActionView::Helpers::AssetTagHelper.register_stylesheet_expansion :monkey => ["head", "body", "tail"]
|
|
39
|
-
#
|
|
40
|
-
# stylesheet_link_tag :monkey # =>
|
|
41
|
-
# <link href="/stylesheets/head.css" media="screen" rel="stylesheet" type="text/css" />
|
|
42
|
-
# <link href="/stylesheets/body.css" media="screen" rel="stylesheet" type="text/css" />
|
|
43
|
-
# <link href="/stylesheets/tail.css" media="screen" rel="stylesheet" type="text/css" />
|
|
44
|
-
def register_stylesheet_expansion(expansions)
|
|
45
|
-
style_expansions = StylesheetIncludeTag.expansions
|
|
46
|
-
expansions.each do |key, values|
|
|
47
|
-
style_expansions[key] = (style_expansions[key] || []) | Array(values)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# Computes the path to a stylesheet asset in the public stylesheets directory.
|
|
53
|
-
# If the +source+ filename has no extension, <tt>.css</tt> will be appended (except for explicit URIs).
|
|
54
|
-
# Full paths from the document root will be passed through.
|
|
55
|
-
# Used internally by +stylesheet_link_tag+ to build the stylesheet path.
|
|
56
|
-
#
|
|
57
|
-
# ==== Examples
|
|
58
|
-
# stylesheet_path "style" # => /stylesheets/style.css
|
|
59
|
-
# stylesheet_path "dir/style.css" # => /stylesheets/dir/style.css
|
|
60
|
-
# stylesheet_path "/dir/style.css" # => /dir/style.css
|
|
61
|
-
# stylesheet_path "http://www.example.com/css/style" # => http://www.example.com/css/style
|
|
62
|
-
# stylesheet_path "http://www.example.com/css/style.css" # => http://www.example.com/css/style.css
|
|
63
|
-
def stylesheet_path(source)
|
|
64
|
-
asset_paths.compute_public_path(source, 'stylesheets', :ext => 'css', :protocol => :request)
|
|
65
|
-
end
|
|
66
|
-
alias_method :path_to_stylesheet, :stylesheet_path # aliased to avoid conflicts with a stylesheet_path named route
|
|
67
|
-
|
|
68
|
-
# Returns a stylesheet link tag for the sources specified as arguments. If
|
|
69
|
-
# you don't specify an extension, <tt>.css</tt> will be appended automatically.
|
|
70
|
-
# You can modify the link attributes by passing a hash as the last argument.
|
|
71
|
-
# For historical reasons, the 'media' attribute will always be present and defaults
|
|
72
|
-
# to "screen", so you must explicitely set it to "all" for the stylesheet(s) to
|
|
73
|
-
# apply to all media types.
|
|
74
|
-
#
|
|
75
|
-
# ==== Examples
|
|
76
|
-
# stylesheet_link_tag "style" # =>
|
|
77
|
-
# <link href="/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />
|
|
78
|
-
#
|
|
79
|
-
# stylesheet_link_tag "style.css" # =>
|
|
80
|
-
# <link href="/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />
|
|
81
|
-
#
|
|
82
|
-
# stylesheet_link_tag "http://www.example.com/style.css" # =>
|
|
83
|
-
# <link href="http://www.example.com/style.css" media="screen" rel="stylesheet" type="text/css" />
|
|
84
|
-
#
|
|
85
|
-
# stylesheet_link_tag "style", :media => "all" # =>
|
|
86
|
-
# <link href="/stylesheets/style.css" media="all" rel="stylesheet" type="text/css" />
|
|
87
|
-
#
|
|
88
|
-
# stylesheet_link_tag "style", :media => "print" # =>
|
|
89
|
-
# <link href="/stylesheets/style.css" media="print" rel="stylesheet" type="text/css" />
|
|
90
|
-
#
|
|
91
|
-
# stylesheet_link_tag "random.styles", "/css/stylish" # =>
|
|
92
|
-
# <link href="/stylesheets/random.styles" media="screen" rel="stylesheet" type="text/css" />
|
|
93
|
-
# <link href="/css/stylish.css" media="screen" rel="stylesheet" type="text/css" />
|
|
94
|
-
#
|
|
95
|
-
# You can also include all styles in the stylesheets directory using <tt>:all</tt> as the source:
|
|
96
|
-
#
|
|
97
|
-
# stylesheet_link_tag :all # =>
|
|
98
|
-
# <link href="/stylesheets/style1.css" media="screen" rel="stylesheet" type="text/css" />
|
|
99
|
-
# <link href="/stylesheets/styleB.css" media="screen" rel="stylesheet" type="text/css" />
|
|
100
|
-
# <link href="/stylesheets/styleX2.css" media="screen" rel="stylesheet" type="text/css" />
|
|
101
|
-
#
|
|
102
|
-
# If you want Rails to search in all the subdirectories under stylesheets, you should explicitly set <tt>:recursive</tt>:
|
|
103
|
-
#
|
|
104
|
-
# stylesheet_link_tag :all, :recursive => true
|
|
105
|
-
#
|
|
106
|
-
# == Caching multiple stylesheets into one
|
|
107
|
-
#
|
|
108
|
-
# You can also cache multiple stylesheets into one file, which requires less HTTP connections and can better be
|
|
109
|
-
# compressed by gzip (leading to faster transfers). Caching will only happen if config.perform_caching
|
|
110
|
-
# is set to true (which is the case by default for the Rails production environment, but not for the development
|
|
111
|
-
# environment). Examples:
|
|
112
|
-
#
|
|
113
|
-
# ==== Examples
|
|
114
|
-
# stylesheet_link_tag :all, :cache => true # when config.perform_caching is false =>
|
|
115
|
-
# <link href="/stylesheets/style1.css" media="screen" rel="stylesheet" type="text/css" />
|
|
116
|
-
# <link href="/stylesheets/styleB.css" media="screen" rel="stylesheet" type="text/css" />
|
|
117
|
-
# <link href="/stylesheets/styleX2.css" media="screen" rel="stylesheet" type="text/css" />
|
|
118
|
-
#
|
|
119
|
-
# stylesheet_link_tag :all, :cache => true # when config.perform_caching is true =>
|
|
120
|
-
# <link href="/stylesheets/all.css" media="screen" rel="stylesheet" type="text/css" />
|
|
121
|
-
#
|
|
122
|
-
# stylesheet_link_tag "shop", "cart", "checkout", :cache => "payment" # when config.perform_caching is false =>
|
|
123
|
-
# <link href="/stylesheets/shop.css" media="screen" rel="stylesheet" type="text/css" />
|
|
124
|
-
# <link href="/stylesheets/cart.css" media="screen" rel="stylesheet" type="text/css" />
|
|
125
|
-
# <link href="/stylesheets/checkout.css" media="screen" rel="stylesheet" type="text/css" />
|
|
126
|
-
#
|
|
127
|
-
# stylesheet_link_tag "shop", "cart", "checkout", :cache => "payment" # when config.perform_caching is true =>
|
|
128
|
-
# <link href="/stylesheets/payment.css" media="screen" rel="stylesheet" type="text/css" />
|
|
129
|
-
#
|
|
130
|
-
# The <tt>:recursive</tt> option is also available for caching:
|
|
131
|
-
#
|
|
132
|
-
# stylesheet_link_tag :all, :cache => true, :recursive => true
|
|
133
|
-
#
|
|
134
|
-
# To force concatenation (even in development mode) set <tt>:concat</tt> to true. This is useful if
|
|
135
|
-
# you have too many stylesheets for IE to load.
|
|
136
|
-
#
|
|
137
|
-
# stylesheet_link_tag :all, :concat => true
|
|
138
|
-
#
|
|
139
|
-
def stylesheet_link_tag(*sources)
|
|
140
|
-
@stylesheet_include ||= StylesheetIncludeTag.new(config, asset_paths)
|
|
141
|
-
@stylesheet_include.include_tag(*sources)
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
end
|
data/lib/sprockets/assets.rake
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
require "fileutils"
|
|
2
|
-
|
|
3
|
-
namespace :assets do
|
|
4
|
-
def ruby_rake_task(task, fork = true)
|
|
5
|
-
env = ENV['RAILS_ENV'] || 'production'
|
|
6
|
-
groups = ENV['RAILS_GROUPS'] || 'assets'
|
|
7
|
-
args = [$0, task,"RAILS_ENV=#{env}","RAILS_GROUPS=#{groups}"]
|
|
8
|
-
args << "--trace" if Rake.application.options.trace
|
|
9
|
-
if $0 =~ /rake\.bat\Z/i
|
|
10
|
-
Kernel.exec $0, *args
|
|
11
|
-
else
|
|
12
|
-
fork ? ruby(*args) : Kernel.exec(FileUtils::RUBY, *args)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# We are currently running with no explicit bundler group
|
|
17
|
-
# and/or no explicit environment - we have to reinvoke rake to
|
|
18
|
-
# execute this task.
|
|
19
|
-
def invoke_or_reboot_rake_task(task)
|
|
20
|
-
if ENV['RAILS_GROUPS'].to_s.empty? || ENV['RAILS_ENV'].to_s.empty?
|
|
21
|
-
ruby_rake_task task
|
|
22
|
-
else
|
|
23
|
-
Rake::Task[task].invoke
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
desc "Compile all the assets named in config.assets.precompile"
|
|
28
|
-
task :precompile do
|
|
29
|
-
invoke_or_reboot_rake_task "assets:precompile:all"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
namespace :precompile do
|
|
33
|
-
def internal_precompile(digest=nil)
|
|
34
|
-
unless Rails.application.config.assets.enabled
|
|
35
|
-
warn "Cannot precompile assets if sprockets is disabled. Please set config.assets.enabled to true"
|
|
36
|
-
exit
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# Ensure that action view is loaded and the appropriate
|
|
40
|
-
# sprockets hooks get executed
|
|
41
|
-
_ = ActionView::Base
|
|
42
|
-
|
|
43
|
-
config = Rails.application.config
|
|
44
|
-
config.assets.compile = true
|
|
45
|
-
config.assets.digest = digest unless digest.nil?
|
|
46
|
-
config.assets.digests = {}
|
|
47
|
-
|
|
48
|
-
env = Rails.application.assets
|
|
49
|
-
target = File.join(Rails.public_path, config.assets.prefix)
|
|
50
|
-
compiler = Sprockets::StaticCompiler.new(env,
|
|
51
|
-
target,
|
|
52
|
-
config.assets.precompile,
|
|
53
|
-
:manifest_path => config.assets.manifest,
|
|
54
|
-
:digest => config.assets.digest,
|
|
55
|
-
:manifest => digest.nil?)
|
|
56
|
-
compiler.compile
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
task :all do
|
|
60
|
-
Rake::Task["assets:precompile:primary"].invoke
|
|
61
|
-
# We need to reinvoke in order to run the secondary digestless
|
|
62
|
-
# asset compilation run - a fresh Sprockets environment is
|
|
63
|
-
# required in order to compile digestless assets as the
|
|
64
|
-
# environment has already cached the assets on the primary
|
|
65
|
-
# run.
|
|
66
|
-
ruby_rake_task("assets:precompile:nondigest", false) if Rails.application.config.assets.digest
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
task :primary => ["assets:environment", "tmp:cache:clear"] do
|
|
70
|
-
internal_precompile
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
task :nondigest => ["assets:environment", "tmp:cache:clear"] do
|
|
74
|
-
internal_precompile(false)
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
desc "Remove compiled assets"
|
|
79
|
-
task :clean do
|
|
80
|
-
invoke_or_reboot_rake_task "assets:clean:all"
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
namespace :clean do
|
|
84
|
-
task :all => ["assets:environment", "tmp:cache:clear"] do
|
|
85
|
-
config = Rails.application.config
|
|
86
|
-
public_asset_path = File.join(Rails.public_path, config.assets.prefix)
|
|
87
|
-
rm_rf public_asset_path, :secure => true
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
task :environment do
|
|
92
|
-
if Rails.application.config.assets.initialize_on_precompile
|
|
93
|
-
Rake::Task["environment"].invoke
|
|
94
|
-
else
|
|
95
|
-
Rails.application.initialize!(:assets)
|
|
96
|
-
Sprockets::Bootstrap.new(Rails.application).run
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
data/lib/sprockets/bootstrap.rb
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
module Sprockets
|
|
2
|
-
class Bootstrap
|
|
3
|
-
def initialize(app)
|
|
4
|
-
@app = app
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
# TODO: Get rid of config.assets.enabled
|
|
8
|
-
def run
|
|
9
|
-
app, config = @app, @app.config
|
|
10
|
-
return unless app.assets
|
|
11
|
-
|
|
12
|
-
config.assets.paths.each { |path| app.assets.append_path(path) }
|
|
13
|
-
|
|
14
|
-
if config.assets.compress
|
|
15
|
-
# temporarily hardcode default JS compressor to uglify. Soon, it will work
|
|
16
|
-
# the same as SCSS, where a default plugin sets the default.
|
|
17
|
-
unless config.assets.js_compressor == false
|
|
18
|
-
app.assets.js_compressor = LazyCompressor.new { Sprockets::Compressors.registered_js_compressor(config.assets.js_compressor || :uglifier) }
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
unless config.assets.css_compressor == false
|
|
22
|
-
app.assets.css_compressor = LazyCompressor.new { Sprockets::Compressors.registered_css_compressor(config.assets.css_compressor) }
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
if config.assets.compile
|
|
27
|
-
app.routes.prepend do
|
|
28
|
-
mount app.assets => config.assets.prefix
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
if config.assets.digest
|
|
33
|
-
app.assets = app.assets.index
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
module Sprockets
|
|
2
|
-
module Compressors
|
|
3
|
-
@@css_compressors = {}
|
|
4
|
-
@@js_compressors = {}
|
|
5
|
-
@@default_css_compressor = nil
|
|
6
|
-
@@default_js_compressor = nil
|
|
7
|
-
|
|
8
|
-
def self.register_css_compressor(name, klass, options = {})
|
|
9
|
-
@@default_css_compressor = name.to_sym if options[:default] || @@default_css_compressor.nil?
|
|
10
|
-
@@css_compressors[name.to_sym] = {:klass => klass.to_s, :require => options[:require]}
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def self.register_js_compressor(name, klass, options = {})
|
|
14
|
-
@@default_js_compressor = name.to_sym if options[:default] || @@default_js_compressor.nil?
|
|
15
|
-
@@js_compressors[name.to_sym] = {:klass => klass.to_s, :require => options[:require]}
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def self.registered_css_compressor(name)
|
|
19
|
-
if name.respond_to?(:to_sym)
|
|
20
|
-
compressor = @@css_compressors[name.to_sym] || @@css_compressors[@@default_css_compressor]
|
|
21
|
-
require compressor[:require] if compressor[:require]
|
|
22
|
-
compressor[:klass].constantize.new
|
|
23
|
-
else
|
|
24
|
-
name
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def self.registered_js_compressor(name)
|
|
29
|
-
if name.respond_to?(:to_sym)
|
|
30
|
-
compressor = @@js_compressors[name.to_sym] || @@js_compressors[@@default_js_compressor]
|
|
31
|
-
require compressor[:require] if compressor[:require]
|
|
32
|
-
compressor[:klass].constantize.new
|
|
33
|
-
else
|
|
34
|
-
name
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# The default compressors must be registered in default plugins (ex. Sass-Rails)
|
|
39
|
-
register_css_compressor(:scss, 'Sass::Rails::Compressor', :require => 'sass/rails/compressor', :default => true)
|
|
40
|
-
register_js_compressor(:uglifier, 'Uglifier', :require => 'uglifier', :default => true)
|
|
41
|
-
|
|
42
|
-
# Automaticaly register some compressors
|
|
43
|
-
register_css_compressor(:yui, 'YUI::CssCompressor', :require => 'yui/compressor')
|
|
44
|
-
register_js_compressor(:closure, 'Closure::Compiler', :require => 'closure-compiler')
|
|
45
|
-
register_js_compressor(:yui, 'YUI::JavaScriptCompressor', :require => 'yui/compressor')
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# An asset compressor which does nothing.
|
|
49
|
-
#
|
|
50
|
-
# This compressor simply returns the asset as-is, without any compression
|
|
51
|
-
# whatsoever. It is useful in development mode, when compression isn't
|
|
52
|
-
# needed but using the same asset pipeline as production is desired.
|
|
53
|
-
class NullCompressor #:nodoc:
|
|
54
|
-
def compress(content)
|
|
55
|
-
content
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# An asset compressor which only initializes the underlying compression
|
|
60
|
-
# engine when needed.
|
|
61
|
-
#
|
|
62
|
-
# This postpones the initialization of the compressor until
|
|
63
|
-
# <code>#compress</code> is called the first time.
|
|
64
|
-
class LazyCompressor #:nodoc:
|
|
65
|
-
# Initializes a new LazyCompressor.
|
|
66
|
-
#
|
|
67
|
-
# The block should return a compressor when called, i.e. an object
|
|
68
|
-
# which responds to <code>#compress</code>.
|
|
69
|
-
def initialize(&block)
|
|
70
|
-
@block = block
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def compress(content)
|
|
74
|
-
compressor.compress(content)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
private
|
|
78
|
-
|
|
79
|
-
def compressor
|
|
80
|
-
@compressor ||= (@block.call || NullCompressor.new)
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
require "action_view"
|
|
2
|
-
|
|
3
|
-
module Sprockets
|
|
4
|
-
module Helpers
|
|
5
|
-
module RailsHelper
|
|
6
|
-
extend ActiveSupport::Concern
|
|
7
|
-
include ActionView::Helpers::AssetTagHelper
|
|
8
|
-
|
|
9
|
-
def asset_paths
|
|
10
|
-
@asset_paths ||= begin
|
|
11
|
-
paths = RailsHelper::AssetPaths.new(config, controller)
|
|
12
|
-
paths.asset_environment = asset_environment
|
|
13
|
-
paths.asset_digests = asset_digests
|
|
14
|
-
paths.compile_assets = compile_assets?
|
|
15
|
-
paths.digest_assets = digest_assets?
|
|
16
|
-
paths
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def javascript_include_tag(*sources)
|
|
21
|
-
options = sources.extract_options!
|
|
22
|
-
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
|
|
23
|
-
body = options.key?(:body) ? options.delete(:body) : false
|
|
24
|
-
digest = options.key?(:digest) ? options.delete(:digest) : digest_assets?
|
|
25
|
-
|
|
26
|
-
sources.collect do |source|
|
|
27
|
-
if debug && asset = asset_paths.asset_for(source, 'js')
|
|
28
|
-
asset.to_a.map { |dep|
|
|
29
|
-
super(dep.pathname.to_s, { :src => path_to_asset(dep, :ext => 'js', :body => true, :digest => digest) }.merge!(options))
|
|
30
|
-
}
|
|
31
|
-
else
|
|
32
|
-
super(source.to_s, { :src => path_to_asset(source, :ext => 'js', :body => body, :digest => digest) }.merge!(options))
|
|
33
|
-
end
|
|
34
|
-
end.flatten.uniq.join("\n").html_safe
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def stylesheet_link_tag(*sources)
|
|
38
|
-
options = sources.extract_options!
|
|
39
|
-
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
|
|
40
|
-
body = options.key?(:body) ? options.delete(:body) : false
|
|
41
|
-
digest = options.key?(:digest) ? options.delete(:digest) : digest_assets?
|
|
42
|
-
|
|
43
|
-
sources.collect do |source|
|
|
44
|
-
if debug && asset = asset_paths.asset_for(source, 'css')
|
|
45
|
-
asset.to_a.map { |dep|
|
|
46
|
-
super(dep.pathname.to_s, { :href => path_to_asset(dep, :ext => 'css', :body => true, :protocol => :request, :digest => digest) }.merge!(options))
|
|
47
|
-
}
|
|
48
|
-
else
|
|
49
|
-
super(source.to_s, { :href => path_to_asset(source, :ext => 'css', :body => body, :protocol => :request, :digest => digest) }.merge!(options))
|
|
50
|
-
end
|
|
51
|
-
end.flatten.uniq.join("\n").html_safe
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def asset_path(source, options = {})
|
|
55
|
-
source = source.logical_path if source.respond_to?(:logical_path)
|
|
56
|
-
path = asset_paths.compute_public_path(source, asset_prefix, options.merge(:body => true))
|
|
57
|
-
options[:body] ? "#{path}?body=1" : path
|
|
58
|
-
end
|
|
59
|
-
alias_method :path_to_asset, :asset_path # aliased to avoid conflicts with an asset_path named route
|
|
60
|
-
|
|
61
|
-
def image_path(source)
|
|
62
|
-
path_to_asset(source)
|
|
63
|
-
end
|
|
64
|
-
alias_method :path_to_image, :image_path # aliased to avoid conflicts with an image_path named route
|
|
65
|
-
|
|
66
|
-
def font_path(source)
|
|
67
|
-
path_to_asset(source)
|
|
68
|
-
end
|
|
69
|
-
alias_method :path_to_font, :font_path # aliased to avoid conflicts with an font_path named route
|
|
70
|
-
|
|
71
|
-
def javascript_path(source)
|
|
72
|
-
path_to_asset(source, :ext => 'js')
|
|
73
|
-
end
|
|
74
|
-
alias_method :path_to_javascript, :javascript_path # aliased to avoid conflicts with an javascript_path named route
|
|
75
|
-
|
|
76
|
-
def stylesheet_path(source)
|
|
77
|
-
path_to_asset(source, :ext => 'css')
|
|
78
|
-
end
|
|
79
|
-
alias_method :path_to_stylesheet, :stylesheet_path # aliased to avoid conflicts with an stylesheet_path named route
|
|
80
|
-
|
|
81
|
-
private
|
|
82
|
-
def debug_assets?
|
|
83
|
-
compile_assets? && (Rails.application.config.assets.debug || params[:debug_assets])
|
|
84
|
-
rescue NameError
|
|
85
|
-
false
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
# Override to specify an alternative prefix for asset path generation.
|
|
89
|
-
# When combined with a custom +asset_environment+, this can be used to
|
|
90
|
-
# implement themes that can take advantage of the asset pipeline.
|
|
91
|
-
#
|
|
92
|
-
# If you only want to change where the assets are mounted, refer to
|
|
93
|
-
# +config.assets.prefix+ instead.
|
|
94
|
-
def asset_prefix
|
|
95
|
-
Rails.application.config.assets.prefix
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def asset_digests
|
|
99
|
-
Rails.application.config.assets.digests
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def compile_assets?
|
|
103
|
-
Rails.application.config.assets.compile
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def digest_assets?
|
|
107
|
-
Rails.application.config.assets.digest
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Override to specify an alternative asset environment for asset
|
|
111
|
-
# path generation. The environment should already have been mounted
|
|
112
|
-
# at the prefix returned by +asset_prefix+.
|
|
113
|
-
def asset_environment
|
|
114
|
-
Rails.application.assets
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
class AssetPaths < ::ActionView::AssetPaths #:nodoc:
|
|
118
|
-
attr_accessor :asset_environment, :asset_prefix, :asset_digests, :compile_assets, :digest_assets
|
|
119
|
-
|
|
120
|
-
class AssetNotPrecompiledError < StandardError; end
|
|
121
|
-
|
|
122
|
-
def asset_for(source, ext)
|
|
123
|
-
source = source.to_s
|
|
124
|
-
return nil if is_uri?(source)
|
|
125
|
-
source = rewrite_extension(source, nil, ext)
|
|
126
|
-
asset_environment[source]
|
|
127
|
-
rescue Sprockets::FileOutsidePaths
|
|
128
|
-
nil
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def digest_for(logical_path)
|
|
132
|
-
if digest_assets && asset_digests && (digest = asset_digests[logical_path])
|
|
133
|
-
return digest
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
if compile_assets
|
|
137
|
-
if digest_assets && asset = asset_environment[logical_path]
|
|
138
|
-
return asset.digest_path
|
|
139
|
-
end
|
|
140
|
-
return logical_path
|
|
141
|
-
else
|
|
142
|
-
raise AssetNotPrecompiledError.new("#{logical_path} isn't precompiled")
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def rewrite_asset_path(source, dir, options = {})
|
|
147
|
-
if source[0] == ?/
|
|
148
|
-
source
|
|
149
|
-
else
|
|
150
|
-
if digest_assets && options[:digest] != false
|
|
151
|
-
source = digest_for(source)
|
|
152
|
-
end
|
|
153
|
-
source = File.join(dir, source)
|
|
154
|
-
source = "/#{source}" unless source =~ /^\//
|
|
155
|
-
source
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
def rewrite_extension(source, dir, ext)
|
|
160
|
-
source_ext = File.extname(source)[1..-1]
|
|
161
|
-
|
|
162
|
-
if !ext || ext == source_ext
|
|
163
|
-
source
|
|
164
|
-
elsif source_ext.blank?
|
|
165
|
-
"#{source}.#{ext}"
|
|
166
|
-
elsif File.exists?(source) || exact_match_present?(source)
|
|
167
|
-
source
|
|
168
|
-
else
|
|
169
|
-
"#{source}.#{ext}"
|
|
170
|
-
end
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
def exact_match_present?(source)
|
|
174
|
-
pathname = asset_environment.resolve(source)
|
|
175
|
-
pathname.to_s =~ /#{Regexp.escape(source)}\Z/
|
|
176
|
-
rescue Sprockets::FileNotFound
|
|
177
|
-
false
|
|
178
|
-
end
|
|
179
|
-
end
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
end
|
data/lib/sprockets/helpers.rb
DELETED
data/lib/sprockets/railtie.rb
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
require "action_controller/railtie"
|
|
2
|
-
|
|
3
|
-
module Sprockets
|
|
4
|
-
autoload :Bootstrap, "sprockets/bootstrap"
|
|
5
|
-
autoload :Helpers, "sprockets/helpers"
|
|
6
|
-
autoload :Compressors, "sprockets/compressors"
|
|
7
|
-
autoload :LazyCompressor, "sprockets/compressors"
|
|
8
|
-
autoload :NullCompressor, "sprockets/compressors"
|
|
9
|
-
autoload :StaticCompiler, "sprockets/static_compiler"
|
|
10
|
-
|
|
11
|
-
# TODO: Get rid of config.assets.enabled
|
|
12
|
-
class Railtie < ::Rails::Railtie
|
|
13
|
-
rake_tasks do
|
|
14
|
-
load "sprockets/assets.rake"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
initializer "sprockets.environment", :group => :all do |app|
|
|
18
|
-
config = app.config
|
|
19
|
-
next unless config.assets.enabled
|
|
20
|
-
|
|
21
|
-
require 'sprockets'
|
|
22
|
-
|
|
23
|
-
app.assets = Sprockets::Environment.new(app.root.to_s) do |env|
|
|
24
|
-
env.version = ::Rails.env + "-#{config.assets.version}"
|
|
25
|
-
|
|
26
|
-
if config.assets.logger != false
|
|
27
|
-
env.logger = config.assets.logger || ::Rails.logger
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
if config.assets.cache_store != false
|
|
31
|
-
env.cache = ActiveSupport::Cache.lookup_store(config.assets.cache_store) || ::Rails.cache
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
if config.assets.manifest
|
|
36
|
-
path = File.join(config.assets.manifest, "manifest.yml")
|
|
37
|
-
else
|
|
38
|
-
path = File.join(Rails.public_path, config.assets.prefix, "manifest.yml")
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
if File.exist?(path)
|
|
42
|
-
config.assets.digests = YAML.load_file(path)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
ActiveSupport.on_load(:action_view) do
|
|
46
|
-
include ::Sprockets::Helpers::RailsHelper
|
|
47
|
-
app.assets.context_class.instance_eval do
|
|
48
|
-
include ::Sprockets::Helpers::IsolatedHelper
|
|
49
|
-
include ::Sprockets::Helpers::RailsHelper
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
# We need to configure this after initialization to ensure we collect
|
|
55
|
-
# paths from all engines. This hook is invoked exactly before routes
|
|
56
|
-
# are compiled, and so that other Railties have an opportunity to
|
|
57
|
-
# register compressors.
|
|
58
|
-
config.after_initialize do |app|
|
|
59
|
-
Sprockets::Bootstrap.new(app).run
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|