moss_ruby 1.1.2 → 1.1.3

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/lib/moss_ruby.rb +15 -17
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7501061523c707fa401f9a21744c3b9689b61eed
4
- data.tar.gz: 0480f03c83f40c227e96897bbd26cf5b6a7a0b11
3
+ metadata.gz: ede898a27039418a249e377bbefcb25b31dfc8c5
4
+ data.tar.gz: ff6da3353d78254d07b39bdb28a1cc3f976e7f49
5
5
  SHA512:
6
- metadata.gz: 100549f657224335d56c6f2752cb65ea6cde75aa5fff8d7b498fdace12a5bbf1aff8ce20c3d3ce9033a1869bf9920f12bbb6cda72ae2e64a8af4215799f6ee24
7
- data.tar.gz: 91cd8e2fe59e97351d1a27bbb56e115336facfc24de4cb872589ba65a338e55c54688ca9f5f1e8ec5ccb4b82d44b08b265410ec6942e47084a261bad2dcaf6e5
6
+ metadata.gz: 2e44f5f1cefa7a02abf4935da2101ee1ca2d3e53875b4f8cfdb902cfbc6d8994f43562b47b2ff856ad23561e9134536030c87d3f5aa3785a64b92f26f021a9df
7
+ data.tar.gz: d1d3173ace55411467830c4b9f0bd560e96e0d6928b0ab8efc8cb67c5b18a750fdd5018e29defccd3ac39f067793ba4e2d3a6610f632d948490acd741ccae9a1
@@ -61,15 +61,13 @@ class MossRuby
61
61
  end
62
62
 
63
63
  def upload_file (moss_server, file, id = 0)
64
- filename = file.strip.tap do |name|
65
- name.gsub! /[^\w\-\/.]/, '_'
66
- end
64
+ filename = file.strip.encode('UTF-8', invalid: :replace, undef: :replace, replace: '').gsub /[^\w\-\/.]/, '_'
67
65
 
68
- content = IO.read(filename)
66
+ content = IO.read(file)
69
67
  size = content.bytes.length
70
68
 
71
- if size > 0
72
- moss_server.write "file #{id} #{@options[:language]} #{size} #{file}\n"
69
+ if size > 0
70
+ moss_server.write "file #{id} #{@options[:language]} #{size} #{filename}\n"
73
71
  moss_server.write content
74
72
  end
75
73
  end
@@ -77,7 +75,7 @@ class MossRuby
77
75
  def check(files_dict, callback=nil)
78
76
  # Chech that the files_dict contains valid filenames
79
77
  files_dict[:base_files].each do |file_search|
80
- if Dir.glob(file_search, File::FNM_CASEFOLD).length == 0
78
+ if Dir.glob(file_search).length == 0
81
79
  raise "Unable to locate base file(s) matching #{file_search}"
82
80
  end
83
81
  end
@@ -87,7 +85,7 @@ class MossRuby
87
85
  end
88
86
 
89
87
  files_dict[:files].each do |file_search|
90
- if Dir.glob(file_search, File::FNM_CASEFOLD).length == 0
88
+ if Dir.glob(file_search).length == 0
91
89
  raise "Unable to locate base file(s) matching #{file_search}"
92
90
  end
93
91
  end
@@ -118,7 +116,7 @@ class MossRuby
118
116
  processing = files_dict[:base_files]
119
117
  processing.each do |file_search|
120
118
  callback.call(" - Sending base files #{count} of #{processing.count} - #{file_search}") unless callback.nil?
121
- files = Dir.glob(file_search, File::FNM_CASEFOLD)
119
+ files = Dir.glob(file_search)
122
120
  file_count = 1
123
121
  files.each do |file|
124
122
  callback.call(" - Base file #{file_count} of #{files.count} - #{file}") unless callback.nil?
@@ -133,7 +131,7 @@ class MossRuby
133
131
  processing = files_dict[:files]
134
132
  processing.each do |file_search|
135
133
  callback.call(" - Sending files #{count} of #{processing.count} - #{file_search}") unless callback.nil?
136
- files = Dir.glob(file_search, File::FNM_CASEFOLD)
134
+ files = Dir.glob(file_search)
137
135
  file_count = 1
138
136
  files.each do |file|
139
137
  callback.call(" - File #{idx} = #{file_count} of #{files.count} - #{file}") unless callback.nil?
@@ -190,22 +188,22 @@ class MossRuby
190
188
 
191
189
  data[0] = read_data match_file[0]
192
190
  data[1] = read_data match_file[1]
193
-
191
+
194
192
  callback.call(" - adding #{match} result") unless callback.nil?
195
- result << [
193
+ result << [
196
194
  {
197
- filename: data[0][:filename],
195
+ filename: data[0][:filename],
198
196
  html: strip_a("<PRE>#{data[0][:html]}</PRE>"),
199
197
  pct: Integer(top[:pct0]),
200
198
  url: match_url,
201
199
  part_url: "#{uri}/match#{id}-0.html"
202
200
  },
203
201
  {
204
- filename: data[1][:filename],
202
+ filename: data[1][:filename],
205
203
  html: strip_a("<PRE>#{data[1][:html]}</PRE>"),
206
204
  pct: Integer(top[:pct1]),
207
205
  url: match_url,
208
- part_url: "#{uri}/match#{id}-1.html"
206
+ part_url: "#{uri}/match#{id}-1.html"
209
207
  }
210
208
  ]
211
209
  end
@@ -225,7 +223,7 @@ class MossRuby
225
223
  page = open("#{uri}").read().encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '?')
226
224
  regex = /<TR><TD><A HREF=".*?match(?<match_id>\d+).html">.*\((?<pct0>\d+)%\)<\/A>\n.*?<TD><A.*?((?<pct0>\d+)%\))/i
227
225
  # puts "scanning page"
228
- page.scan(regex).each do | match |
226
+ page.scan(regex).each do | match |
229
227
  id, pct0, pct1 = match
230
228
  # puts "#{id}, #{pct0}, #{pct1}"
231
229
  if Integer(pct0) >= min_pct || Integer(pct1) >= min_pct
@@ -251,4 +249,4 @@ class MossRuby
251
249
  regex = /<TH>(?<filename0>\S+)\s\((?<pct0>\d+)%\).*<TH>(?<filename1>\S+)\s\((?<pct1>\d+)%\)/xm
252
250
  top_file.match(regex)
253
251
  end
254
- end
252
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moss_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Cain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-05 00:00:00.000000000 Z
11
+ date: 2016-07-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Moss-ruby is an unofficial ruby gem for the Moss system for Detecting
14
14
  Software Plagiarism (http://theory.stanford.edu/~aiken/moss/)