uhferret 1.3.7 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e0263c46c6bccaedb5d65d53da7ea1cb831dbeda8efcfb16d667fa9247c7c2f
4
- data.tar.gz: '069214eb952ebf6f5eca4d13f892d800f857eacd6111613af7fb283403d12a6a'
3
+ metadata.gz: fb73eff8cfa4c17fc76e3896896e250eaa3c2205ab2bef5538448d3f7a7c0752
4
+ data.tar.gz: 1712fa066f7a7ea91ff126d5a3939ecfb602c9988c8b87f863fcc65feffb91b2
5
5
  SHA512:
6
- metadata.gz: a3f69ac8ecbd1c6e2d08230f92ae315d80ce0f8b806f0f84ded4b04b00d11643a1ed7a6fcf9ac4858594ffb5f026ae78a7e8c1d190aaa4d35743c9aabcf11064
7
- data.tar.gz: a2c7873ccf5f961e819fd75f6eb481daa1e66e96bf4a7bb08011c187abaa2b3af74b0a25adc75527c0581988db6ecfcabd687b1bcb18390741576f36e2f254ca
6
+ metadata.gz: b650a6127d9bdda65d6f37914760772662acc40f3bc962cab69d3424070914160712e0499a3461aa468423ae6437df6d35e7531825c5a338e4fee2229cf64ca2
7
+ data.tar.gz: 7e92f5b17c49fb8368386fa9725dda982f746805ade91f34e1f771525538d496f42d51a1ed00257481df38dead6416ca0a8f08e356f3d4aede0e7d91c428bacd
data/README.rdoc CHANGED
@@ -1,7 +1,8 @@
1
1
  = UHFerret
2
2
 
3
- homepage:: https://peterlane.netlify.org/ferret/
4
- source:: https://notabug.org/peterlane/uhferret-gem/releases
3
+ Available as:
4
+ - rubygem: https://rubygems.org/gems/uhferret
5
+ - source: https://codeberg.org/peterlane/uhferret-gem
5
6
 
6
7
  == Description
7
8
 
@@ -14,6 +15,9 @@ This library provides a Ruby wrapper around uhferret suitable for
14
15
  scripting, a command-line executable, 'uhferret', and a simple
15
16
  server version, 'uhferret-server'.
16
17
 
