clindex 2.0.0 → 2.0.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/src/index.rb +60 -56
  3. metadata +21 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f19bf954833913173349da16acdd7e034b7673bb86b96114df4c2563ab20e0f9
4
- data.tar.gz: 3c5fd6dc3d4b31a72be04826e03eab52313d9336e5e3fbacc4566f5d7a90d970
3
+ metadata.gz: f19c672983f0cb3dca28cc030abb2b67629f254f0c1f7ff9d28eed1d4e5a6658
4
+ data.tar.gz: 600dc6c4592d6ba37123f2e4f6335100c6fff84b4389cc090678567ffe5f9e8d
5
5
  SHA512:
6
- metadata.gz: e30b4c1698b16a41d7f96030d7ed57f94a38261e30346006a6c5506af5fdf59306aa4d3e00690088ff4497e3f9c8b07e42d6239216be0a1d404f971143527d86
7
- data.tar.gz: c13c5ec5ceabf14f4b0158fcf093adf330692f380c44e00e7c03f0098616ed2d9f41554149a90a5a5556324c32a4e226adf3eeafc507c2eac40142cc88e9677b
6
+ metadata.gz: ff793d34f4cc2e549319c224bd92dee260742a9e99190212a4a557bb95429eadc1225b571490da4e8eb7f9543b18c9fc0f2ce935cb588088ffdf7cfd58f99dc5
7
+ data.tar.gz: 5e2e63bfbc5ccc279b7e7b06b429b51857f953d19eaab327e5c799a8a52354270ecca671e337191764327bb77e63e24049eb901795853fb37cf70caaeba7b99c
data/src/index.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'drb'
2
4
  require 'rubygems'
3
5
  gem 'clutil'
@@ -12,10 +14,10 @@ class ClIndex
12
14
  WAIT = true
13
15
  NO_WAIT = false
14
16
 
15
- def initialize(verboseServer=false)
17
+ def initialize(verbose_server = false)
16
18
  @index = {}
17
- @lockMgr = ClIndexLockMgr.new
18
- @verboseServer = verboseServer
19
+ @lock_mgr = ClIndexLockMgr.new
20
+ @verbose_server = verbose_server
19
21
  end
20
22
 
21
23
  def assign(src)
@@ -25,16 +27,16 @@ class ClIndex
25
27
  # refactor with do_read?
26
28
  def do_edit(wait)
27
29
  locked = lock(ClIndexLockMgr::EDIT, wait)
28
- if locked
29
- begin
30
- yield if block_given?
31
- ensure
32
- unlock(ClIndexLockMgr::EDIT)
33
- end
30
+ return unless locked
31
+
32
+ begin
33
+ yield if block_given?
34
+ ensure
35
+ unlock(ClIndexLockMgr::EDIT)
34
36
  end
35
37
  end
36
38
 
37
- def add(term, reference, wait=NO_WAIT)
39
+ def add(term, reference, wait = NO_WAIT)
38
40
  success = false
