amatch 0.2.2 → 0.2.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.
data/CHANGES CHANGED
@@ -1,3 +1,5 @@
1
+ 2006-06-25 (0.2.3)
2
+ * Fixed agrep.rb to use the new API.
1
3
  2005-10-11 (0.2.2)
2
4
  * Fixed a typo in extconf.rb that prohibitted compiling on
3
5
  non-gcc compilers.
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
- # Rakefile for Amatch -*- ruby -*-
2
-
1
+ # vim: set et sw=2 ts=2:
3
2
  require 'rake/clean'
4
3
  require 'rake/testtask'
5
4
  require 'rake/gempackagetask'
@@ -17,7 +16,7 @@ PKG_FILES.exclude(/^doc/)
17
16
  task :default => :test
18
17
 
19
18
  desc "Run unit tests"
20
- task(:test => [:compile]) do
19
+ task :test => :compile do
21
20
  cd 'tests' do
22
21
  ruby %{-I../ext runner.rb}
23
22
  end
@@ -43,7 +42,6 @@ desc "Removing generated files"
43
42
  task :clean do
44
43
  rm_rf 'doc'
45
44
  cd 'ext' do
46
- rm_f 'amatch.o', :verbose => true
47
45
  ruby 'extconf.rb'
48
46
  sh "make distclean" if File.exist?('Makefile')
49
47
  end
@@ -111,4 +109,3 @@ Rake::GemPackageTask.new(spec) do |pkg|
111
109
  end
112
110
 
113
111
  task :release => [ :clean, :package ]
114
- # vim: set et sw=2 ts=2:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
@@ -1,13 +1,14 @@
1
1
  #! /usr/bin/env ruby
2
+ # vim: set et sw=2 ts=2:
2
3
  #
3
- ## $Id: agrep.rb,v 1.3 2005/04/24 21:11:06 flori Exp $
4
+ ## $Id: agrep.rb,v 1.5 2006/09/26 15:59:48 flori Exp $
4
5
  #
5
6
 
6
7
  require 'amatch'
7
8
  require 'getoptlong'
8
9
 
9
10
  def usage(msg, options)
10
- print msg, "\nUsage: #{File.basename($0)} pattern [FILE ...]\n\n"
11
+ puts msg, "Usage: #{File.basename($0)} [OPTIONS] PATTERN [FILE ...]", ""
11
12
  options.each do |o|
12
13
  puts " " + o[1] + ", " + o[0] + " " +
13
14
  (o[2] == GetoptLong::REQUIRED_ARGUMENT ? 'ARGUMENT' : '')
@@ -16,18 +17,14 @@ def usage(msg, options)
16
17
  exit 0
17
18
  end
18
19
 
19
- class MyAmatch < Amatch
20
- def l_search_relative(strings)
21
- if strings.is_a? Array
22
- l_search(strings).map { |x| x / pattern.size }
23
- else
24
- l_search(strings) / pattern.size
25
- end
20
+ class Amatch::Levenshtein
21
+ def search_relative(strings)
22
+ search(strings).to_f / pattern.size
26
23
  end
27
24
  end
28
25
 
29
26
  $distance = 1
30
- $mode = :l_search
27
+ $mode = :search
31
28
  begin
32
29
  parser = GetoptLong.new