18
+ More about ferret and alternative implementations can be read on the
19
+ {ferret documentation}[https://peterlane.codeberg.page/ferret].
20
+
17
21
  NB: to install uhferret, Ruby must be able to compile and build C extensions.
18
22
 
19
23
  == Use
data/bin/uhferret-server CHANGED
@@ -49,7 +49,7 @@ begin
49
49
  options.parse!
50
50
 
51
51
  # Refuse to work if the folder already exists
52
- if File.exists? $base
52
+ if File.exist? $base
53
53
  puts "Folder #{$base} already exists"
54
54
  puts "Please empty the folder before starting the ferret server"
55
55
  exit!
data/lib/uhferret.rb CHANGED
@@ -17,8 +17,8 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with uhferret. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
- require 'uhferret_lib'
21
- require 'utils'
20
+ require "uhferret_lib"
21
+ require "utils"
22
22
 
23
23
  module UHFerret
24
24
 
data/lib/webferret.rb CHANGED
@@ -18,14 +18,13 @@
18
18
  # You should have received a copy of the GNU General Public License
19
19
  # along with uhferret. If not, see <http://www.gnu.org/licenses/>.
20
20
 
21
- require 'find'
22
- require 'uhferret'
23
- require 'utils'
24
- require 'webrick'
21
+ require "uhferret"
22
+ require "utils"
23
+ require "webrick"
25
24
  include WEBrick
26
25
 
27
- @@next_upload = 0 # global variable, keeps track of number of uploads, for naming folders
28
- @@next_report = 0 # global variable, keeps track of number of reports created
26
+ $next_upload = 0 # global variable, keeps track of number of uploads, for naming folders
27
+ $next_report = 0 # global variable, keeps track of number of reports created
29
28
 
30
29
  module UHFerret
31
30
 
@@ -35,7 +34,7 @@ module UHFerret
35
34
 
36
35
  # Returns the 'welcome page' html.
37
36
  def do_GET(req, res)
38
- res['Content-Type'] = "text/html"
37
+ res["Content-Type"] = "text/html"
39
38
  res.body = <<BODY
40
39
  <html><body><h1>Ferret Server</h1>
41
40
  <p>
@@ -125,7 +124,7 @@ BODY
125
124
  text_files = true
126
125
  Dir.chdir folder
127
126
  files = []
128
- Find.find(folder) do |filename|
127
+ Doc.glob(folder+"**/*") do |filename|
129
128
  next unless File.file?(filename) # ignore directories
130
129
  files << filename
131
130
  text_files = false if Utils.is_code?(filename)
@@ -144,10 +143,10 @@ BODY
144
143
  upload_dir = "Upload#{@@next_upload}" # create a unique folder for user's files
145
144
  @@next_upload += 1
146
145
 
147
- Dir.mkdir $base unless File.exists? $base
146
+ Dir.mkdir $base unless File.exist? $base
148
147
  Dir.mkdir "#{$base}/#{upload_dir}"
149
148
  upload_data = req.query["data"]
150
- filename = upload_data.filename.gsub(' ', "-") # replace spaces
149
+ filename = upload_data.filename.gsub(" ", "-") # replace spaces
151
150
  uploaded_file = "#{$base}/#{upload_dir}/#{filename}"
152
151
  File.open(uploaded_file, "wb") do |file| # do the actual upload of the data
153
152
  upload_data.each_data do |data|
@@ -164,10 +163,10 @@ BODY
164
163
  # do the computation of similarities
165
164
  # -- output to html table with given folder name, using file definition list
166
165
  `#{FERRET} #{is_text ? "-t" : "-c"} -w -f ferret-file-definitions.def > results.html`
167
- res['Content-Type'] = "text/html"
166
+ res["Content-Type"] = "text/html"
168
167
  res.body = "<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=#{$base}/#{upload_dir}/results.html\">"
169
168
  else
170
- res['Content-Type'] = "text/html"
169
+ res["Content-Type"] = "text/html"
171
170
  res.body = %{<html><body><h1>Error</h1>
172
171
  <p>You did not submit a valid zip file.</p>
173
172
  <p><a href="/ferret/home">Return to Ferret home page</a>.</p>
@@ -182,16 +181,16 @@ BODY
182
181
 
183
182
  # Handles the request to create a report in xml format.
184
183
  def do_GET(req, res)
185
- upload_dir = req.query['upload']
186
- file1 = req.query['file1'].gsub("%20", "\ ")
187
- file2 = req.query['file2'].gsub("%20", "\ ")
184
+ upload_dir = req.query["upload"]
185
+ file1 = req.query["file1"].gsub("%20", "\ ")
186
+ file2 = req.query["file2"].gsub("%20", "\ ")
188
187
  report_name = "#{upload_dir}/report#{@@next_report}.xml"
189
188
  @@next_report += 1
190
189
  Dir.chdir "#{upload_dir}"
191
190
 
192
191
  `#{FERRET} #{Utils.is_code?(file1) ? "-c" : "-t"} -x "#{report_name}" "#{file1}" "#{file2}"`
193
192
  write_style_sheet File.dirname(report_name)
194
- res['Content-Type'] = "text/html"
193
+ res["Content-Type"] = "text/html"
195
194
  res.body = "<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=#{report_name}\">"
196
195
  end
197
196
 
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uhferret
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Lane
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-10 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2025-12-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: webrick
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.9'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.9'
13
27
  description: "UHFerret is a copy-detection tool to analyse large sets of documents
14
28
  \nto find pairs of documents with substantial amounts of lexical copying. \nDocuments
15
29
  containing either natural language (e.g. English) or computer \nprograms (in C-family)
@@ -43,11 +57,13 @@ files:
43
57
  - lib/uhferret.rb
44
58
  - lib/utils.rb
45
59
  - lib/webferret.rb
46
- homepage: https://peterlane.netlify.app/ferret/
60
+ homepage: https://rubygems.org/gems/uhferret
47
61
  licenses:
48
- - GPL-3.0+
49
- metadata: {}
50
- post_install_message:
62
+ - GPL-3.0-only
63
+ metadata:
64
+ documentation_uri: https://rubydoc.info/gems/uhferret
65
+ source_code_uri: https://codeberg.org/peterlane/uhferret-gem
66
+ post_install_message:
51
67
  rdoc_options:
52
68
  - "-m"
53
69
  - README.rdoc
@@ -57,15 +73,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
73
  requirements:
58
74
  - - ">="
59
75
  - !ruby/object:Gem::Version
60
- version: '2.5'
76
+ version: '3.1'
61
77
  required_rubygems_version: !ruby/object:Gem::Requirement
62
78
  requirements:
63
79
  - - ">="
64
80
  - !ruby/object:Gem::Version
65
81
  version: '0'
66
82
  requirements: []
67
- rubygems_version: 3.1.4
68
- signing_key:
83
+ rubygems_version: 3.3.3
84
+ signing_key:
69
85
  specification_version: 4
70
86
  summary: UHFerret is a copy-detection tool.
71
87
  test_files: []