39
41
  do_edit(wait) {
40
42
  @index[term] = [] if @index[term].nil?
@@ -45,11 +47,11 @@ class ClIndex
45
47
  success
46
48
  end
47
49
 
48
- def remove(reference, wait=NO_WAIT)
50
+ def remove(reference, wait = NO_WAIT)
49
51
  success = false
50
52
  do_edit(wait) {
51
- @index.each_pair do |term, refArray|
52
- @index[term].delete(reference) if refArray.include?(reference)
53
+ @index.each_pair do |term, ref_array|
54
+ @index[term].delete(reference) if ref_array.include?(reference)
53
55
  @index.delete(term) if @index[term].empty?
54
56
  end
55
57
  success = true
@@ -61,11 +63,11 @@ class ClIndex
61
63
  # wait (defaults to false). If wait is false and a blocking action
62
64
  # is preventing saving, the call returns immediately. If wait is true,
63
65
  # save waits for the blocking action to complete before continuing.
64
- def save(filename='index.dat', wait=NO_WAIT)
66
+ def save(filename = 'index.dat', wait = NO_WAIT)
65
67
  locked = lock(ClIndexLockMgr::SAVE, wait)
66
68
  if locked
67
69
  begin
68
- File.open(filename, File::CREAT|File::TRUNC|File::RDWR) do |f|
70
+ File.open(filename, File::CREAT | File::TRUNC | File::RDWR) do |f|
69
71
  Marshal.dump(@index, f)
70
72
  end
71
73
  ensure
@@ -75,7 +77,7 @@ class ClIndex
75
77
  locked
76
78
  end
77
79
 
78
- def load(filename='index.dat', wait=NO_WAIT)
80
+ def load(filename = 'index.dat', wait = NO_WAIT)
79
81
  locked = lock(ClIndexLockMgr::LOAD, wait)
80
82
  if locked
81
83
  begin
@@ -89,14 +91,14 @@ class ClIndex
89
91
  locked
90
92
  end
91
93
 
92
- def search(term, hits, wait=NO_WAIT)
93
- puts 'searching...' if @verboseServer
94
+ def search(term, hits, wait = NO_WAIT)
95
+ puts 'searching...' if @verbose_server
94
96
  success = false
95
97
  do_read(wait) {
96
98
  success = true
97
99
  terms = @index.keys.grep(/#{term}/i)
98
- terms.each do |thisTerm|
99
- hits << @index[thisTerm]
100
+ terms.each do |this_term|
101
+ hits << @index[this_term]
100
102
  end
101
103
  hits = hits.flatten.uniq.sort
102
104
  }
@@ -105,30 +107,30 @@ class ClIndex
105
107
 
106
108
  def do_read(wait)
107
109
  locked = lock(ClIndexLockMgr::READ, wait)
108
- if locked
109
- begin
110
- yield if block_given?
111
- ensure
112
- unlock(ClIndexLockMgr::READ)
113
- end
110
+ return unless locked
111
+
112
+ begin
113
+ yield if block_given?
114
+ ensure
115
+ unlock(ClIndexLockMgr::READ)
114
116
  end
115
117
  end
116
118
 
117
- def all_terms(reference, wait=NO_WAIT)
119
+ def all_terms(reference, wait = NO_WAIT)
118
120
  all = []
119
121
  do_read(wait) {
120
- @index.each do |term, refArray|
121
- all << term if refArray.include?(reference)
122
+ @index.each do |term, ref_array|
123
+ all << term if ref_array.include?(reference)
122
124
  end
123
125
  }
124
126
  all
125
127
  end
126
128
 
127
- def reference_exists?(reference, wait=NO_WAIT)
129
+ def reference_exists?(reference, wait = NO_WAIT)
128
130
  exists = false
129
131
  do_read(wait) {
130
- @index.each do |term, refArray|
131
- if refArray.include? reference
132
+ @index.each do |_, ref_array|
133
+ if ref_array.include? reference
132
134
  exists = true
133
135
  break
134
136
  end
@@ -137,36 +139,36 @@ class ClIndex
137
139
  exists
138
140
  end
139
141
 
140
- def term_exists?(term, wait=NO_WAIT)
142
+ def term_exists?(term, wait = NO_WAIT)
141
143
  exists = false
142
144
  do_read(wait) {
143
- exists = @index.keys.include?(term)
145
+ exists = @index.key?(term)
144
146
  }
145
147
  exists
146
148
  end
147
149
 
148
- def lock(lockType, wait=NO_WAIT)
149
- @lockMgr.lock(lockType, wait)
150
+ def lock(lock_type, wait = NO_WAIT)
151
+ @lock_mgr.lock(lock_type, wait)
150
152
  end
151
153
 
152
- def unlock(lockType)
153
- @lockMgr.unlock(lockType)
154
+ def unlock(lock_type)
155
+ @lock_mgr.unlock(lock_type)
154
156
  end
155
157
  end
156
158
 
157
159
  class ThreadSafeArray
158
160
  def initialize
159
161
  @mutex = Mutex.new
160
- @internalArray = []
162
+ @internal_array = []
161
163
  end
162
164
 
163
165
  def to_ary
164
- @internalArray
166
+ @internal_array
165
167
  end
166
168
 
167
169
  def method_missing(method, *args, &block)
168
170
  @mutex.synchronize do
169
- @internalArray.send(method, *args, &block)
171
+ @internal_array.send(method, *args, &block)
170
172
  end
171
173
  end
172
174
  end
@@ -190,42 +192,44 @@ class ClIndexLockMgr
190
192
  @mutex = Mutex.new
191
193
  end
192
194
 
193
- def lock_approved(lockType)
195
+ def lock_approved(lock_type)
194
196
  result = true
195
197
  @allowable.each_pair do |locked, allowable|
196
- if @current.include?(locked) && !allowable.include?(lockType)
198
+ if @current.include?(locked) && !allowable.include?(lock_type)
197
199
  result = false
198
200
  end
199
- break if !result
201
+ break unless result
200
202
  end
201
203
  result
202
204
  end
203
205
 
204
- def lock(lockType, wait=false)
206
+ def lock(lock_type, wait = false)
207
+ approved = nil
205
208
  if wait
206
- begin
207
- approved = lock_approved(lockType)
208
- end until approved
209
+ loop do
210
+ approved = lock_approved(lock_type)
211
+ break if approved
212
+ end
209
213
  else
210
- approved = lock_approved(lockType)
214
+ approved = lock_approved(lock_type)
211
215
  end
212
- @current << lockType if approved
216
+ @current << lock_type if approved
213
217
  approved
214
218
  end
215
219
 
216
- def unlock(lockType)
217
- @current.delete(lockType)
220
+ def unlock(lock_type)
221
+ @current.delete(lock_type)
218
222
  end
219
223
  end
220
224
 
221
- def launch_server(port='9110')
222
- idxServer = ClIndex.new(true)
225
+ def launch_server(port = '9110')
226
+ idx_server = ClIndex.new(true)
223
227
  puts "ClIndex launching on localhost:#{port}..."
224
- DRb.start_service("druby://localhost:#{port}", idxServer)
228
+ DRb.start_service("druby://localhost:#{port}", idx_server)
225
229
  DRb.thread.join
226
230
  end
227
231
 
228
- if __FILE__ == $0
232
+ if $0 == __FILE__
229
233
  if if_switch('-s')
230
234
  port = get_switch('-p')
231
235
  if port
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clindex
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - chrismo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-03 00:00:00.000000000 Z
11
+ date: 2023-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clutil
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: A generic index DRb server. The core index is a hash, each key is an
42
56
  individual term, each value is an array of references for that term. Searches the
43
57
  index with a simple regexp grep against the hash keys to return a single array of
@@ -53,13 +67,13 @@ files:
53
67
  homepage: https://github.com/chrismo/clindex
54
68
  licenses: []
55
69
  metadata: {}
56
- post_install_message:
70
+ post_install_message:
57
71
  rdoc_options: []
58
72
  require_paths:
59
73
  - src
60
74
  required_ruby_version: !ruby/object:Gem::Requirement
61
75
  requirements:
62
- - - "~>"
76
+ - - ">="
63
77
  - !ruby/object:Gem::Version
64
78
  version: '2.4'
65
79
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -68,9 +82,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
82
  - !ruby/object:Gem::Version
69
83
  version: '0'
70
84
  requirements: []
71
- rubyforge_project:
72
- rubygems_version: 2.7.6
73
- signing_key:
85
+ rubygems_version: 3.3.26
86
+ signing_key:
74
87
  specification_version: 4
75
88
  summary: cLabs Index
76
89
  test_files: []