polyrex-links 0.1.7 → 0.3.1

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
- SHA1:
3
- metadata.gz: 5ed6d1c315bc7473ff2bae1aeb4d1075f4e0cbf5
4
- data.tar.gz: 1a7565ab0dd99b61968eb3f9a876845b6c759994
2
+ SHA256:
3
+ metadata.gz: 4bd12c77d61cf0b1cfc72812388fb6905dea692dd47b2a15f4552658fd251026
4
+ data.tar.gz: d1f62513696b431a28a0402f4108659e476d49df785f8e0ad9459cf7880a869d
5
5
  SHA512:
6
- metadata.gz: 3819c7214ca5ab3031f375892bd715601f38d3426cb2e77e6a4aaa7997227eefa07a5908847be3dae9eb490957273d558b4c75d2ae30566b2b7dc286b07449e7
7
- data.tar.gz: b22c5d849257b2ce09a02a70f2c289bdef98677f33b478eb00d9d8426d98502865f0291ac29600f33fc793613c757236055ffadb7345940f4b0c47913aaa3b99
6
+ metadata.gz: 3b28beb444c7984ab881c4edbbe44c27fdd932e791f29b2f3f6c24606dfb43c84aff74a8b98975ed896d50aa243eccbd9a3138b3f25765654ceb79bff13d3b8a
7
+ data.tar.gz: 888c6e76766752725df3d205c3e582128aa77da82bb3e73319a0f74f52a2c0c7106cc1673dffa1ec4ee2df4dae2ead77015ad8ca462afa9e044ebf0dae13376f
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/polyrex-links.rb CHANGED
@@ -6,16 +6,31 @@ require 'polyrex'
6
6
 
7
7
  class PolyrexLinks < Polyrex
8
8
 
9
- def initialize(x='links/link[name,url]')
9
+ def initialize(x='links/link[name,url]', delimiter: ' # ', debug: false)
10
10
  super(x)
11
+ @delimiter = self.delimiter = delimiter
12
+ @debug = debug
11
13
  end
12
-
13
- def locate(path)
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
14
20
 
