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 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