canivete 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source :rubygems
2
+
3
+ gem 'rake'
4
+ gem 'text'
5
+
6
+ group :test do
7
+ gem 'rspec'
8
+ end
data/Rakefile CHANGED
@@ -5,8 +5,8 @@ require 'rake/gempackagetask'
5
5
  require 'spec/rake/spectask'
6
6
 
7
7
  GEM = "canivete"
8
- GEM_VERSION = "0.0.4"
9
- SUMMARY = "ruby future swiss knife"
8
+ GEM_VERSION = "0.0.5"
9
+ SUMMARY = "ruby not-so swiss knife"
10
10
  AUTHOR = "Douglas Campos"
11
11
  EMAIL = "douglas@theros.info"
12
12
  HOMEPAGE = "http://qmx.me"
@@ -22,6 +22,7 @@ spec = Gem::Specification.new do |s|
22
22
  s.author = AUTHOR
23
23
  s.email = EMAIL
24
24
  s.homepage = HOMEPAGE
25
+ s.add_dependency "text", "0.2.0"
25
26
 
26
27
  end
27
28
 
@@ -1 +1,2 @@
1
1
  require 'canivete/deprecate'
2
+ require 'canivete/similarity'
@@ -0,0 +1,21 @@
1
+ require 'text'
2
+ module Canivete
3
+ module Similarity
4
+ # return the similarity rate between two strings, ranging from 0.0 to 1.0
5
+ def similarity_rate(target_string, options = {:ignore_case => true})
6
+ src = self.dup
7
+ tgt = target_string.dup
8
+
9
+ if options[:ignore_case]
10
+ src.downcase!
11
+ tgt.downcase!
12
+ end
13
+
14
+ return 0 if (src.length == 0 && tgt.length != 0)
15
+ return 1 if (src.length == 0 && tgt.length == 0)
16
+ distance = Text::Levenshtein.distance(src, tgt)
17
+ rate = 1 - (distance/src.length.to_f) unless src.length == 0
18
+ rate < 0.0 ? 0.0 : rate
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canivete
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ hash: 21
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 5
10
+ version: 0.0.5
5
11
  platform: ruby
6
12
  authors:
7
13
  - Douglas Campos
@@ -9,10 +15,25 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-04-28 00:00:00 -03:00
18
+ date: 2010-08-13 00:00:00 -03:00
13
19
  default_executable:
14
- dependencies: []
15
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: text
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 23
30
+ segments:
31
+ - 0
32
+ - 2
33
+ - 0
34
+ version: 0.2.0
35
+ type: :runtime
36
+ version_requirements: *id001
16
37
  description:
17
38
  email: douglas@theros.info
18
39
  executables: []
@@ -23,7 +44,9 @@ extra_rdoc_files: []
23
44
 
24
45
  files:
25
46
  - lib/canivete/deprecate.rb
47
+ - lib/canivete/similarity.rb
26
48
  - lib/canivete.rb
49
+ - Gemfile
27
50
  - README.markdown
28
51
  - Rakefile
29
52
  has_rdoc: true
@@ -36,23 +59,29 @@ rdoc_options: []
36
59
  require_paths:
37
60
  - lib
38
61
  required_ruby_version: !ruby/object:Gem::Requirement
62
+ none: false
39
63
  requirements:
40
64
  - - ">="
41
65
  - !ruby/object:Gem::Version
66
+ hash: 3
67
+ segments:
68
+ - 0
42
69
  version: "0"
43
- version:
44
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
45
72
  requirements:
46
73
  - - ">="
47
74
  - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
48
78
  version: "0"
49
- version:
50
79
  requirements: []
51
80
 
52
81
  rubyforge_project:
53
- rubygems_version: 1.3.5
82
+ rubygems_version: 1.3.7
54
83
  signing_key:
55
84
  specification_version: 3
56
- summary: ruby future swiss knife
85
+ summary: ruby not-so swiss knife
57
86
  test_files: []
58
87