dynamic_assets 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,7 +32,7 @@ protected
32
32
  path_args = []
33
33
  path_args << asset_ref.name
34
34
 
35
- signature = asset_ref.signature binding
35
+ signature = asset_ref.signature DynamicAssets::ViewContext.get(controller)
36
36
  path_args << { :signature => signature } if signature.present?
37
37
 
38
38
  case asset_ref
@@ -11,3 +11,4 @@ require 'dynamic_assets/manager'
11
11
  require 'dynamic_assets/reference'
12
12
  require 'dynamic_assets/reference/javascript_reference'
13
13
  require 'dynamic_assets/reference/stylesheet_reference'
14
+ require 'dynamic_assets/view_context'
@@ -27,7 +27,7 @@ module DynamicAssets
27
27
  headers["Expires"] = (Time.now + 365.days).utc.httpdate
28
28
  end
29
29
 
30
- render :layout => false, :text => asset.content(binding), :content_type => mime_type
30
+ render :layout => false, :text => asset.content(ViewContext.get(self)), :content_type => mime_type
31
31
  end
32
32
  end
33
33
 
@@ -1,4 +1,5 @@
1
1
  require 'digest/sha1'
2
+ require 'erubis'
2
3
 
3
4
  module DynamicAssets
4
5
  class Reference
@@ -116,7 +117,7 @@ module DynamicAssets
116
117
  if path_is_erb?(path)
117
118
  raise "ERB requires a context" unless @context
118
119
  begin
119
- content_string = ERB.new(content_string).result @context
120
+ content_string = Erubis::Eruby.new(content_string).result @context
120
121
  rescue StandardError => e
121
122
  raise e.exception(parse_erb_error(e, path, content_string) ||
122
123
  "Error in ERB #{path}, unknown line number: #{e}")
@@ -137,7 +138,8 @@ module DynamicAssets
137
138
  def parse_erb_error(error, path, content_string)
138
139
  # Exception parsing inspired by HelpfulERB
139
140
 
140
- return nil unless error.backtrace.first =~ /^[^:]+:(\d+):in /
141
+ trace_index = error.backtrace.find_index { |trace_line| trace_line =~ /^.erubis:(\d+):in / }
142
+ return nil unless trace_index
141
143
 
142
144
  line_number = $1.to_i
143
145
  lines = content_string.split /\n/
@@ -153,7 +155,8 @@ module DynamicAssets
153
155
  marker = n == line_number ? "*" : ""
154
156
  "%2s %#{width}i %s" % [marker, n, lines[i]]
155
157
  end.join("\n") +
156
- "\n\n#{error.class}: #{error.message}"
158
+ "\n\n#{error.class}: #{error.message}" +
159
+ (trace_index > 0 ? "\n\nEncountered here:\n#{error.backtrace[0..trace_index-1].join "\n"}" : "")
157
160
  end
158
161
  end
159
162
  end
@@ -0,0 +1,16 @@
1
+
2
+ module DynamicAssets
3
+ class ViewContext
4
+
5
+ def self.get(controller)
6
+ controller.view_context.tap do |c|
7
+ class << c
8
+ def get_binding
9
+ binding
10
+ end
11
+ end
12
+ end.get_binding
13
+ end
14
+
15
+ end
16
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: dynamic_assets
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.0
5
+ version: 0.7.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Robert Davis
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-05 00:00:00 -05:00
13
+ date: 2011-06-06 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -112,6 +112,7 @@ files:
112
112
  - lib/dynamic_assets/reference.rb
113
113
  - lib/dynamic_assets/reference/javascript_reference.rb
114
114
  - lib/dynamic_assets/reference/stylesheet_reference.rb
115
+ - lib/dynamic_assets/view_context.rb
115
116
  - README.rdoc
116
117
  has_rdoc: true
117
118
  homepage: http://github.com/davisre/dynamic_assets
@@ -127,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
128
  requirements:
128
129
  - - ">="
129
130
  - !ruby/object:Gem::Version
130
- hash: 1850481041292794772
131
+ hash: -1939636484692022246
131
132
  segments:
132
133
  - 0
133
134
  version: "0"