tension 0.9.15 → 0.9.16.pre
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 +4 -4
- data/lib/tension/context.rb +11 -3
- data/lib/tension/controller.rb +17 -4
- data/lib/tension/helper.rb +34 -12
- data/lib/tension/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24de161fcb938eff0187dbd00f57303069e91f30
|
4
|
+
data.tar.gz: 3c80a48d9e2a993b674a8a013a683844c5c8d8e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7ca25fdaec1bfb1662ae15cf76695db9941ab8a3ff34dced421abfd1d4f8b67bc7179385cc121030ad6f113bacbab274575a5b236c02ffe98e311a220267488
|
7
|
+
data.tar.gz: 7987f999f4ca991e21692d3c27a06578a24b16fd6e8a6ecc7d32bdcf3ec841458859dee13a72243f9c9c464e5346cdf531e4dd9da9415497d99abc8beecf7b79
|
data/lib/tension/context.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
module Tension
|
2
2
|
class Context
|
3
|
-
attr_reader :
|
3
|
+
attr_reader :controller_name, :action
|
4
4
|
|
5
5
|
def initialize(controller_path)
|
6
|
-
@
|
6
|
+
@controller_name = "#{ controller_path }_controller".classify
|
7
|
+
end
|
8
|
+
|
9
|
+
def controller
|
10
|
+
controller_name.constantize
|
7
11
|
end
|
8
12
|
|
9
13
|
# Locates the best stylesheet for the given action name. Aliased as,
|
@@ -43,13 +47,17 @@ module Tension
|
|
43
47
|
controller.action_methods.include?(action_name)
|
44
48
|
end
|
45
49
|
|
50
|
+
def shared_assets
|
51
|
+
controller._tension_assets
|
52
|
+
end
|
53
|
+
|
46
54
|
|
47
55
|
private
|
48
56
|
|
49
57
|
# Locates the best asset for the given action name and type.
|
50
58
|
#
|
51
59
|
def best_asset(action, type)
|
52
|
-
action_asset(action, type) || controller_asset(type)
|
60
|
+
action_asset(action, type) || controller_asset(type)
|
53
61
|
end
|
54
62
|
|
55
63
|
def method_missing(method_sym, *args)
|
data/lib/tension/controller.rb
CHANGED
@@ -7,14 +7,20 @@ module Tension
|
|
7
7
|
included do
|
8
8
|
# Make these methods available in helpers too.
|
9
9
|
helper_method :asset_context, :action_javascript, :action_stylesheet
|
10
|
+
|
11
|
+
class_attribute :_tension_assets, instance_accessor: false
|
12
|
+
self._tension_assets = {}
|
10
13
|
end
|
11
14
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
|
16
|
+
module ClassMethods
|
17
|
+
def include_assets(options)
|
18
|
+
self._tension_assets[ Tension::CSS ] = options[:css]
|
19
|
+
self._tension_assets[ Tension::JS ] = options[:js]
|
20
|
+
end
|
16
21
|
end
|
17
22
|
|
23
|
+
|
18
24
|
# Returns the Sprockets Asset for the current action's JavaScript
|
19
25
|
# to be written into the template.
|
20
26
|
#
|
@@ -29,6 +35,13 @@ module Tension
|
|
29
35
|
asset_context.css( request.symbolized_path_parameters[:action] )
|
30
36
|
end
|
31
37
|
|
38
|
+
|
39
|
+
# Returns the Context for the current controller.
|
40
|
+
#
|
41
|
+
def asset_context
|
42
|
+
find_asset_context( request.symbolized_path_parameters[:controller] )
|
43
|
+
end
|
44
|
+
|
32
45
|
# Proxy to Tension::Environment.find.
|
33
46
|
#
|
34
47
|
def find_asset_context(*args)
|
data/lib/tension/helper.rb
CHANGED
@@ -7,30 +7,52 @@ module Tension
|
|
7
7
|
module Helper
|
8
8
|
extend ActiveSupport::Concern
|
9
9
|
|
10
|
-
# Determines the best
|
10
|
+
# Determines the best stylesheets to be included in a template based
|
11
11
|
# on the current controller and action.
|
12
12
|
#
|
13
|
-
def
|
14
|
-
|
13
|
+
def best_stylesheets(*args)
|
14
|
+
build_tags( Tension::CSS, *args )
|
15
15
|
end
|
16
16
|
|
17
|
-
# Determines the best
|
17
|
+
# Determines the best JavaScripts to be included in a template based
|
18
18
|
# on the current controller and action.
|
19
19
|
#
|
20
|
-
def
|
21
|
-
|
20
|
+
def best_javascripts(*args)
|
21
|
+
build_tags( Tension::JS, *args )
|
22
22
|
end
|
23
23
|
|
24
24
|
private
|
25
25
|
|
26
|
-
def
|
26
|
+
def build_tags(type, *args)
|
27
|
+
options = args.extract_options!
|
28
|
+
shared_path = options.delete(:shared) || asset_context.shared_assets[type].presence
|
29
|
+
|
30
|
+
html = asset_for( type, "application", *args, options )
|
31
|
+
|
32
|
+
if shared_path
|
33
|
+
html << asset_for( type, shared_path, *args )
|
34
|
+
end
|
35
|
+
|
36
|
+
# action_asset = case type
|
37
|
+
# when Tension::CSS
|
38
|
+
# action_stylesheet
|
39
|
+
# when Tension::JS
|
40
|
+
# action_javascript
|
41
|
+
# end
|
42
|
+
|
43
|
+
# html << asset_for( type, action_asset.logical_path, *args, options )
|
44
|
+
|
45
|
+
html.html_safe
|
46
|
+
end
|
47
|
+
|
48
|
+
def asset_for(type, path, *args)
|
27
49
|
return nil if asset_context.nil?
|
28
50
|
|
29
|
-
case type
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
51
|
+
case type
|
52
|
+
when Tension::CSS
|
53
|
+
stylesheet_link_tag( path, *args )
|
54
|
+
when Tension::JS
|
55
|
+
javascript_include_tag( path, *args )
|
34
56
|
end
|
35
57
|
end
|
36
58
|
end
|
data/lib/tension/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.16.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piers Mainwaring
|
@@ -57,9 +57,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
57
57
|
version: '0'
|
58
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - ">"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 1.3.1
|
63
63
|
requirements: []
|
64
64
|
rubyforge_project:
|
65
65
|
rubygems_version: 2.0.3
|