highscore 0.5.3 → 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/History.txt +6 -0
- data/README.md +31 -20
- data/Rakefile +30 -14
- data/bin/highscore +5 -0
- data/lib/highscore.rb +16 -48
- data/lib/highscore/content.rb +39 -6
- data/lib/highscore/string.rb +2 -0
- data/test/highscore/test_blacklist.rb +2 -4
- data/test/highscore/test_content.rb +39 -5
- data/test/highscore/test_keyword.rb +2 -4
- data/test/highscore/test_keywords.rb +2 -5
- data/test/highscore/test_multiple_blacklists.rb +47 -0
- data/test/highscore/test_string.rb +2 -4
- data/test/highscore/test_whitelist.rb +2 -4
- data/test/highscore/test_wordlist.rb +2 -4
- data/test/test_highscore.rb +19 -0
- data/version.txt +1 -1
- metadata +26 -16
- data/.gitignore +0 -12
- data/.travis.yml +0 -12
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 1.0.0 / 2013-02-02
|
2
|
+
|
3
|
+
* added per-language support for black- and whitelists (thanks to bobjflong)
|
4
|
+
* added support for language recognition
|
5
|
+
* fixed tokenization for UTF-8 strings (this is broken in Ruby 1.8.x!) (thanks to pdg)
|
6
|
+
|
1
7
|
== 0.5.2 / 2012-02-25
|
2
8
|
|
3
9
|
* added (optional) support for word stemming using the fast-stemmer gem
|
data/README.md
CHANGED
@@ -1,24 +1,21 @@
|
|
1
|
-
highscore
|
2
|
-
===========
|
1
|
+
# highscore
|
3
2
|
|
4
3
|
Easily find and rank keywords in long texts.
|
5
4
|
|
6
|
-
[](http://travis-ci.org/domnikl/highscore)
|
5
|
+
[](http://travis-ci.org/domnikl/highscore) [](https://codeclimate.com/github/domnikl/highscore)
|
7
6
|
|
8
|
-
Features
|
9
|
-
--------
|
7
|
+
## Features
|
10
8
|
|
11
9
|
* configurable to rank different types of words different (uppercase, long words, etc.)
|
12
10
|
* rate based on amount (%) of vowels and consonants in a string
|
13
11
|
* directly get keywords from String objects
|
14
|
-
* blacklist words via a plain text file, String or an Array of words
|
12
|
+
* blacklist words via a plain text file, String or an Array of words (per language if needed)
|
15
13
|
* optionally, configure a whitelist and only words from that list will get ranked
|
16
|
-
* use word stemming (requires the fast-stemmer gem,
|
14
|
+
* use word stemming (requires the `fast-stemmer` gem, or the `stemmer` gem)
|
17
15
|
* merge together Keywords from multiple sources
|
18
16
|
* contains a CLI tool that operates on STDIN/OUT and is configurable via parameters
|
19
17
|
|
20
|
-
Examples
|
21
|
-
--------
|
18
|
+
## Examples
|
22
19
|
|
23
20
|
```ruby
|
24
21
|
text = Highscore::Content.new "foo bar"
|
@@ -64,8 +61,7 @@ end
|
|
64
61
|
|
65
62
|
Have a look at bin/highscore, you can run highscore on your CLI and feed it with text on STDIN.
|
66
63
|
|
67
|
-
Using a custom blacklist to ignore keywords
|
68
|
-
-------------------------------------------
|
64
|
+
## Using a custom blacklist to ignore keywords
|
69
65
|
|
70
66
|
```ruby
|
71
67
|
# setting single words
|
@@ -86,8 +82,7 @@ blacklist = Highscore::Blacklist.load_default_file
|
|
86
82
|
content = Highscore::Content.new "a string", blacklist
|
87
83
|
```
|
88
84
|
|
89
|
-
Using a whitelist instead of ranking all words
|
90
|
-
----------------------------------------------
|
85
|
+
## Using a whitelist instead of ranking all words
|
91
86
|
|
92
87
|
```ruby
|
93
88
|
# construct and inject it just like a blacklist
|
@@ -95,22 +90,38 @@ whitelist = Highscore::Whitelist.load %w{these are valid keywords}
|
|
95
90
|
content = Highscore::Content.new "invalid words", whitelist
|
96
91
|
```
|
97
92
|
|
98
|
-
|
99
|
-
|
93
|
+
## Multiple languages
|
94
|
+
|
95
|
+
```ruby
|
96
|
+
# Load a default blacklist
|
97
|
+
blacklist_default = Highscore::Blacklist.load "mister"
|
98
|
+
text = Highscore::Content.new "oui mister interesting", blacklist_default
|
99
|
+
text.keywords.top(3).join " "
|
100
|
+
|
101
|
+
# Prints "interesting oui"
|
102
|
+
|
103
|
+
# Load a rudimentary blacklist for French
|
104
|
+
blacklist_francais = Highscore::Blacklist.load "oui"
|
105
|
+
text.add_wordlist blacklist_francais, "fr"
|
106
|
+
text.keywords(:lang => :fr).top(3).join " "
|
107
|
+
|
108
|
+
# Prints "interesting mister"
|
109
|
+
```
|
110
|
+
|
111
|
+
## Install
|
100
112
|
|
101
113
|
* `[sudo] gem install highscore`
|
102
114
|
|
103
|
-
To use word stemming, you need to have the fast-stemmer gem installed:
|
115
|
+
To use word stemming, you need to have the `fast-stemmer` (C extension) or `stemmer` gem installed:
|
104
116
|
|
105
117
|
* `[sudo] gem install fast-stemmer`
|
118
|
+
* `[sudo] gem install stemmer`
|
106
119
|
|
107
|
-
Author
|
108
|
-
------
|
120
|
+
## Author
|
109
121
|
|
110
122
|
Original author: Dominik Liebler <liebler.dominik@googlemail.com>
|
111
123
|
|
112
|
-
License
|
113
|
-
-------
|
124
|
+
## License
|
114
125
|
|
115
126
|
(The MIT License)
|
116
127
|
|
data/Rakefile
CHANGED
@@ -1,18 +1,34 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'rake/testtask'
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
task :default => 'test'
|
5
|
+
|
6
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
7
|
+
require "highscore"
|
8
|
+
|
9
|
+
gem_name = "highscore-#{Highscore::VERSION}.gem"
|
8
10
|
|
9
|
-
|
10
|
-
task
|
11
|
+
namespace :gem do
|
12
|
+
task :clean do
|
13
|
+
system "rm -f *.gem"
|
14
|
+
end
|
15
|
+
|
16
|
+
task :build => [:clean, :test] do
|
17
|
+
system "gem build highscore.gemspec"
|
18
|
+
end
|
19
|
+
|
20
|
+
task :install => :build do
|
21
|
+
system "gem install #{gem_name}"
|
22
|
+
end
|
23
|
+
|
24
|
+
task :release => :build do
|
25
|
+
system "gem push #{gem_name}"
|
26
|
+
end
|
27
|
+
end
|
11
28
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
}
|
29
|
+
Rake::TestTask.new do |t|
|
30
|
+
t.libs = ["lib"]
|
31
|
+
t.warning = true
|
32
|
+
t.verbose = true
|
33
|
+
t.test_files = FileList['test/**/test_*.rb']
|
34
|
+
end
|
data/bin/highscore
CHANGED
data/lib/highscore.rb
CHANGED
@@ -1,60 +1,28 @@
|
|
1
|
+
require 'rubygems' if RUBY_VERSION !~ /^1\.9/
|
1
2
|
|
2
3
|
module Highscore
|
3
|
-
|
4
4
|
# :stopdoc:
|
5
5
|
LIBPATH = ::File.expand_path('..', __FILE__) + ::File::SEPARATOR
|
6
6
|
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
7
7
|
VERSION = ::File.read(PATH + 'version.txt').strip
|
8
8
|
# :startdoc:
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
24
|
-
return rv
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns the lpath for the module. If any arguments are given,
|
28
|
-
# they will be joined to the end of the path using
|
29
|
-
# <tt>File.join</tt>.
|
30
|
-
#
|
31
|
-
def self.path( *args )
|
32
|
-
rv = args.empty? ? PATH : ::File.join(PATH, args.flatten)
|
33
|
-
if block_given?
|
34
|
-
begin
|
35
|
-
$LOAD_PATH.unshift PATH
|
36
|
-
rv = yield
|
37
|
-
ensure
|
38
|
-
$LOAD_PATH.shift
|
39
|
-
end
|
10
|
+
def self.load_modules
|
11
|
+
modules = %w(
|
12
|
+
blacklist
|
13
|
+
content
|
14
|
+
keyword
|
15
|
+
keywords
|
16
|
+
string
|
17
|
+
whitelist
|
18
|
+
wordlist
|
19
|
+
)
|
20
|
+
|
21
|
+
modules.each do |m|
|
22
|
+
require ::File.expand_path('highscore/' + m, LIBPATH)
|
40
23
|
end
|
41
|
-
return rv
|
42
24
|
end
|
25
|
+
end
|
43
26
|
|
44
|
-
|
45
|
-
# directory below this file that has the same name as the filename passed
|
46
|
-
# in. Optionally, a specific _directory_ name can be passed in such that
|
47
|
-
# the _filename_ does not have to be equivalent to the directory.
|
48
|
-
#
|
49
|
-
def self.require_all_libs_relative_to( fname, dir = nil )
|
50
|
-
dir ||= ::File.basename(fname, '.*')
|
51
|
-
search_me = ::File.expand_path(
|
52
|
-
::File.join(::File.dirname(fname), dir, '**', '*.rb'))
|
53
|
-
|
54
|
-
Dir.glob(search_me).sort.each {|rb| require rb}
|
55
|
-
end
|
56
|
-
|
57
|
-
end # module Highscore
|
58
|
-
|
59
|
-
Highscore.require_all_libs_relative_to(__FILE__)
|
27
|
+
Highscore.load_modules
|
60
28
|
|
data/lib/highscore/content.rb
CHANGED
@@ -7,12 +7,14 @@ require 'rubygems'
|
|
7
7
|
module Highscore
|
8
8
|
class Content
|
9
9
|
attr_reader :content
|
10
|
+
attr_accessor :language_wordlists
|
10
11
|
|
11
12
|
# @param content String
|
12
13
|
# @param wordlist Highscore::Wordlist
|
13
14
|
def initialize(content, wordlist = nil)
|
14
15
|
@content = content
|
15
16
|
@whitelist = @blacklist = nil
|
17
|
+
@language_wordlists = {}
|
16
18
|
|
17
19
|
if wordlist.nil?
|
18
20
|
@blacklist = Highscore::Blacklist.load_default_file
|
@@ -31,9 +33,13 @@ module Highscore
|
|
31
33
|
:consonants => 0,
|
32
34
|
:ignore_short_words => true,
|
33
35
|
:ignore_case => false,
|
34
|
-
:word_pattern => /\
|
36
|
+
:word_pattern => /\p{Word}+/u,
|
35
37
|
:stemming => false
|
36
38
|
}
|
39
|
+
|
40
|
+
if RUBY_VERSION =~ /^1\.8/
|
41
|
+
@emphasis[:word_pattern] = /\w+/
|
42
|
+
end
|
37
43
|
end
|
38
44
|
|
39
45
|
# configure ranking
|
@@ -50,16 +56,32 @@ module Highscore
|
|
50
56
|
def set(key, value)
|
51
57
|
@emphasis[key.to_sym] = value
|
52
58
|
end
|
59
|
+
|
60
|
+
# add another wordlist, given a language
|
61
|
+
#
|
62
|
+
# @param language_wordlist Highscore::Wordlist
|
63
|
+
# @param language String
|
64
|
+
def add_wordlist(language_wordlist, language)
|
65
|
+
raise ArgumentError, "Not a valid Wordlist" unless language_wordlist.kind_of? Highscore::Wordlist
|
66
|
+
language_wordlists[language.to_sym] = language_wordlist
|
67
|
+
end
|
53
68
|
|
54
69
|
# get the ranked keywords
|
55
70
|
#
|
56
71
|
# @return Highscore::Keywords
|
57
|
-
def keywords
|
72
|
+
def keywords(opts = {})
|
73
|
+
used_wordlist = nil
|
74
|
+
if opts[:lang]
|
75
|
+
used_wordlist = language_wordlists[opts[:lang].to_sym]
|
76
|
+
else
|
77
|
+
used_wordlist = wordlist
|
78
|
+
end
|
79
|
+
|
58
80
|
@emphasis[:stemming] = use_stemming?
|
59
81
|
|
60
82
|
keywords = Keywords.new
|
61
83
|
|
62
|
-
Keywords.find_keywords(processed_content,
|
84
|
+
Keywords.find_keywords(processed_content, used_wordlist, word_pattern).each do |text|
|
63
85
|
text = text.to_s
|
64
86
|
text = text.stem if @emphasis[:stemming]
|
65
87
|
|
@@ -84,6 +106,14 @@ module Highscore
|
|
84
106
|
end
|
85
107
|
end
|
86
108
|
|
109
|
+
# guess the language of the content and return a symbol for it
|
110
|
+
# => done via whatlanguage gem
|
111
|
+
#
|
112
|
+
# @return Symbol
|
113
|
+
def language
|
114
|
+
@content.language
|
115
|
+
end
|
116
|
+
|
87
117
|
private
|
88
118
|
|
89
119
|
# processes the text content applying any necessary transformations
|
@@ -148,8 +178,6 @@ module Highscore
|
|
148
178
|
percent * @emphasis[:consonants]
|
149
179
|
end
|
150
180
|
|
151
|
-
private
|
152
|
-
|
153
181
|
# using stemming is only possible, if fast-stemmer is installed
|
154
182
|
# doesn't work for JRuby
|
155
183
|
def use_stemming?
|
@@ -158,7 +186,12 @@ module Highscore
|
|
158
186
|
require 'fast_stemmer'
|
159
187
|
true
|
160
188
|
rescue LoadError
|
161
|
-
|
189
|
+
begin
|
190
|
+
require 'stemmer'
|
191
|
+
true
|
192
|
+
rescue LoadError
|
193
|
+
false
|
194
|
+
end
|
162
195
|
end
|
163
196
|
else
|
164
197
|
false
|
data/lib/highscore/string.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
|
2
|
-
require "blacklist"
|
3
|
-
require "test/unit"
|
1
|
+
require File.dirname(__FILE__) + '/../test_highscore'
|
4
2
|
|
5
|
-
class TestBlacklist <
|
3
|
+
class TestBlacklist < Highscore::TestCase
|
6
4
|
def test_is_a_wordlist
|
7
5
|
blacklist = Highscore::Blacklist.new
|
8
6
|
assert blacklist.kind_of? Highscore::Wordlist
|
@@ -1,9 +1,10 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
$:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
|
2
3
|
require "content"
|
3
4
|
require "test/unit"
|
4
5
|
require 'rubygems'
|
5
6
|
|
6
|
-
class TestContent <
|
7
|
+
class TestContent < Highscore::TestCase
|
7
8
|
def setup
|
8
9
|
@text = "This is some text"
|
9
10
|
@content = Highscore::Content.new(@text)
|
@@ -32,6 +33,19 @@ class TestContent < Test::Unit::TestCase
|
|
32
33
|
assert_equal 1, content.keywords.length
|
33
34
|
end
|
34
35
|
|
36
|
+
def test_keywords_utf8
|
37
|
+
content = 'Schöne Grüße, caractères, русский'
|
38
|
+
|
39
|
+
content = Highscore::Content.new content
|
40
|
+
|
41
|
+
if RUBY_VERSION =~ /^1\.8/
|
42
|
+
# Ruby 1.8 doesn't support correct tokenization
|
43
|
+
assert_equal 3, content.keywords.length
|
44
|
+
else
|
45
|
+
assert_equal 4, content.keywords.length
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
35
49
|
def test_vowels_and_consonants
|
36
50
|
keywords = 'foobar RubyGems'.keywords do
|
37
51
|
set :vowels, 2
|
@@ -77,9 +91,22 @@ class TestContent < Test::Unit::TestCase
|
|
77
91
|
end
|
78
92
|
|
79
93
|
def test_stemming
|
94
|
+
loaded_stemmer = false
|
95
|
+
|
80
96
|
begin
|
81
97
|
require 'fast_stemmer'
|
98
|
+
loaded_stemmer = true
|
99
|
+
rescue LoadError
|
100
|
+
begin
|
101
|
+
require 'stemmer'
|
102
|
+
loaded_stemmer = true
|
103
|
+
rescue LoadError
|
104
|
+
# skip this test, neither fast_stemmer nor stemmer is installed!
|
105
|
+
fail
|
106
|
+
end
|
107
|
+
end
|
82
108
|
|
109
|
+
if loaded_stemmer
|
83
110
|
keywords = 'word words boards board woerter wort'.keywords do
|
84
111
|
set :stemming, true
|
85
112
|
end
|
@@ -87,10 +114,17 @@ class TestContent < Test::Unit::TestCase
|
|
87
114
|
assert_equal 4, keywords.length
|
88
115
|
|
89
116
|
keywords.each do |k|
|
90
|
-
assert
|
117
|
+
assert %w{board word woerter wort}.include?(k.text)
|
91
118
|
end
|
92
|
-
rescue LoadError
|
93
|
-
# do nothing, just skip this test
|
94
119
|
end
|
95
120
|
end
|
96
|
-
|
121
|
+
|
122
|
+
def test_language_english
|
123
|
+
assert_equal :english, Highscore::Content.new("this is obviously an english text").language
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_language_german
|
127
|
+
assert_equal :german, Highscore::Content.new("Das ist sicherlich ein deutscher Text!").language
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
@@ -1,8 +1,6 @@
|
|
1
|
-
|
2
|
-
require 'keyword'
|
3
|
-
require "test/unit"
|
1
|
+
require File.dirname(__FILE__) + '/../test_highscore'
|
4
2
|
|
5
|
-
class TestKeyword <
|
3
|
+
class TestKeyword < Highscore::TestCase
|
6
4
|
def setup
|
7
5
|
@keyword = Highscore::Keyword.new('Ruby', 2)
|
8
6
|
end
|
@@ -1,9 +1,6 @@
|
|
1
|
-
|
2
|
-
require 'keywords'
|
3
|
-
require 'keyword'
|
4
|
-
require "test/unit"
|
1
|
+
require File.dirname(__FILE__) + '/../test_highscore'
|
5
2
|
|
6
|
-
class TestKeywords <
|
3
|
+
class TestKeywords < Highscore::TestCase
|
7
4
|
def setup
|
8
5
|
@keywords = Highscore::Keywords.new
|
9
6
|
@keywords << Highscore::Keyword.new('Ruby', 2)
|
@@ -0,0 +1,47 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
|
2
|
+
require "content"
|
3
|
+
require "blacklist"
|
4
|
+
require "whitelist"
|
5
|
+
require "test/unit"
|
6
|
+
require 'rubygems'
|
7
|
+
|
8
|
+
class TestMultipleBlacklists < Test::Unit::TestCase
|
9
|
+
def setup
|
10
|
+
@nonsense = "Oui monsieur, je suis un programmer. You OK?"
|
11
|
+
|
12
|
+
@blacklist_francais = Highscore::Blacklist.load %w{oui je un}
|
13
|
+
@blacklist_default = Highscore::Blacklist.load %w{ok you programmer}
|
14
|
+
@whitelist_simple = Highscore::Whitelist.load %{programmer}
|
15
|
+
|
16
|
+
@content = Highscore::Content.new @nonsense, @blacklist_default
|
17
|
+
@content.configure do
|
18
|
+
set :ignore_case, true
|
19
|
+
end
|
20
|
+
@content.add_wordlist @blacklist_francais, 'fr'
|
21
|
+
@content.add_wordlist @whitelist_simple, 'si'
|
22
|
+
end
|
23
|
+
|
24
|
+
def sort_for_ruby18(keywords)
|
25
|
+
keywords.join(' ').split(' ').sort
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_different_language
|
29
|
+
assert_equal %w(monsieur programmer suis you), sort_for_ruby18(@content.keywords(:lang => :fr).top(4))
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_bad_wordlist
|
33
|
+
assert_raise ArgumentError do
|
34
|
+
@content.add_wordlist 3.14159, "pi"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_normal_operation
|
39
|
+
assert_equal %w(monsieur oui suis), sort_for_ruby18(@content.keywords.top(3))
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_added_whitelist
|
43
|
+
assert_equal %w(programmer), sort_for_ruby18(@content.keywords(:lang => :si).top(3))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
@@ -1,8 +1,6 @@
|
|
1
|
-
|
2
|
-
require 'highscore'
|
3
|
-
require "test/unit"
|
1
|
+
require File.dirname(__FILE__) + '/../test_highscore'
|
4
2
|
|
5
|
-
class TestString <
|
3
|
+
class TestString < Highscore::TestCase
|
6
4
|
def setup
|
7
5
|
blacklist_file = File.join(File.dirname(__FILE__), %w{.. fixtures blacklist.txt})
|
8
6
|
@blacklist = Highscore::Blacklist.load_file(blacklist_file)
|
@@ -1,8 +1,6 @@
|
|
1
|
-
|
2
|
-
require "whitelist"
|
3
|
-
require "test/unit"
|
1
|
+
require File.dirname(__FILE__) + '/../test_highscore'
|
4
2
|
|
5
|
-
class TestBlacklist <
|
3
|
+
class TestBlacklist < Highscore::TestCase
|
6
4
|
def test_is_wordlist
|
7
5
|
whitelist = Highscore::Whitelist.new
|
8
6
|
assert whitelist.kind_of? Highscore::Wordlist
|
@@ -1,8 +1,6 @@
|
|
1
|
-
|
2
|
-
require "wordlist"
|
3
|
-
require "test/unit"
|
1
|
+
require File.dirname(__FILE__) + '/../test_highscore'
|
4
2
|
|
5
|
-
class TestBlacklist <
|
3
|
+
class TestBlacklist < Highscore::TestCase
|
6
4
|
|
7
5
|
def test_load_file
|
8
6
|
file_path = File.join(File.dirname(__FILE__), %w{.. fixtures blacklist.txt})
|
data/test/test_highscore.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), %w{.. lib highscore}))
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'simplecov'
|
5
|
+
SimpleCov.start
|
6
|
+
rescue LoadError
|
7
|
+
# ignore ...
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'highscore'
|
11
|
+
require 'test/unit'
|
12
|
+
|
13
|
+
module Highscore
|
14
|
+
class TestCase < Test::Unit::TestCase
|
15
|
+
def test_version
|
16
|
+
assert_not_nil Highscore::VERSION
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: highscore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,38 +9,41 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement: &
|
15
|
+
name: simplecov
|
16
|
+
requirement: &70317557633680 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.6.4
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
|
24
|
+
version_requirements: *70317557633680
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: whatlanguage
|
27
|
+
requirement: &70317557633200 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.0.0
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70317557633200
|
36
|
+
description: Find and rank keywords in text.
|
26
37
|
email: liebler.dominik@googlemail.com
|
27
38
|
executables:
|
28
39
|
- highscore
|
29
40
|
extensions: []
|
30
41
|
extra_rdoc_files:
|
31
42
|
- History.txt
|
32
|
-
- bin/highscore
|
33
43
|
- lib/blacklist.txt
|
34
|
-
- test/fixtures/blacklist.txt
|
35
44
|
files:
|
36
|
-
- .gitignore
|
37
|
-
- .travis.yml
|
38
|
-
- History.txt
|
39
|
-
- README.md
|
40
|
-
- Rakefile
|
41
45
|
- bin/highscore
|
42
46
|
- lib/blacklist.txt
|
43
|
-
- lib/highscore.rb
|
44
47
|
- lib/highscore/blacklist.rb
|
45
48
|
- lib/highscore/content.rb
|
46
49
|
- lib/highscore/keyword.rb
|
@@ -48,17 +51,22 @@ files:
|
|
48
51
|
- lib/highscore/string.rb
|
49
52
|
- lib/highscore/whitelist.rb
|
50
53
|
- lib/highscore/wordlist.rb
|
54
|
+
- lib/highscore.rb
|
51
55
|
- test/fixtures/blacklist.txt
|
52
56
|
- test/highscore/test_blacklist.rb
|
53
57
|
- test/highscore/test_content.rb
|
54
58
|
- test/highscore/test_keyword.rb
|
55
59
|
- test/highscore/test_keywords.rb
|
60
|
+
- test/highscore/test_multiple_blacklists.rb
|
56
61
|
- test/highscore/test_string.rb
|
57
62
|
- test/highscore/test_whitelist.rb
|
58
63
|
- test/highscore/test_wordlist.rb
|
59
64
|
- test/test_highscore.rb
|
65
|
+
- README.md
|
66
|
+
- History.txt
|
67
|
+
- Rakefile
|
60
68
|
- version.txt
|
61
|
-
homepage:
|
69
|
+
homepage: https://domnikl.github.com/highscore
|
62
70
|
licenses: []
|
63
71
|
post_install_message:
|
64
72
|
rdoc_options:
|
@@ -85,10 +93,12 @@ signing_key:
|
|
85
93
|
specification_version: 3
|
86
94
|
summary: Easily find and rank keywords in long texts.
|
87
95
|
test_files:
|
96
|
+
- test/fixtures/blacklist.txt
|
88
97
|
- test/highscore/test_blacklist.rb
|
89
98
|
- test/highscore/test_content.rb
|
90
99
|
- test/highscore/test_keyword.rb
|
91
100
|
- test/highscore/test_keywords.rb
|
101
|
+
- test/highscore/test_multiple_blacklists.rb
|
92
102
|
- test/highscore/test_string.rb
|
93
103
|
- test/highscore/test_whitelist.rb
|
94
104
|
- test/highscore/test_wordlist.rb
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 1.8.7
|
4
|
-
- 1.9.2
|
5
|
-
- 1.9.3
|
6
|
-
- jruby-18mode # JRuby in 1.8 mode
|
7
|
-
- jruby-19mode # JRuby in 1.9 mode
|
8
|
-
- rbx-18mode
|
9
|
-
- rbx-19mode
|
10
|
-
|
11
|
-
# fast-stemmer is a C extension, so it won't work with JRuby ...
|
12
|
-
before_install: gem install bones; (gem install fast-stemmer &); sleep 10
|