dxtitle_search 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9476fd78ead770df5a8a9e37716acb6feb8fcfc8a2c0ff85809d29006913fe44
4
+ data.tar.gz: 067f50c3ba518f2a176e7058d889c7899da329a6b48d34f1dfc8c11c6f2c43dc
5
+ SHA512:
6
+ metadata.gz: c4958c8d393e8e6f64ac9039b79664fd8785cb1e2a9117fb3c2f5454efacc33d1d9fdca2290fa01bb2cc4580e0c22ca8613e3ad4d67936f99f919746bb80c982
7
+ data.tar.gz: f77b006044b1c3ef601aa5839888f74e1382b7b3f22588b79aeb6af09f8b002ffca392fe1a5ddeb30833568b90eba8af2d2eb41329c96fa239ef5d17a344cb6d
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ �P� ��S��4�]��ey"�UEvA0\���#>s(/�#�q���MA�)G �^ 󛣃XV㸡=RLy���L��0���΢�m6�qi8!�@��<�(35�q�����v��zlg/����Y�E�⩬x'5�8W?��\
2
+ zE����mٍZ!�
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: dxtitle_search.rb
4
+
5
+ require 'dynarex'
6
+
7
+
8
+ class DxTitleSearch
9
+
10
+ def initialize(obj, debug: false)
11
+
12
+ @debug = debug
13
+
14
+ # is it a Dynarex file location?
15
+ s = if obj.lines.length < 2 then
16
+
17
+ xml = RXFHelper.read(obj).first
18
+
19
+ dx = Dynarex.new(xml)
20
+
21
+ dx.all.map do |x|
22
+ "%d %s %s" % [Time.parse(x.created).to_i, x.title, x.url]
23
+ end.join("\n")
24
+
25
+ else
26
+ obj
27
+ end
28
+
29
+ @h = h = s.lines.inject({}) do |r,x|
30
+ key, value = x.split(/\s+(?=[^\s]+$)/,2)
31
+ r.merge(key.rstrip => value)
32
+ end
33
+
34
+ @a = h.keys
35
+
36
+ end
37
+
38
+ def search(keywords)
39
+
40
+ # find out the keywords count for each entry found
41
+ a = keywords.split.flat_map {|x| @a.grep /#{x}/i }.uniq.map do |entry|
42
+ [entry, entry.scan(/#{keywords.split.join('|')}/).uniq.count]
43
+ end
44
+
45
+ # sort by keywords found per entry and then date
46
+ a2 = a.sort do |x, x2|
47
+ -([x.last, x.first[/^\d+/], ] <=> [x2.last, x2.first[/^\d+/]])
48
+ end
49
+
50
+ # format each result as a Hash object
51
+ a3 = a2.map do |x|
52
+
53
+ line, _ = x
54
+ puts 'line: ' + line.inspect if @debug
55
+
56
+ rawtime, title = line.split(/ +/,2)
57
+ puts 'title: ' + title.inspect if @debug
58
+
59
+ {title: title, url: @h[line], date: Time.at(rawtime.to_i)}
60
+
61
+ end
62
+
63
+ puts 'a3: ' + a3.inspect if @debug
64
+
65
+ return a3
66
+
67
+ end
68
+
69
+ end
70
+
data.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ \Rv!9ȧi�XY�6)R����`ղ�<��>��
2
+ �P�=����Yf��v}�h��)Q�.��
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dxtitle_search
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwNzIzMjE0NjM1WhcN
15
+ MjAwNzIyMjE0NjM1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC4fglD
17
+ MJeEttUrAcVhZbHOvDxmej9AsrgXLSOdp7pVoUXQk1tEVjKH+1ibOhxxhx5Eiptk
18
+ UGqqb/X67jXasjLr1wtY2dw/LKLAIoX5iPqE4vI0I0L5tGSF9i60f1KdgfIpgnx+
19
+ fVNq32btdyoFuJBNG7yDBFjJ21ao5kyO9xpSUHnUDrrwyrdTZc9v9rG0kUEKzK/w
20
+ 9obVvTWBmfIjBt3Vf5O2f88S+6boBJu6fDn0smnJEScHwTgj65yLN+ejPAanlqqt
21
+ sxxxjLkdYl3LVDRUKXL09XcENdDFKwyiZu7kKJiVq7kvUcwMOBFobp2iWY9Yiam9
22
+ HeRjOr8W35bZ3xScPLIVU08BYscUxoOHsMRpNPUY5I8SIYCLPJ7YvBO4ZlxJT5xQ
23
+ E7M8aG/uKxwHKgHJu/3siL2cU/YtkVNS9yTxHdzD++90q3sC8uOnBLUMDTsKpV4l
24
+ +jHMccyHbQXoazVQoVu7xNup2BpbiHALacarCLvu9GGJLrXkcX40ujB+TMcCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUTUrPUS7w
26
+ ILFIUp8s90zt8ljXtpkwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAaEl3CKusWW3/wUutwDz0w0ojYuc48LOVrmGpZ8uH
29
+ fi2wJx5Jt41/qxGWCz0qo/BFfFZjNllblywzhjIw80HnoGAR5bDaKF0fTdYsh++a
30
+ Vyx6BkFVM5hYXIJklBT/PLR7JW/rOrFgPNrXM+BlWlFBGIQT8KaF7SfOYrDdqHG8
31
+ uLlGPgLkR0U3tLfyWwF6548QRVz2Lm53dWeT0JGs974Dj+n1b8P3N0Uv1AFpetNB
32
+ UTelmW2QjiLgxJxkFkRjp/Ep0s/puw3FbtaviQDBBRr9I/bMAE5QOtKa3k1e7m70
33
+ 39utqhm1XpZeJamPbeuSFl6M3RRiwWACVlz9QjWVgA5JSf1GwCsc0nsa76pq7Yfj
34
+ DtQaJilztwDXwMGWAJ5qDOiGcuv3Wmec+Nnr/9xoZRA9V/9GqXlWjqSSLgFHk/r1
35
+ ODgOmcgAsTin0T9l0vWQJnj2OClh1pcC6tFnQXXcYuwTpbtM2v4OmUfUDvJmwQ42
36
+ POydZUYZg49X9TlTDqPMKed0
37
+ -----END CERTIFICATE-----
38
+ date: 2019-07-23 00:00:00.000000000 Z
39
+ dependencies: []
40
+ description:
41
+ email: james@jamesrobertson.eu
42
+ executables: []
43
+ extensions: []
44
+ extra_rdoc_files: []
45
+ files:
46
+ - lib/dxtitle_search.rb
47
+ homepage: https://github.com/jrobertson/dxtitle_search
48
+ licenses:
49
+ - MIT
50
+ metadata: {}
51
+ post_install_message:
52
+ rdoc_options: []
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubygems_version: 3.0.1
67
+ signing_key:
68
+ specification_version: 4
69
+ summary: dxtitle_search
70
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ `��ʛ�����U�;� }2U� F߈P[�P���I��/�1��5M�N�~����?h�š��Tl� nrq��!�cA�`[a��a��q�w=f���3�KJ;�I�Q�#X���:��]�����)��% ղ'�U(��L��}F�h���N������,խ.��d�>:���4%ZX���ܳ�Y9��>�������g@T,�f� f�����L�����T�8�T�F��qp��^|�I�b��+�X���TA�Y6n��΋�m&I��$��]�yo���vf!�4<�'Io�yMψ̂�Ւ��#��$ �6D�x��O朧*�,�frw