phrase_browser 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9d0edcd2d312500aec57e837321e7f0465aa7074c2f82e0b13d7f01dd71b4708
4
+ data.tar.gz: 578ef052cbebd0228a3eb3ec10afd08749e6310b5cc34748a5b4603b518b2be4
5
+ SHA512:
6
+ metadata.gz: f371019bc9ad688eaf87cab8c17951961193bd100c059691d87ed1b4c7138c838891b97fc7a5629f535221cbfa5d9e112817c63ba14075f61458f24a233a351a
7
+ data.tar.gz: 119fe114509b6ba390e90e3945a2621a3e8dc48f8364697ee408a9863711370eec6b4a9b883e78eff2f35906d476dd60b05c2a4bb0c191d82117011971c1cc04
Binary file
@@ -0,0 +1 @@
1
+ ����Ҧ�Q��m�=�M4����� >3\K���2��P3�>N�2=' 1��a���}��ג���Gk�|��C�x�_+/ ��S��qϞӊ����ӏ:[��`����K��1��6�Һ$�� G�,I��&K�����s)�s��
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: phrase_browser.rb
4
+
5
+ # description: Experimental gem to look up a phrase from a list of words
6
+ # layed out in an HTML accordion style menu.
7
+
8
+ require 'htmlcom'
9
+ require 'kramdown'
10
+
11
+
12
+ class PhraseBrowser
13
+ using ColouredText
14
+
15
+
16
+ def initialize(s, target_url: '', debug: false)
17
+
18
+ @target_url, @debug = target_url, debug
19
+
20
+ ignorewords = ["the", "of", "and", "to", "in", "a", "is", "that", "for",
21
+ "it", "as", "was", "with", "be", "by", "on", "not", "he",
22
+ "i", "this", "are", "or","his", "from", "at", "which",
23
+ "but", "have", "an", "had", "they", "you", "were",
24
+ "their", "one", "all", "we", "can", "her", "has", "there",
25
+ "been", "if", "more", "when", "will", "would", "who",
26
+ "so", "no"]
27
+
28
+ h = {}
29
+ a = s.strip.lines.each do |rawx|
30
+
31
+ x = rawx.chomp
32
+
33
+ x.downcase.split(/ +/).each do |raw_word|
34
+
35
+ word = raw_word[/\w+/]
36
+ next if ignorewords.include? word
37
+ h[word.to_sym] ||= []
38
+ h[word.to_sym] << x
39
+
40
+ end
41
+
42
+ end
43
+
44
+ @a = h.to_a.sort!
45
+ end
46
+
47
+ def to_html()
48
+
49
+ doc = Rexle.new('<accordion/>')
50
+
51
+ @a.each do |word, raw_phrases|
52
+
53
+ phrases = raw_phrases.map do |x|
54
+
55
+ if block_given? then
56
+ yield(x)
57
+ else
58
+ phrase = x[/[^#]+/]
59
+ "* [%s](%s=%s)" % [phrase, @target_url, URI.encode(phrase)]
60
+ end
61
+
62
+ end.join("\n")
63
+
64
+ e = Rexle::Element.new('panel')
65
+ e.attributes[:title] = word.to_s
66
+ e.add Rexle.new(Kramdown::Document.new(phrases).to_html).root
67
+ doc.root.add e
68
+
69
+ end
70
+
71
+ puts doc.root.xml.debug if @debug
72
+ HtmlCom::Accordion.new(doc.root.xml).to_html
73
+
74
+ end
75
+ end
76
+
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: phrase_browser
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
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkxMjE4MjIwMTMzWhcN
15
+ MjAxMjE3MjIwMTMzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCnlfnJ
17
+ MYfU8LDTpFb69Ty4DJLfYA4MueFdc5MKGUEhzAyC/raE3wScDmiOP0yPfb+fUIiI
18
+ WR2Ehjk4sfQ6kqqBwBECcXIiS72pfKiFVHZ4X0srFYL97f4LVubRdtUqQwj8uVqu
19
+ ORVyVSOiM/PPXdXPqHLl80uMfCPqRCNdAZKLhECcUZLpAMhuywmhyTmihnaDm2wZ
20
+ J9PBvyZmKLLwtXcWuRjEze+xIUexfyh79plAskvU+ew2fyfsVPNBLtvwT4R0Iwo5
21
+ MlwzO8gSdj6uroWhM8snR1brDcXsgaHN+JdN2pq+4BixfQynu7+ZWOvPw6XZ4f28
22
+ L0iaYGdaodf8G7in4el2JVN/jUQvQEAQ4x6Gu/zrc2BBAEjWTrNiXKukl+rdaWHf
23
+ osv/ehLfevrmAELqM5lSh+esoL+ZXUn059OecLHg6a7BtRvD7uquuSMxwxFJOMjq
24
+ +fqfHax/rbnVH25m6CGWIBA96CaigHtDns8NLJp6ttg/Weu5dfGOjFJerAcCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUMgvOJ6Ey
26
+ X7EQrfXVDIG4aUrTVqwwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAoSpTqA6jA7pUH75oXh4Ms9v1C1kE8nu3BrA33vMf
29
+ Au56YE1oIaWGydY6Clh+AdicoJBOFtwc/BZFPfVZLe6+T5kwgDHg0/7gZGl379aa
30
+ Mlvy0eNeZ5yAk7lVSoc45ePGKoXrqL5LA4l4wmIz2W0KscOfQsl9AGDa+g2daLID
31
+ zEWZC+z9u/sBzbiXltThbTWZzqyr3wwVlb11Zi/1s+MSBnDo05wpUl5f9pvDyu/u
32
+ 6p7b73QqEQKTt+cCSzLsZzJwEU4XYqxSXSF6eTsjwpUPPNEmWB1lKJwFNxgKly5o
33
+ kfNeA2+NvznQz5/tnROiAlaak/jipEHd5+2rvtq9GpGxp0VoU7ACQZymARjxU8Go
34
+ jQtPRNO6cmUrHaIwQ/Oqk08OA0kmobakmXVjTXoXYpGBRxFjOyjzjMZFEoVarBr1
35
+ d/LgGxKFEyi3xKzrGvvtG0hROh5EU7qEpE1Nw4gePi+X6+KwdZOkNRczQLk6valg
36
+ 1btYwB1GMozwTbXpS7qZL3HB
37
+ -----END CERTIFICATE-----
38
+ date: 2019-12-18 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/phrase_browser.rb
47
+ homepage: https://github.com/jrobertson/phrase_browser
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.3
67
+ signing_key:
68
+ specification_version: 4
69
+ summary: phrase_browser
70
+ test_files: []
Binary file