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 +4 -4
- data/lib/magic_path/dynamic_path.rb +6 -4
- data/lib/magic_path/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad0b6a1ea95f12ad3f5ba4d847772b89553a2504
|
4
|
+
data.tar.gz: 91d23e387a5b3620b7f25e795bbe60a77066a4e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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(
|
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."
|
data/lib/magic_path/version.rb
CHANGED