dynamic_assets 0.6.0 → 0.7.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.
@@ -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"