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.
@@ -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
- [![Build Status](https://secure.travis-ci.org/domnikl/highscore.png?branch=develop)](http://travis-ci.org/domnikl/highscore)
5
+ [![Build Status](https://secure.travis-ci.org/domnikl/highscore.png?branch=develop)](http://travis-ci.org/domnikl/highscore) [![Code Climate](https://codeclimate.com/badge.png)](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, doesn't work on JRuby platforms!)
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
- Install
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
- begin
4
- require 'bones'
5
- rescue LoadError
6
- abort '### Please install the "bones" gem ###'
7
- end
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
- task :default => 'test:run'
10
- task 'gem:release' => 'test:run'
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
- Bones {
13
- name 'highscore'
14
- authors 'Dominik Liebler'
15
- email 'liebler.dominik@googlemail.com'
16
- url 'http://thewebdev.de'
17
- ignore_file '.gitignore'
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
@@ -76,6 +76,11 @@ optparse = OptionParser.new do |opts|
76
76
  opts.on('-s', '--short', 'don\'t print rank weight') do
77
77
  options[:short] = true
78
78
  end
79
+
80
+ opts.on('-v', '--version', 'show version') do
81
+ puts Highscore::VERSION
82
+ exit
83
+ end
79
84
  end
80
85
 
81
86
  optparse.parse!
@@ -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
- # Returns the library path for the module. If any arguments are given,
11
- # they will be joined to the end of the libray path using
12
- # <tt>File.join</tt>.
13
- #
14
- def self.libpath( *args )
15
- rv = args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
16
- if block_given?
17
- begin
18
- $LOAD_PATH.unshift LIBPATH
19
- rv = yield
20
- ensure
21
- $LOAD_PATH.shift
22
- end
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
- # Utility method used to require all files ending in .rb that lie in the
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
 
@@ -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 => /\w+/,
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, wordlist, word_pattern).each do |text|
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
- false
189
+ begin
190
+ require 'stemmer'
191
+ true
192
+ rescue LoadError
193
+ false
194
+ end
162
195
  end
163
196
  else
164
197
  false
@@ -1,3 +1,5 @@
1
+ require 'whatlanguage'
2
+
1
3
  # monkey patch to call custom methods on arbitrary strings
2
4
  #
3
5
  class String
@@ -1,8 +1,6 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
2
- require "blacklist"
3
- require "test/unit"
1
+ require File.dirname(__FILE__) + '/../test_highscore'
4
2
 
5
- class TestBlacklist < Test::Unit::TestCase
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 < Test::Unit::TestCase
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 (%w{board word woerter wort}).include?(k.text)
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
- end
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
- $:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
2
- require 'keyword'
3
- require "test/unit"
1
+ require File.dirname(__FILE__) + '/../test_highscore'
4
2
 
5
- class TestKeyword < Test::Unit::TestCase
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
- $:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
2
- require 'keywords'
3
- require 'keyword'
4
- require "test/unit"
1
+ require File.dirname(__FILE__) + '/../test_highscore'
5
2
 
6
- class TestKeywords < Test::Unit::TestCase
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
- $:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib}))
2
- require 'highscore'
3
- require "test/unit"
1
+ require File.dirname(__FILE__) + '/../test_highscore'
4
2
 
5
- class TestString < Test::Unit::TestCase
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
- $:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
2
- require "whitelist"
3
- require "test/unit"
1
+ require File.dirname(__FILE__) + '/../test_highscore'
4
2
 
5
- class TestBlacklist < Test::Unit::TestCase
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
- $:.unshift(File.join(File.dirname(__FILE__), %w{.. .. lib highscore}))
2
- require "wordlist"
3
- require "test/unit"
1
+ require File.dirname(__FILE__) + '/../test_highscore'
4
2
 
5
- class TestBlacklist < Test::Unit::TestCase
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})
@@ -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
@@ -1 +1 @@
1
- 0.5.3
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.5.3
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-03-09 00:00:00.000000000 Z
12
+ date: 2012-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: bones
16
- requirement: &70276433082620 !ruby/object:Gem::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: 3.7.3
21
+ version: 0.6.4
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70276433082620
25
- description: Easily find and rank keywords in long texts.
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: http://thewebdev.de
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
@@ -1,12 +0,0 @@
1
- # general
2
- .DS_Store
3
- *.gemspec
4
-
5
- # RubyMine
6
- .idea
7
-
8
- # bones
9
- announcement.txt
10
- coverage
11
- doc
12
- pkg
@@ -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