magic_path 0.1.0 → 0.2.0

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: 60fc211126220aad9cfa38f5267ee8817c98d08e
4
- data.tar.gz: b850dace2bf6c6f75dff819a654d3680ad43b495
3
+ metadata.gz: ad0b6a1ea95f12ad3f5ba4d847772b89553a2504
4
+ data.tar.gz: 91d23e387a5b3620b7f25e795bbe60a77066a4e8
5
5
  SHA512:
6
- metadata.gz: 10da9388d49cedaafc28ce05c5ee10ae4f09996333ccd4b1efc30ffbf0bdbc5f363503194d5f4edc415f6368823557b40c0e4e7f2cc15b127a4c40c14c2186a8
7
- data.tar.gz: 7ae953bbb7ba30a278ed75e97802d8793d891a77c524c0765ec947d0b17ccf4d6e73090495c6333f1fdab61644fd094dbe979b2a673c711c33e03b33417f58a7
6
+ metadata.gz: 24711525b65540a7e62ab57ca345cb9dca3db2a033f45cb3c3365735b73f5c907d5fdd7b798b4b888a418f5020f804ba91f5bb12364b6fd79f341493b0231add
7
+ data.tar.gz: ad7413202b5549e33d1f5733e6bcce07ce75bc6a20a9b1a65ff4fcbd71db445f7163b4bdc8532b2b9c0e62e4983413eb462cfd419ad3136178b2b5ee09c79f67
@@ -19,7 +19,9 @@ module MagicPath
19
19
  def resolve(extra_params = {})
20
20
  return @locked_path unless @locked_path.nil?
21
21
  full_params = @params.merge(extra_params)
22
- @pattern.split('/').map { |f| f[0] == ':' ? _var(f[1..-1], full_params) : f }.join('/')
22
+ resolved_path = @pattern.dup
23
+ @pattern.scan(/(\:\w(?:\w+|\d+))/).flatten.each { |t| resolved_path.gsub!(t, _var(t, full_params)) }
24
+ resolved_path
23
25
  end
24
26
 
25
27
  def finalize(extra_params = {})
@@ -64,11 +66,11 @@ module MagicPath
64
66
 
65
67
  private
66
68
 
67
- def _var(var_name, full_params = {})
69
+ def _var(var, full_params = {})
70
+ var_name = var.delete ':'
68
71
  return full_params[var_name] if full_params.key?(var_name)
69
72
  return full_params[var_name.to_sym] if full_params.key?(var_name.to_sym)
70
-
71
- return MagicPath.send(var_name).resolve(full_params) if MagicPath.respond_to? var_name
73
+ return MagicPath.send(var_name.to_sym).resolve(full_params) if MagicPath.instance.respond_to? var_name
72
74
  resolver = _resolver_for(var_name)
73
75
  return resolver.send(var_name) unless resolver.nil?
74
76
  raise ArgumentError, "Could not locate #{var_name}, in params or resolvers."
@@ -1,3 +1,3 @@
1
1
  module MagicPath
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic_path
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donavan Stanley