33
30
  options = [
@@ -43,7 +40,7 @@ begin
43
40
  when 'distance'
44
41
  $distance = arg.to_f
45
42
  when 'relative'
46
- $mode = :l_search_relative
43
+ $mode = :search_relative
47
44
  when 'verbose'
48
45
  $verbose = 1
49
46
  when 'help'
@@ -55,7 +52,7 @@ rescue
55
52
  end
56
53
  pattern = ARGV.shift or usage('Pattern needed!', options)
57
54
 
58
- matcher = MyAmatch.new(pattern)
55
+ matcher = Amatch::Levenshtein.new(pattern)
59
56
  size = 0
60
57
  start = Time.new
61
58
  if ARGV.size > 0 then
@@ -64,12 +61,12 @@ if ARGV.size > 0 then
64
61
  size += File.size(filename)
65
62
  begin
66
63
  File.open(filename, 'r').each_line do |line|
67
- if matcher.__send__($mode, line) < $distance
64
+ if matcher.__send__($mode, line) <= $distance
68
65
  puts "#{filename}:#{line}"
69
66
  end
70
67
  end
71
68
  rescue
72
- STDERR.print "Failure at #{filename}: #{$!} => Skipping!\n"
69
+ STDERR.puts "Failure at #{filename}: #{$!} => Skipping!"
73
70
  end
74
71
  end
75
72
  else
@@ -84,4 +81,3 @@ time = Time.new - start
84
81
  $verbose and STDERR.printf "%.3f secs running, scanned %.3f KB/s.\n",
85
82
  time, size / time / 1024
86
83
  exit 0
87
- # vim: set et sw=2 ts=2:
metadata CHANGED
@@ -3,73 +3,69 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: amatch
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.2
7
- date: 2005-11-10 00:00:00 +01:00
6
+ version: 0.2.3
7
+ date: 2006-09-26 00:00:00 +02:00
8
8
  summary: Approximate String Matching library
9
9
  require_paths:
10
- - ext
10
+ - ext
11
11
  email: flori@ping.de
12
12
  homepage: http://amatch.rubyforge.org
13
13
  rubyforge_project: amatch
14
- description: "Amatch is a library for approximate string matching and searching in strings.
15
- Several algorithms can be used to do this, and it's also possible to compute a
16
- similarity metric number between 0.0 and 1.0 for two given strings."
14
+ description: Amatch is a library for approximate string matching and searching in strings. Several algorithms can be used to do this, and it's also possible to compute a similarity metric number between 0.0 and 1.0 for two given strings.
17
15
  autorequire: amatch
18
16
  default_executable: agrep.rb
19
17
  bindir: bin
20
18
  has_rdoc: true
21
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
22
20
  requirements:
23
- -
24
- - ">"
25
- - !ruby/object:Gem::Version
26
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
27
24
  version:
28
25
  platform: ruby
29
26
  signing_key:
30
27
  cert_chain:
31
28
  authors:
32
- - Florian Frank
29
+ - Florian Frank
33
30
  files:
34
- - InstalledFiles
35
- - bin
36
- - install.rb
37
- - GPL
38
- - ext
39
- - Rakefile
40
- - VERSION
41
- - tests
42
- - foo.rb
43
- - CHANGES
44
- - config.save
45
- - README.en
46
- - bin/agrep.rb
47
- - ext/pair.h
48
- - ext/extconf.rb
49
- - ext/amatch.bundle
50
- - ext/pair.c
51
- - ext/tags
52
- - ext/MANIFEST
53
- - ext/amatch.c
54
- - tests/test_longest_substring.rb
55
- - tests/test_hamming.rb
56
- - tests/test_sellers.rb
57
- - tests/test_levenshtein.rb
58
- - tests/test_pair_distance.rb
59
- - tests/runner.rb
60
- - tests/test_longest_subsequence.rb
31
+ - bin
32
+ - VERSION
33
+ - tests
34
+ - GPL
35
+ - README.en
36
+ - install.rb
37
+ - ext
38
+ - Rakefile
39
+ - CHANGES
40
+ - bin/agrep.rb
41
+ - tests/runner.rb
42
+ - tests/test_longest_substring.rb
43
+ - tests/test_levenshtein.rb
44
+ - tests/test_hamming.rb
45
+ - tests/test_sellers.rb
46
+ - tests/test_pair_distance.rb
47
+ - tests/test_longest_subsequence.rb
48
+ - ext/tags
49
+ - ext/pair.h
50
+ - ext/extconf.rb
51
+ - ext/MANIFEST
52
+ - ext/pair.c
53
+ - ext/amatch.c
61
54
  test_files:
62
- - tests/runner.rb
55
+ - tests/runner.rb
63
56
  rdoc_options:
64
- - "--title"
65
- - "Amatch -- Approximate Matching"
66
- - "--main"
67
- - Amatch
68
- - "--line-numbers"
57
+ - --title
58
+ - Amatch -- Approximate Matching
59
+ - --main
60
+ - Amatch
61
+ - --line-numbers
69
62
  extra_rdoc_files: []
63
+
70
64
  executables:
71
- - agrep.rb
65
+ - agrep.rb
72
66
  extensions:
73
- - ext/extconf.rb
67
+ - ext/extconf.rb
74
68
  requirements: []
75
- dependencies: []
69
+
70
+ dependencies: []
71
+
@@ -1,5 +0,0 @@
1
- /usr/local/stow/ruby/bin/
2
- /usr/local/stow/ruby/bin/CVS
3
- /usr/local/stow/ruby/bin/CVS
4
- /usr/local/stow/ruby/bin/CVS
5
- /usr/local/stow/ruby/lib/ruby/site_ruby/1.8/i686-linux/.
@@ -1,12 +0,0 @@
1
- bin-dir=$prefix/bin
2
- site-ruby=$prefix/lib/ruby/site_ruby/1.8
3
- prefix=/usr/local/stow/ruby
4
- ruby-path=/usr/local/stow/ruby/bin/ruby
5
- make-prog=make
6
- rb-dir=$site-ruby
7
- without-ext=no
8
- ruby-prog=/usr/local/stow/ruby/bin/ruby
9
- site-ruby-common=$prefix/lib/ruby/site_ruby
10
- std-ruby=$prefix/lib/ruby/1.8
11
- data-dir=$prefix/share
12
- so-dir=$prefix/lib/ruby/site_ruby/1.8/i686-linux
Binary file
data/foo.rb DELETED
@@ -1,9 +0,0 @@
1
- $:.unshift 'ext'
2
-
3
- require 'amatch'
4
-
5
- a = "A" * "lost this fantasy, this fantasy, this fantasy, this fantasy, this fantasy, this fantasy\r\n\r\nGood love Neat work\r\n\r\nSuper job Fancy work\r\n\r\nPants job Cool work".size
6
- b = "A" * "lost\r\n\r\nGood love Neat work\r\n\r\nSuper job Fancy work\r\n\r\nPants job Cool work".size
7
- #p a.levenshtein_similar(b)
8
- amatch = Amatch::Levenshtein.new(a)
9
- amatch.similar(b)