rack-rewrite-dynamic 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,6 +19,10 @@ module Rack
19
19
  slug = find_sluggable(slug_name)
20
20
  slug if slug && slug[:sluggable_type] == slug_type
21
21
  end
22
+ def scoped_slug_type?(slug_name, slug_type, prev_slug)
23
+ association_name = slug_type.downcase.pluralize
24
+ prev_slug.sluggable.send(association_name).find(slug_name) if prev_slug
25
+ end
22
26
  def find_sluggable(friendly_id)
23
27
  slug_klass.find(friendly_id)
24
28
  rescue ActiveRecord::RecordNotFound
@@ -3,7 +3,11 @@ module Rack
3
3
  module Dynamic
4
4
  class RailsRouteGenerator
5
5
  def self.route_for slug
6
- Rails.application.routes.url_helpers.send("#{slug[:sluggable_type].underscore}_path", slug[:sluggable_id])
6
+ if slug.kind_of?(Slug)
7
+ Rails.application.routes.url_helpers.send("#{slug[:sluggable_type].underscore}_path", slug[:sluggable_id])
8
+ else
9
+ Rails.application.routes.url_helpers.send("#{slug.class.name.underscore}_path", slug.id)
10
+ end
7
11
  end
8
12
  end
9
13
  end
@@ -25,9 +25,12 @@ module Rack
25
25
  end
26
26
 
27
27
  def find_url(url_parts, match, rack_env)
28
+ scope_slug = nil
28
29
  slugs = url_parts.each_with_index.map do |url_part, index|
29
30
  if url_part[1] == 'slug'
30
- slug_type?(match[index+1], url_part[0])
31
+ scope_slug = slug_type?(match[index+1], url_part[0])
32
+ elsif url_part[1] == 'scoped_slug'
33
+ scope_slug = scoped_slug_type?(match[index+1], url_part[0], scope_slug)
31
34
  else
32
35
  'static'
33
36
  end
@@ -1,7 +1,7 @@
1
1
  module Rack
2
2
  class Rewrite
3
3
  module Dynamic
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-rewrite-dynamic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-05 00:00:00.000000000 Z
12
+ date: 2012-12-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack-rewrite