magic_path 0.1.0 → 0.2.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 +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