polyrex-links 0.2.0 → 0.3.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: 41424c9dc0def1657a8c5490cfbacf005b7a2cef
4
- data.tar.gz: d63105703070c31f9526c95b9522a11380f17846
3
+ metadata.gz: 0c19a57b19f29fe68ed02141780c528fcad7a458
4
+ data.tar.gz: 7b6c337aa34e83f6e8eb29b060b9bed8854d24bf
5
5
  SHA512:
6
- metadata.gz: 20905b20dd68c14e4edc7a8ad80381be0aac6cfb2ce7a6ccc74e779e6c67aad4da878b92d04eb0f86bff79ed37df58a4e61c03436ced0ee6e4d6f6d692477ef1
7
- data.tar.gz: c7f5bf88e9a16b74eb17ab975c5fac0fb73bed5ac65bf99721596d7a3dcb4685d7f631543c61c2a44b43b0129999ee48dd676c3b0c1960e86942a869959185e4
6
+ metadata.gz: 6153344d80dd0301dc24ac503c8d398cc5d656b312d687e222e2094767470a016268b70b34a6db55f3c8a5bbb4ec2a34b536904cf67018c3a66eeccfb672a0d9
7
+ data.tar.gz: f725ada1262e23a49a55919629408e26faf9dc48bff53cf98bb308c62607eb99bda5e3ea7d6cc2cb91787e81fdb019bfe7f196503728b9cbfabdc3c8b21a8bef
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -8,10 +8,20 @@ class PolyrexLinks < Polyrex
8
8
 
9
9
  def initialize(x='links/link[name,url]', delimiter: ' # ', debug: false)
10
10
  super(x)
11
- self.delimiter = delimiter
11
+ @delimiter = self.delimiter = delimiter
12
12
  @debug = debug
13
13
  end
14
-
14
+
15
+ # Returns the Polyrex element for the given path
16
+ #
17
+ def link(s)
18
+
19
+ self.rxpath(s.split('/').map {|x| "link[name='%s']" % x}.join('/')).first
20
+
21
+ end
22
+
23
+ # Returns the url and remaining arguments for the given path
24
+ #
15
25
  def locate(raw_path)
16
26
 
17
27
  path = raw_path.sub(/^\//,'')
@@ -30,8 +40,38 @@ class PolyrexLinks < Polyrex
30
40
  # it didn't find, or it will return nil.
31
41
 
32
42
  puts "c: %s\npath: %s\nr: %s" % [c, path, r].map(&:inspect) if @debug
33
-
43
+
34
44
  r ? [r, path.sub(c.join('/'),'')] : nil
35
45
  end
46
+
47
+
48
+ # Return a flat Hash object containing all the links. The link path is
49
+ # used as the key and the value is the url
50
+ #
51
+ def to_h()
52
+
53
+ h = {}
54
+
55
+ each_link {|key, value| h[key] = value }
56
+ h
57
+
58
+ end
59
+
60
+ private
61
+
62
+
63
+ def each_link()
64
+
65
+ a = []
66
+
67
+ self.each_recursive() do |record, _, i|
68
+
69
+ a.slice!(i..-1)
70
+ a[i] = record
71
+ yield(a.map(&:name).join('/'), record.url) if block_given?
72
+
73
+ end
74
+
75
+ end
36
76
 
37
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyrex-links
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -30,7 +30,7 @@ cert_chain:
30
30
  BPwFsWAbLaLB8f5sRH9pSgr7gqm3ky2fSBk//wtYHz86+AKvwZ0E3pvp6FuWl5Az
31
31
  iPQ=
32
32
  -----END CERTIFICATE-----
33
- date: 2018-04-01 00:00:00.000000000 Z
33
+ date: 2018-04-12 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: polyrex
metadata.gz.sig CHANGED
Binary file