coffee_routes 1.0.0 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44cd1b2975b9222ab24713caa6259aa1fe450fb4
4
- data.tar.gz: 9f7e13213a0a31b4e64b3b367afefef42b4373f3
3
+ metadata.gz: aa05708db5df8866ba3d2afae4525f55e3720b3e
4
+ data.tar.gz: 7c494d355047a7ec277f9b210cbd8384aca8d64f
5
5
  SHA512:
6
- metadata.gz: 97ec04405e3752d4791dce0e8a684d82c7db42f2b30b21e6dd896690cf703e86c19a7d44fa3da011c9b7f62fa8fa4eb363bf84b13449d926ca500f0ee72ae27f
7
- data.tar.gz: d813bdbff830be7d5fdd17a0ef654a98df6a0e00a3e6486c0d34649609b2c6856b15152f91114e7528500e4581b0f74c26c0daacd242f87efde3c8585b45d688
6
+ metadata.gz: de54c9739b7fa86e6a661bbe1dd0bde95e02d2b84c1d07911adeedcac4d210622a1fbb9d736ed1d18460a600a496047b59d098953816f3d70ae0543512ca4902
7
+ data.tar.gz: e447455fa90f3b44294b12c0494577ec6c0c25e75fb21c4e5d16c470ef553234c1505643365a26c8a7e6d31ec4bbe6a54be2521024ebcd8a64019e5ff2a64c71
data/README.md CHANGED
@@ -28,11 +28,14 @@ Include coffee_routes in your application.coffeee
28
28
 
29
29
  You should now have the CoffeeRoutes object in your global javascript scope.
30
30
 
31
- To access a named route, just call the CoffeeRoute.path helper
31
+ To access a named route, you can use the CoffeeRoute.path helper directly or you can use the global _path helper that is attached to window that you can call just like you would when writing a rails view.
32
32
 
33
33
  ```coffee
34
34
  CoffeeRoutes.path('project_item')
35
35
  => "/projects/:project_id/item/:id"
36
+
37
+ project_item_path()
38
+ => "/projects/:project_id/item/:id"
36
39
  ```
37
40
 
38
41
  To substitute in the parameter values pass in a hash.
@@ -40,6 +43,9 @@ To substitute in the parameter values pass in a hash.
40
43
  ```coffee
41
44
  CoffeeRoutes.path('project_item', {"project_id" : "project-awesome", "id" : 5})
42
45
  => "/projects/project-awesome/items/5"
46
+
47
+ project_item_path({"project_id" : "project-awesome", "id" : 5})
48
+ => "/projects/project-awesome/items/5"
43
49
  ```
44
50
 
45
51
  You can also get the HTTP verb that should be used with the named route.
@@ -1,3 +1,3 @@
1
1
  module CoffeeRoutes
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,20 +1,34 @@
1
1
  window.CoffeeRoutes =
2
+ # Store a routing table as created by ActionDispatch::Routing::JSONFormatter
2
3
  routes: <%= CoffeeRoutes.routes %>
3
4
 
5
+ # Calculate get the path from a name and substitute in any parameters
4
6
  path: (path, params)->
5
7
  params ||= {}
6
8
  if @routes[path]?
7
9
  route = @routes[path]
10
+ # Remote the (.:format) from the end of the path string
8
11
  path = route.path.replace(/\(.\:format\)$/, '')
12
+
13
+ # Replace the :params in the path for values from the params
9
14
  path = path.replace /:[a-z0-9_\-]+/gi, (match)->
10
15
  key = match.replace(/^:/, '')
11
16
  if params[key]? then params[key] else match
12
17
 
18
+ # Add a format parameter if one is passed in params
13
19
  if params['format']?
14
20
  path += ".#{params['format']}"
15
21
 
16
22
  path
17
23
 
24
+ # Grab the HTTP verb for the given named route
18
25
  method: (path)->
19
26
  if @routes[path]?
20
- @routes[path].verb
27
+ @routes[path].verb
28
+
29
+ # Create global function delcarations for each named route e.g. window.root_path
30
+ for route_name, data of CoffeeRoutes.routes
31
+ do (route_name, data) ->
32
+ window["#{route_name}_path"] = (params)->
33
+ route = route_name += ""
34
+ CoffeeRoutes.path(route, params)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coffee_routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Wentworth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-22 00:00:00.000000000 Z
11
+ date: 2014-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler