russian-reversal 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/russian-reversal.rb +15 -12
  2. data/spec/reverse.rb +1 -0
  3. metadata +4 -4
@@ -6,7 +6,7 @@ require 'nokogiri'
6
6
 
7
7
  module RussianReversal
8
8
  REGEXP_NONWORD = /[^a-zA-Z -]/
9
- VERBS_IGNORED = [ 'be', 'have', 'can', ]
9
+ VERBS_IGNORED = [ 'be', 'become', 'can', 'do', 'get', 'go', 'have', 'put', 'say', ]
10
10
  NOUNS_IGNORED = [ 'it', 'him', 'her', 'them', 'me', 'you', 'us', 'this', 'that', 'these', 'those', ]
11
11
 
12
12
  def self.strip( s )
@@ -14,20 +14,23 @@ module RussianReversal
14
14
  end
15
15
 
16
16
  def self.infinitive_of( verb )
17
+ return if verb =~ REGEXP_NONWORD
18
+
17
19
  doc = Nokogiri::HTML( open( "http://www.oxfordadvancedlearnersdictionary.com/dictionary/#{verb}" ) )
18
20
  doc.search('div#relatedentries > ul > li').each do |e|
19
21
  pos_element = e.at('span.pos')
20
- if pos_element
21
- pos = pos_element.text.gsub( REGEXP_NONWORD, '' )
22
- return if pos == 'modal verb' || pos == 'auxiliary verb'
23
- if pos == 'verb'
24
- v = e.at('span').children.first.text.strip
25
- if VERBS_IGNORED.include?( v )
26
- return
27
- else
28
- return v
29
- end
30
- end
22
+ next if pos_element.nil?
23
+
24
+ pos = pos_element.text.gsub( REGEXP_NONWORD, '' )
25
+ return if pos == 'modal verb' || pos == 'auxiliary verb'
26
+
27
+ next if pos != 'verb'
28
+
29
+ v = e.at('span').children.first.text.strip
30
+ if VERBS_IGNORED.include?( v )
31
+ return
32
+ else
33
+ return v
31
34
  end
32
35
  end
33
36
  end
@@ -23,6 +23,7 @@ describe 'RussianReversal' do
23
23
  RussianReversal.reverse( "He was a criminal." ).should.be.nil
24
24
  RussianReversal.reverse( "He might be a criminal." ).should.be.nil
25
25
  RussianReversal.reverse( "He ought to be good." ).should.be.nil
26
+ RussianReversal.reverse( "yeah, and it's horrible to install onigurama versions" ).should.be.nil
26
27
  end
27
28
 
28
29
  it "doesn't activate on pronouns or demonstratives" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: russian-reversal
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 5
10
- version: 1.0.5
9
+ - 6
10
+ version: 1.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pistos
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-18 00:00:00 -05:00
18
+ date: 2010-11-19 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency