asset_pipeline_routes 0.2.0 → 0.2.1

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 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: []