canivete 0.0.4 → 0.0.5

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/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