asset_pipeline_routes 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e0aeb2674f4d71a276bdcddb8d548fd28170850
4
- data.tar.gz: 1ab2d6146ded1c488fb782630eabc8c50430c360
3
+ metadata.gz: ae12a66e8ec65bbe232bbb057054e21b7ee9c219
4
+ data.tar.gz: cf3c727032a3fc1c052e9f65088153f144c961e0
5
5
  SHA512:
6
- metadata.gz: 27200138ee83a6b432f4a8b32ac451227a9eac0ed609966f8d7f237e3a23f9e3f18af7449003e34483631071a08c75c9f6b40f5c3caf1d605bc08244319b8a15
7
- data.tar.gz: 9eed93d8a24d642b349935912f194581d2c5daffa2a98a2dff19c2cf28fbe4dbc1776a76fb1c8091d48e4939a754ee4e1f1abf949629e0143784f7ae64bd2d75
6
+ metadata.gz: 87e847796f67c2e133f04713176e573cb9cb1689098cba6afc7a6343e8da007a49b601fd9dcf218f5fc9ccaeb8ce0a7be47f5c1255c00cd5c884ced07382cb91
7
+ data.tar.gz: 539976ab1266359444692807c92197201980497baf233b88da4863cd47eb6c4031d157fdad042a4a69894c7d73669cf799dfd24765b6a703e53f5f4ddcc6b249
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # asset\_pipeline\_routes
2
2
 
3
3
  [![Build Status](https://travis-ci.org/nicolai86/asset_pipeline_routes.png?branch=master)](https://travis-ci.org/nicolai86/asset_pipeline_routes)
4
+ [![Gem Version](https://badge.fury.io/rb/asset_pipeline_routes.png)](http://badge.fury.io/rb/asset_pipeline_routes)
4
5
 
5
6
  `asset_pipeline_routes` defines a `r` shorthand function which you can use inside your javascript assets.
6
7
 
@@ -11,19 +11,27 @@ module AssetPipelineRoutes
11
11
  end
12
12
 
13
13
  def evaluate context, locals
14
- data.gsub /[^[[:word:]]]r\(([[:word:]]+),?(.*)\)/ do |match|
15
- parts = $2.split(',').map(&:strip).reject(&:blank?)
16
- route = $1.to_sym
17
-
18
- wrap = (match[0] == '(')
14
+ re = %r{
15
+ (?<=[^[[:word:]]])r(?<re>
16
+ \(
17
+ (?:
18
+ (?> [^()]+ )
19
+ |
20
+ \g<re>
21
+ )*
22
+ \)
23
+ )
24
+ }x
25
+ data.gsub re do |match|
26
+ str = match[2..-2]
27
+ parts = str.split(',').map(&:strip).reject(&:blank?)
28
+ route = parts.shift.to_sym
19
29
 
20
30
  expanded = if r.respond_to? route
21
31
  r.send route, *parts
22
32
  else
23
33
  "''"
24
34
  end
25
-
26
- wrap ? "(#{expanded})" : expanded
27
35
  end
28
36
  end
29
37
  end
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module AssetPipelineRoutes
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
@@ -0,0 +1 @@
1
+ console.log(r(project_ticket_path))
@@ -0,0 +1,2 @@
1
+ x = 2
2
+ console.log(r(project_ticket_path, 2, x))
@@ -26,15 +26,15 @@ describe AssetPipelineRoutes::PathProcessor do
26
26
  end
27
27
 
28
28
  it "replaces calls to r() with route" do
29
- @env['simple_route.js'].to_s.should == "var Bar ='/users';\n"
29
+ @env['simple_route.js'].to_s.should == "var Bar = '/users';\n"
30
30
  end
31
31
 
32
32
  it "replaces calls with unknown route to ''" do
33
- @env['unknown_route.js'].to_s.should == "var Bar ='';\n"
33
+ @env['unknown_route.js'].to_s.should == "var Bar = '';\n"
34
34
  end
35
35
 
36
36
  it "works with variables" do
37
- @env['simple_route_with_variable.js'].to_s.should == "var x = 2;\nvar Bar ='/users/'+x+'';\n"
37
+ @env['simple_route_with_variable.js'].to_s.should == "var x = 2;\nvar Bar = '/users/'+x+'';\n"
38
38
  end
39
39
 
40
40
  it "works with coffeescript" do
@@ -42,11 +42,11 @@ describe AssetPipelineRoutes::PathProcessor do
42
42
  end
43
43
 
44
44
  it "works with unqualified routes" do
45
- @env['unqualified_routes.js'].to_s.should == "var url ='/users/{{id}}';\n"
45
+ @env['unqualified_routes.js'].to_s.should == "var url = '/users/{{id}}';\n"
46
46
  end
47
47
 
48
48
  it "works with partially qualified nested routes" do
49
- @env['nested_routes.js'].to_s.should == "var project_path ='/projects/'+2+'/tickets/{{id}}';\n"
49
+ @env['nested_routes.js'].to_s.should == "var project_path = '/projects/'+2+'/tickets/{{id}}';\n"
50
50
  end
51
51
 
52
52
  it "does not replace false positives" do
@@ -58,6 +58,14 @@ describe AssetPipelineRoutes::PathProcessor do
58
58
  end
59
59
 
60
60
  it "works with function argument" do
61
- @env["argument_function.js"].to_s.should == "var url ='/users/'+fetchUserId()+'';\n"
61
+ @env["argument_function.js"].to_s.should == "var url = '/users/'+fetchUserId()+'';\n"
62
+ end
63
+
64
+ it "works with coffeescript method invocation" do
65
+ @env['coffee_with_function_invocation.js'].to_s.should == "(function() {\n console.log('/projects/{{project_id}}/tickets/{{id}}');\n\n}).call(this);\n"
66
+ end
67
+
68
+ it "works with coffeescript method invocation" do
69
+ @env['coffee_with_function_invocation_arguments.js'].to_s.should == "(function() {\n var x;\n\n x = 2;\n\n console.log('/projects/' + 2 + '/tickets/' + x + '');\n\n}).call(this);\n"
62
70
  end
63
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asset_pipeline_routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raphael Randschau
@@ -137,6 +137,8 @@ files:
137
137
  - lib/asset_pipeline_routes.rb
138
138
  - spec/asset_pipeline_routes_spec.rb
139
139
  - spec/fixtures/argument_function.js
140
+ - spec/fixtures/coffee_with_function_invocation.coffee
141
+ - spec/fixtures/coffee_with_function_invocation_arguments.coffee
140
142
  - spec/fixtures/false_positive.js
141
143
  - spec/fixtures/function_argument.js
142
144
  - spec/fixtures/nested_routes.js
@@ -150,8 +152,9 @@ files:
150
152
  - spec/spec_helper.rb
151
153
  - README.md
152
154
  - Rakefile
153
- homepage: ''
154
- licenses: []
155
+ homepage: http://blog.nicolai86.eu
156
+ licenses:
157
+ - MIT
155
158
  metadata: {}
156
159
  post_install_message:
157
160
  rdoc_options: []