picky 4.6.6 → 4.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/picky.rb CHANGED
@@ -23,11 +23,18 @@ module Picky
23
23
  # Check if platform specific modifiers need to be installed.
24
24
  #
25
25
 
26
- # Note: We don't use require_relative because MacRuby doesn't
27
- # have it.
26
+ # Note: We don't use require_relative yet because MacRuby
27
+ # doesn't have it.
28
28
  #
29
29
  require File.expand_path '../picky/platforms/macruby', __FILE__
30
30
 
31
+ # Modify/configure the external libraries.
32
+ #
33
+
34
+ # By default, MultiJson uses Yajl.
35
+ #
36
+ MultiJson.use :yajl if defined? ::Yajl
37
+
31
38
  # Require the constants.
32
39
  #
33
40
  require_relative 'picky/constants'
@@ -3,6 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  require 'stemmer'
6
+ require 'lingua/stemmer'
6
7
 
7
8
  describe 'stemming' do
8
9
  let(:stemmer) {
@@ -30,9 +31,9 @@ describe 'stemming' do
30
31
  tokenizer.stem('computer').should == 'comput'
31
32
  end
32
33
 
33
- # This tests the weights option.
34
+ # This tests the stems_with option.
34
35
  #
35
- it 'stems right' do
36
+ it 'stems right (API conform Stemmer)' do
36
37
  # Fix the Stemmer API.
37
38
  #
38
39
  module Stemmer
@@ -70,5 +71,36 @@ describe 'stemming' do
70
71
  try.search("text:stemming").ids.should == [2, 1]
71
72
  try.search("text:lem").ids.should == [2]
72
73
  end
74
+
75
+ # This tests the stems_with option.
76
+ #
77
+ it 'stems right (Lingua::Stemmer.new)' do
78
+ index = Picky::Index.new :stemming do
79
+ # Be aware that if !s are not removed from
80
+ # eg. Lemming!, then stemming won't work.
81
+ #
82
+ indexing removes_characters: /[^a-z\s]/i,
83
+ stems_with: Lingua::Stemmer.new
84
+ category :text
85
+ end
86
+
87
+ index.replace_from id: 1, text: "Hello good Sirs, these things here need stems to work!"
88
+ index.replace_from id: 2, text: "Stemming Lemming!"
89
+
90
+ try = Picky::Search.new index
91
+
92
+ # If you don't stem in the search, it should not be found!
93
+ #
94
+ try.search("text:stemming").ids.should == []
95
+
96
+ try = Picky::Search.new index do
97
+ searching stems_with: Lingua::Stemmer.new
98
+ end
99
+
100
+ # With stemming in search AND indexing, it works :)
101
+ #
102
+ try.search("text:stemming").ids.should == [2, 1]
103
+ try.search("text:lem").ids.should == [2]
104
+ end
73
105
  end
74
106
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picky
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.6
4
+ version: 4.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-04 00:00:00.000000000 Z
12
+ date: 2012-10-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 4.6.6
37
+ version: 4.7.0
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 4.6.6
45
+ version: 4.7.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: text
48
48
  requirement: !ruby/object:Gem::Requirement