21
+ end
22
+
23
+ # Returns the url and remaining arguments for the given path
24
+ #
25
+ def locate(raw_path)
26
+
27
+ return nil if raw_path.nil? or raw_path.strip.empty?
28
+ path = raw_path.sub(/^\//,'')
15
29
  a = path.split('/')
16
30
  a2 = []
17
31
  (a2 << a.clone; a.pop) while a.any?
18
-
32
+ return nil if a2.empty?
33
+
19
34
  mask = "records/link[summary/name='%s']"
20
35
 
21
36
  begin
@@ -25,7 +40,40 @@ class PolyrexLinks < Polyrex
25
40
 
26
41
  # return the found path along with any remaining string which
27
42
  # it didn't find, or it will return nil.
28
- r ? [r + path.sub(c.join('/'),''), path.sub(c.join('/'),'')] : nil
43
+
44
+ puts "c: %s\npath: %s\nr: %s" % [c, path, r].map(&:inspect) if @debug
45
+
46
+ r ? [r, path.sub(c.join('/'),'')] : nil
29
47
  end
48
+
49
+
50
+ # Return a flat Hash object containing all the links. The link path is
51
+ # used as the key and the value is the url
52
+ #
53
+ def to_h()
54
+
55
+ h = {}
56
+
57
+ each_link {|key, value| h[key] = value }
58
+ h
59
+
60
+ end
61
+
62
+ private
63
+
64
+
65
+ def each_link()
66
+
67
+ a = []
68
+
69
+ self.each_recursive() do |record, _, i|
70
+
71
+ a.slice!(i..-1)
72
+ a[i] = record
73
+ yield(a.map(&:name).join('/'), record.url) if block_given?
74
+
75
+ end
76
+
77
+ end
30
78
 
31
79
  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.1.7
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,43 +10,55 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDRDCCAiygAwIBAgIBADANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTEzMDIwNjIxMDEwOVoXDTE0MDIwNjIxMDEwOVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAKegH9ZQdwso0c+dB4IBMX7sOEy0AjFC64aU6/mzN0HhtSSsvFaiBshldqSN
19
- 7MOzdhn55r/LpxLj50QsJikRA0FR5RRqrew4qBzD0BiI9K/kVn2bAL1EfUIjSpLr
20
- U4/leLmsJIHqTEOg7ATHSVK/GqOr13BMeIpkRLZbpeUCSGiaa51r1dbfv6uPk6Vi
21
- Xk8WoujVhXvFFUG8pLuV6KZQUUgLUEso0FExJO4bjcn01xezg9BLj4oWStg2VSY0
22
- CyZa3PtPD3aPijtYdr9aMoNio8DjvR61Ws59VUsSHLJGmnU0TfX38UOkv1eumENN
23
- QPGGM5uqpH8rQHgeUdomVtHiP9sCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4E
24
- FgQU3h+Ip0bACcopUkXVRvwmkixrc2owCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEB
25
- BQUAA4IBAQCg67qHUrw0vNs6fR4leEbEaxB+851Bxa5e9GJ5O34JroSiZHClxEUZ
26
- GHFUnDyCnioGtvq8n/NROS9svflC6Ay/nJ6lirWPXEdRhWqsh+pRIeI1fF8UDJfj
27
- b94Hiqy2JyWjxZj9+AbDSpX01WVr3PjiO53POMy7RRVz2QjlJF/OShfvU6+B1c02
28
- gtk2aVgdTs5xXv9Nx7FgzQsdHqRucCDLlBCmh9fqOjJVy1kaDBFPk1N+xoP7stnU
29
- x40WCn+FAqwhPnASI4BM1MBT/1dnbUmxHY/eYXGp3ItUUyMEIOy9Y9Wr49zQvlHn
30
- Oqgq2MESY6AajipJNVoV1bl2LXjn/vyR
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMjI3MTUxODE4WhcN
15
+ MjIwMjI3MTUxODE4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCdtqiT
17
+ 0WUTjIB9AjlZAkqkD9DB5TTRiRmNEN1Hfq4mtVpj56axPBwoR7fuZJSutczmuy9K
18
+ avOwyfG5SZqqPGYAQspwg758CnP6c+rF29lMVYkoR8PiCryQK9tXBGPV33CS+T1k
19
+ 4lQGttd8wgN55YSRkAtl/AuKmJr4zNFwY6kE0fwFWIBaw2grKJBrZUe2WTjBC4to
20
+ GIEP9/ehRvpiPDVsF6KY5QGPsGKDEBBPR/P5ChG6OuP5qv8wKUSw4eLMQbY81n+/
21
+ X2F/8FfpLGKjDboMMygHyWi+pJRiaSqzxB6WL5Q8bnIkelbw4LKhck5kWx0gl5cv
22
+ WLPtarEFK3Ac3kg9FzjsgvW/IJDKDn9TmYWsNKIqGj1j8vdc7sksfcch7rmKRIsD
23
+ zWoLCS+djhi0v2f8u9Yp5cJB0e6oyNHSkMUD44uefHAZOeT/u3kZvL6aOAjpS1A8
24
+ IaxkwwjginilyBHSpyPruxcNyiaDvJ/D+C7xzM5XbkbQzOwFf5Ml0UDwPgsCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUke21GuFM
26
+ jVaog26Uc04gxKe1iCwwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAjIJYPq1LH/BCICN8vgvNFgGs21y/cfvb9xHYlzFW
29
+ rsugnb0Z/o4KFuR4F8JceTgBAhwCKnsXltjamYjw+VfcF/4KVtmgiFKjS35kTCu1
30
+ bTemc4gbHKjwz03kh35lDFD6sfqCumtifHBPNZjYXB3Nxlel+ECHLtj7NP4K14wJ
31
+ yu/k6V++dimd0zKocsIOSwuOUCbn9q3sXu0ZNippHdpyYtaj76BFURASv2xVj4KR
32
+ sIkI6KVVE15q6hrjxLInQX2GH6frDr6I6w7ltuDhI8I3TkW9C/W5vuoHyWCiG9qX
33
+ cBRqqQiCW7xMi8SCyoVCJydO3Js8E0gFrbg6R9XcsIt2yaktptXEcY4hm+yWlkJD
34
+ Nnidax6k9ikNRlpzL5AhDq6nRARm+7bJAr/4Ln3SswnLtXW6//WkQyReUJMDgRo9
35
+ 5x/50O2gHQvmLgSVk8EsWqPZ6B8tMZ9h/ttCIkW33ewCmHrrxH9suuyqbC/SaiEf
36
+ 2qE86MpuEcgDiX59WiP5GiBx
31
37
  -----END CERTIFICATE-----
32
- date: 2013-07-27 00:00:00.000000000 Z
38
+ date: 2021-02-27 00:00:00.000000000 Z
33
39
  dependencies:
34
40
  - !ruby/object:Gem::Dependency
35
41
  name: polyrex
36
42
  requirement: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - '>='
44
+ - - ">="
39
45
  - !ruby/object:Gem::Version
40
- version: '0'
46
+ version: 1.2.0
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.2'
41
50
  type: :runtime
42
51
  prerelease: false
43
52
  version_requirements: !ruby/object:Gem::Requirement
44
53
  requirements:
45
- - - '>='
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.2.0
57
+ - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '0'
59
+ version: '1.2'
48
60
  description:
49
- email: james@r0bertson.co.uk
61
+ email: james@jamesrobertson.eu
50
62
  executables: []
51
63
  extensions: []
52
64
  extra_rdoc_files: []
@@ -62,18 +74,19 @@ require_paths:
62
74
  - lib
63
75
  required_ruby_version: !ruby/object:Gem::Requirement
64
76
  requirements:
65
- - - '>='
77
+ - - ">="
66
78
  - !ruby/object:Gem::Version
67
- version: '0'
79
+ version: 2.1.2
68
80
  required_rubygems_version: !ruby/object:Gem::Requirement
69
81
  requirements:
70
- - - '>='
82
+ - - ">="
71
83
  - !ruby/object:Gem::Version
72
84
  version: '0'
73
85
  requirements: []
74
86
  rubyforge_project:
75
- rubygems_version: 2.0.0.rc.2
87
+ rubygems_version: 2.7.10
76
88
  signing_key:
77
89
  specification_version: 4
78
- summary: polyrex-links
90
+ summary: A convenient gem for retrieving a link from a hierarchical lookup table from
91
+ a raw Polyrex document format
79
92
  test_files: []
metadata.gz.sig CHANGED
Binary file