phrase_lookup 0.1.4 → 0.1.9
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/phrase_lookup.rb +56 -28
- metadata +35 -32
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5fd6a1b23e62042749f8cce80d87af6fb330212b192bd60a593a3cee6441de0e
|
4
|
+
data.tar.gz: a3bbb9361865709d77b455b85f371929e91f29371fe3ed98a5fbd844e7fee3d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fdc2c7d1b02a0008d8f8a11b20aa26d6e78b2fb25b185f5213eb74b7a10569ba0c014cfcc189c71fe91c9d5b9019325c899a00d1a771e9a89b3032f415e20eb
|
7
|
+
data.tar.gz: eede7d74a9a1e21efcc022e4792bb07bc4006ac306c97dc81a7d297757d160e461cb1944838c9e73d32fd4df0b34c874252fb913972b8efa91432464c05f384c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/phrase_lookup.rb
CHANGED
@@ -11,28 +11,44 @@ require 'rxfhelper'
|
|
11
11
|
|
12
12
|
class PhraseLookup
|
13
13
|
|
14
|
-
def initialize(
|
14
|
+
def initialize(obj=nil, debug: false)
|
15
|
+
|
16
|
+
@debug = debug
|
15
17
|
|
16
|
-
@master = if
|
17
|
-
|
18
|
-
s = RXFHelper.read(raw_s).first
|
18
|
+
@master = if obj then
|
19
19
|
|
20
|
-
if
|
20
|
+
if obj.is_a? String then
|
21
|
+
|
22
|
+
s = RXFHelper.read(obj).first
|
23
|
+
|
24
|
+
if s.lstrip =~ /^---/ then # it's YAML
|
25
|
+
|
26
|
+
Master.new( YAML.load(s))
|
27
|
+
|
28
|
+
elsif s =~ /: / # it's the contents of a log file
|
29
|
+
|
30
|
+
m = Master.new
|
31
|
+
m.create s
|
32
|
+
m
|
33
|
+
|
34
|
+
else # it's plain text
|
35
|
+
|
36
|
+
m = Master.new
|
37
|
+
m.create_from_txt s
|
38
|
+
m
|
39
|
+
|
40
|
+
end
|
21
41
|
|
22
|
-
|
23
|
-
|
24
|
-
elsif s =~ /: / # it's the contents of a log file
|
42
|
+
elsif obj.is_a? Array
|
25
43
|
|
26
|
-
|
27
|
-
m.create s
|
28
|
-
m
|
29
|
-
|
30
|
-
else # it's plain text
|
44
|
+
puts 'array detected' if @debug
|
31
45
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
46
|
+
m = Master.new
|
47
|
+
m.parse_array obj
|
48
|
+
m
|
49
|
+
|
50
|
+
else
|
51
|
+
Master.new obj
|
36
52
|
end
|
37
53
|
|
38
54
|
end
|
@@ -42,9 +58,9 @@ class PhraseLookup
|
|
42
58
|
|
43
59
|
class Master
|
44
60
|
|
45
|
-
def initialize(
|
61
|
+
def initialize(h={})
|
46
62
|
|
47
|
-
@h =
|
63
|
+
@h = h
|
48
64
|
|
49
65
|
end
|
50
66
|
|
@@ -72,9 +88,7 @@ class PhraseLookup
|
|
72
88
|
|
73
89
|
def to_h()
|
74
90
|
@h.clone
|
75
|
-
end
|
76
|
-
|
77
|
-
private
|
91
|
+
end
|
78
92
|
|
79
93
|
def parse(raw_s)
|
80
94
|
|
@@ -85,6 +99,13 @@ class PhraseLookup
|
|
85
99
|
|
86
100
|
end
|
87
101
|
|
102
|
+
def parse_array(a)
|
103
|
+
|
104
|
+
@h = a.map {|x| x.downcase.gsub(/\?/,'')}\
|
105
|
+
.inject({}) {|r,x| r.merge x => a.count(x)}
|
106
|
+
|
107
|
+
end
|
108
|
+
|
88
109
|
def parse_log(raw_s)
|
89
110
|
|
90
111
|
s, _ = RXFHelper.read(raw_s)
|
@@ -99,18 +120,24 @@ class PhraseLookup
|
|
99
120
|
end
|
100
121
|
end
|
101
122
|
|
102
|
-
def lookup(s, limit: 10)
|
123
|
+
def lookup(s, limit: 10, search_tags: false)
|
103
124
|
|
104
125
|
return [] if s.empty?
|
105
126
|
|
106
127
|
h = @master.to_h
|
107
128
|
a = h.keys
|
108
129
|
|
109
|
-
|
110
|
-
|
130
|
+
a3 = if search_tags then
|
131
|
+
a.grep /\].*(?:\b#{s}\b|\b#{s}).*\|.*(?:\b#{s}\b|\b#{s})/i
|
132
|
+
else
|
133
|
+
a1, a2 = [/^#{s}/i, /\b#{s}/i].map do |regex|
|
134
|
+
a.select {|x| x.gsub(/\[[^\]]*\]/,'').gsub(/\([^\)]*\)/,'') =~ regex}
|
135
|
+
end
|
136
|
+
(a1 + a2)
|
137
|
+
end
|
111
138
|
|
112
|
-
return
|
113
|
-
.
|
139
|
+
return a3.sort_by {|word| -h[word]}.map {|x| x.sub(/ +\|.*$/,'')}\
|
140
|
+
.uniq.take(limit)
|
114
141
|
|
115
142
|
end
|
116
143
|
|
@@ -123,4 +150,5 @@ class PhraseLookup
|
|
123
150
|
def save(filename='phrase_lookup.yaml')
|
124
151
|
@master.save filename
|
125
152
|
end
|
126
|
-
end
|
153
|
+
end
|
154
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phrase_lookup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,49 +10,53 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkxMTIwMTM0OTQxWhcN
|
15
|
+
MjAxMTE5MTM0OTQxWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDnocIe
|
17
|
+
ynp7xpDa6f+1R5habPc41uZOzQoXVrbCcOhmY9o5192YC7f+HBL+ebLdYdWFpSO5
|
18
|
+
MRtYzU5nmuCnAfY7L3KiVWSpf6s9sbPz9D5Rkt6PmCuuToPl2q0SZkdImRHH4+YP
|
19
|
+
IjMLZNVS9qPgEhj/iRH7eKyD/9AO7dO6yn3KGuJ9aQYmak1GD4NAh34jhT3nzuDf
|
20
|
+
IlWNlEfdqU3AJX15C+7Ai4ITTS6wzpbNNXlHYN6TKYYa1Kw3xo29FK8kHozK4NB7
|
21
|
+
GdlDSpm1EP4ag39ti7RlDyrs+zmGlazNr8FZv6h4TEsyaxN+VYr58QuikVf51HA9
|
22
|
+
U6pjVpQRI0PnVzvOQYMP+e4oZyGsiIjGfljxthu3LX4D331OQk1uAZ7+WWE2DUs5
|
23
|
+
kIFRRPvnen1ZlcA0OujWceNXEKrsMhdkfVNNjO5dgnqY8OMMdXU5Pgn/FHAGn8s7
|
24
|
+
7RG9RefAIAzUpi8v4a8p7B9A7T7Tcy5cthE5J2LBpDaBk31VgGwQnqcOWXcCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUOFRUBh27
|
26
|
+
Laf49pgbo0YHv7TA1n8wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAkG2HrpJKrfJYv9LzBMDW3ejjl2vlDRKWEXCQDZCA
|
29
|
+
hDVx7m5foGuON4yQuBvLl2qAn7M4TFYFB9twzFS9qhabr8syz/cnJslWDnhykVf4
|
30
|
+
TA3zQQyuzQWpMzPr4nO5dRy9ggm+WDJ2UThS0kTyV9BGeWqTXKUzWwlqI2nRxa+H
|
31
|
+
IlrX9Xu+Y9f8014sJ4PNmXydhK0qO39herMgjdhoHGdA7zP7u4i9c/diayRaEAI9
|
32
|
+
TcabuxBalabBraWkGnEAT2X33pnUusU01Uf4SUlA3+7JPKsQX3pXD9fvB1UoDjlq
|
33
|
+
2WxByXLsLaXyguSwnONHhJRg9BpzzaK6ovztQzenjYZMVG7TpoHcxa4kucpK+zxB
|
34
|
+
nn243c2e6s2GTK+PGlsJoSfxhIlxeQMfvi+Jkbtr1kNSu+SKFt1TkL8TaTdJ7CNj
|
35
|
+
okm7UBOgnw1k05vu6nv459XCUeIFRegIYJ+P+mI15c8WMWOSdLK7NoU3qYil6Pgd
|
36
|
+
VWIRHmtajxS0oRQe/0SeVorH
|
33
37
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
38
|
+
date: 2020-06-20 00:00:00.000000000 Z
|
35
39
|
dependencies:
|
36
40
|
- !ruby/object:Gem::Dependency
|
37
41
|
name: rxfhelper
|
38
42
|
requirement: !ruby/object:Gem::Requirement
|
39
43
|
requirements:
|
40
|
-
- - "~>"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '0.4'
|
43
44
|
- - ">="
|
44
45
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
46
|
+
version: 1.0.0
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.0'
|
46
50
|
type: :runtime
|
47
51
|
prerelease: false
|
48
52
|
version_requirements: !ruby/object:Gem::Requirement
|
49
53
|
requirements:
|
50
|
-
- - "~>"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '0.4'
|
53
54
|
- - ">="
|
54
55
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
56
|
+
version: 1.0.0
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '1.0'
|
56
60
|
description:
|
57
61
|
email: james@jamesrobertson.eu
|
58
62
|
executables: []
|
@@ -79,8 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
83
|
- !ruby/object:Gem::Version
|
80
84
|
version: '0'
|
81
85
|
requirements: []
|
82
|
-
|
83
|
-
rubygems_version: 2.6.13
|
86
|
+
rubygems_version: 3.0.3
|
84
87
|
signing_key:
|
85
88
|
specification_version: 4
|
86
89
|
summary: Returns a list of matching phrases from plain text
|
metadata.gz.sig
CHANGED
Binary file
|