string_score 0.0.1 → 1.0.0

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/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ Original JS Implementation: https://github.com/joshaven/string_score (MIT)
2
+
3
+ Copyright (C) 2009-2011 Joshaven Potter
4
+ Copyright (C) 2010-2011 Yesudeep Mangalapill
5
+
6
+ This Ruby Implementation:
7
+
8
+ Copyright (c) 2011 Jim Lindley http://jimlindley.com/
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining
11
+ a copy of this software and associated documentation files (the
12
+ "Software"), to deal in the Software without restriction, including
13
+ without limitation the rights to use, copy, modify, merge, publish,
14
+ distribute, sublicense, and/or sell copies of the Software, and to
15
+ permit persons to whom the Software is furnished to do so, subject to
16
+ the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be
19
+ included in all copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ jlindley@Amp:~/Projects/string_score[master*]$ st
data/README.mdown CHANGED
@@ -3,3 +3,45 @@ String Score (Ruby)
3
3
 
4
4
  Port of https://github.com/joshaven/string_score from js to ruby.
5
5
 
6
+ It provides scores between 0 (no match) and 1 (exact match) for a comparison
7
+ string to the base string.
8
+
9
+
10
+ Compatibility
11
+ ---
12
+
13
+ Tested under Ruby 1.9.2 and Ruby 1.8.7.
14
+
15
+ Usage
16
+ ---
17
+
18
+ gem install string_score
19
+
20
+ scorer = StringScore.new("string to test against")
21
+ scorer.score("string to test")
22
+
23
+ Or, include it into String for a convenience method:
24
+
25
+
26
+ String.send(:include, StringScore)
27
+
28
+ # and then
29
+
30
+ "Hello World".score("hello")
31
+ "Hello World".score("Whirl", 0.5) # or for fuzzy
32
+
33
+ Copyright
34
+ ---
35
+
36
+ MIT License, see LICENSE file.
37
+
38
+ Credits
39
+ ---
40
+
41
+ Closely ported from the JS version, using roughly the same algorithm and
42
+ the same test suite for implementation.
43
+
44
+ JS Original Version at: https://github.com/joshaven/string_score
45
+ Copyright (C) 2009-2011 Joshaven Potter
46
+ Copyright (C) 2010-2011 Yesudeep Mangalapilly
47
+
data/lib/string_score.rb CHANGED
@@ -78,7 +78,7 @@ module StringScore
78
78
 
79
79
  end
80
80
 
81
- if string[current_index] == c
81
+ if string.slice(current_index, 1) == c
82
82
  character_score = 0.2 # exact case match
83
83
  else
84
84
  character_score = 0.1 # character but not case match
@@ -93,7 +93,8 @@ module StringScore
93
93
  end
94
94
 
95
95
  # acronym bonus
96
- if base_string[over_all_index - 1] == ' '
96
+ previous_index = over_all_index - 1
97
+ if base_string.slice(previous_index, 1) == ' '
97
98
  character_score += 0.8
98
99
  end
99
100
 
@@ -1,3 +1,3 @@
1
1
  module StringScore
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -14,12 +14,6 @@ RSpec::Matchers.define :be_less_than do |expected|
14
14
  end
15
15
  end
16
16
 
17
- RSpec::Matchers.define :be_about do |expected|
18
- match do |actual|
19
- expected.to_f.round(5) == actual.to_f.round(5) # to 3 decimal points
20
- end
21
- end
22
-
23
17
  describe StringScore do
24
18
 
25
19
  subject { StringScore.new('Hello World') }
@@ -98,7 +92,7 @@ describe StringScore do
98
92
 
99
93
  it "gives start of string bonuses" do
100
94
  "Mary Large".score('mar').should be_greater_than("Large Mary".score('mar'))
101
- "Silly Mary Large".score('mar').should be_about("Silly Large Mary".score('mar'))
95
+ "Silly Mary Large".score('mar').should == "Silly Large Mary".score('mar')
102
96
  end
103
97
 
104
98
 
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string_score
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 23
4
5
  prerelease:
5
- version: 0.0.1
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
6
11
  platform: ruby
7
12
  authors:
8
13
  - Jim Lindley
@@ -21,6 +26,11 @@ dependencies:
21
26
  requirements:
22
27
  - - ~>
23
28
  - !ruby/object:Gem::Version
29
+ hash: 27
30
+ segments:
31
+ - 2
32
+ - 5
33
+ - 0
24
34
  version: 2.5.0
25
35
  type: :development
26
36
  version_requirements: *id001
@@ -36,6 +46,7 @@ extra_rdoc_files: []
36
46
  files:
37
47
  - .gitignore
38
48
  - Gemfile
49
+ - LICENSE
39
50
  - README.mdown
40
51
  - Rakefile
41
52
  - lib/string_score.rb
@@ -56,12 +67,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
67
  requirements:
57
68
  - - ">="
58
69
  - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
59
73
  version: "0"
60
74
  required_rubygems_version: !ruby/object:Gem::Requirement
61
75
  none: false
62
76
  requirements:
63
77
  - - ">="
64
78
  - !ruby/object:Gem::Version
79
+ hash: 3
80
+ segments:
81
+ - 0
65
82
  version: "0"
66
83
  requirements: []
67
84