gnip-rule 0.3.1 → 0.4.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/lib/gnip-rule/rule.rb +1 -1
- data/lib/gnip-rule/version.rb +1 -1
- metadata +15 -33
- data/.gitignore +0 -6
- data/.pryrc +0 -2
- data/.rvmrc +0 -1
- data/.travis.yml +0 -7
- data/CONTRIBUTING.md +0 -9
- data/Gemfile +0 -4
- data/Guardfile +0 -5
- data/LICENSE +0 -19
- data/README.md +0 -40
- data/Rakefile +0 -10
- data/gnip-rule.gemspec +0 -44
- data/spec/gnip-rule/client_spec.rb +0 -90
- data/spec/gnip-rule/rule_spec.rb +0 -58
- data/spec/spec-helper.rb +0 -7
data/lib/gnip-rule/rule.rb
CHANGED
data/lib/gnip-rule/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gnip-rule
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.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:
|
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|
|
@@ -18,7 +18,7 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - ~>
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.
|
|
21
|
+
version: 10.0.3
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -26,7 +26,7 @@ dependencies:
|
|
|
26
26
|
requirements:
|
|
27
27
|
- - ~>
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: 0.
|
|
29
|
+
version: 10.0.3
|
|
30
30
|
- !ruby/object:Gem::Dependency
|
|
31
31
|
name: rspec
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -34,7 +34,7 @@ dependencies:
|
|
|
34
34
|
requirements:
|
|
35
35
|
- - ~>
|
|
36
36
|
- !ruby/object:Gem::Version
|
|
37
|
-
version: 2.
|
|
37
|
+
version: 2.13.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: 2.
|
|
45
|
+
version: 2.13.0
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: webmock
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
requirements:
|
|
67
67
|
- - ~>
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: 1.
|
|
69
|
+
version: 1.6.2
|
|
70
70
|
type: :development
|
|
71
71
|
prerelease: false
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -74,7 +74,7 @@ dependencies:
|
|
|
74
74
|
requirements:
|
|
75
75
|
- - ~>
|
|
76
76
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: 1.
|
|
77
|
+
version: 1.6.2
|
|
78
78
|
- !ruby/object:Gem::Dependency
|
|
79
79
|
name: guard-rspec
|
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -82,7 +82,7 @@ dependencies:
|
|
|
82
82
|
requirements:
|
|
83
83
|
- - ~>
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
|
-
version:
|
|
85
|
+
version: 2.5.0
|
|
86
86
|
type: :development
|
|
87
87
|
prerelease: false
|
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -90,7 +90,7 @@ dependencies:
|
|
|
90
90
|
requirements:
|
|
91
91
|
- - ~>
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
|
-
version:
|
|
93
|
+
version: 2.5.0
|
|
94
94
|
- !ruby/object:Gem::Dependency
|
|
95
95
|
name: fuubar
|
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -162,7 +162,7 @@ dependencies:
|
|
|
162
162
|
requirements:
|
|
163
163
|
- - ~>
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: 1.7.
|
|
165
|
+
version: 1.7.7
|
|
166
166
|
type: :runtime
|
|
167
167
|
prerelease: false
|
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -170,7 +170,7 @@ dependencies:
|
|
|
170
170
|
requirements:
|
|
171
171
|
- - ~>
|
|
172
172
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: 1.7.
|
|
173
|
+
version: 1.7.7
|
|
174
174
|
description: Ruby library for working with the Gnip Rules API
|
|
175
175
|
email:
|
|
176
176
|
- me@eriwen.com
|
|
@@ -178,24 +178,10 @@ executables: []
|
|
|
178
178
|
extensions: []
|
|
179
179
|
extra_rdoc_files: []
|
|
180
180
|
files:
|
|
181
|
-
- .gitignore
|
|
182
|
-
- .pryrc
|
|
183
|
-
- .rvmrc
|
|
184
|
-
- .travis.yml
|
|
185
|
-
- CONTRIBUTING.md
|
|
186
|
-
- Gemfile
|
|
187
|
-
- Guardfile
|
|
188
|
-
- LICENSE
|
|
189
|
-
- README.md
|
|
190
|
-
- Rakefile
|
|
191
|
-
- gnip-rule.gemspec
|
|
192
|
-
- lib/gnip-rule.rb
|
|
193
181
|
- lib/gnip-rule/client.rb
|
|
194
182
|
- lib/gnip-rule/rule.rb
|
|
195
183
|
- lib/gnip-rule/version.rb
|
|
196
|
-
-
|
|
197
|
-
- spec/gnip-rule/rule_spec.rb
|
|
198
|
-
- spec/spec-helper.rb
|
|
184
|
+
- lib/gnip-rule.rb
|
|
199
185
|
homepage: https://github.com/eriwen/gnip-rule
|
|
200
186
|
licenses: []
|
|
201
187
|
post_install_message:
|
|
@@ -216,12 +202,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
216
202
|
version: '0'
|
|
217
203
|
requirements: []
|
|
218
204
|
rubyforge_project: gnip-rule
|
|
219
|
-
rubygems_version: 1.8.
|
|
205
|
+
rubygems_version: 1.8.25
|
|
220
206
|
signing_key:
|
|
221
207
|
specification_version: 3
|
|
222
208
|
summary: Ruby library for working with the Gnip Rules API
|
|
223
|
-
test_files:
|
|
224
|
-
- spec/gnip-rule/client_spec.rb
|
|
225
|
-
- spec/gnip-rule/rule_spec.rb
|
|
226
|
-
- spec/spec-helper.rb
|
|
227
|
-
has_rdoc:
|
|
209
|
+
test_files: []
|
data/.gitignore
DELETED
data/.pryrc
DELETED
data/.rvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rvm use 1.9.3@gnip-rule --create
|
data/.travis.yml
DELETED
data/CONTRIBUTING.md
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
When submitting pull requests, please do the following to make it easier to incorporate your changes:
|
|
2
|
-
|
|
3
|
-
* Include unit and/or functional specs that validate changes you're making.
|
|
4
|
-
* Rebase your changes onto the HEAD of my fork if you can do so cleanly.
|
|
5
|
-
* If submitting additional functionality, provide an example of how to use it.
|
|
6
|
-
* Please keep code style consistent with surrounding code.
|
|
7
|
-
|
|
8
|
-
## Testing
|
|
9
|
-
You can run all tests by simply running `bundle exec rspec spec` from your favorite shell.
|
data/Gemfile
DELETED
data/Guardfile
DELETED
data/LICENSE
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2012 Eric Wendelin
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
-
the Software without restriction, including without limitation the rights to
|
|
6
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
-
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
-
so, subject to the following conditions:
|
|
9
|
-
|
|
10
|
-
The above copyright notice and this permission notice shall be included in all
|
|
11
|
-
copies or substantial portions of the Software.
|
|
12
|
-
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
-
SOFTWARE.
|
data/README.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# gnip-rule [](http://travis-ci.org/eriwen/gnip-rule) [](https://codeclimate.com/github/eriwen/gnip-rule)
|
|
2
|
-
This gem simplifies the effort to add/delete/list rules using the [Gnip Rules API](http://support.gnip.com/customer/portal/articles/477713-rules-methods-documentation). It handles HTTP request/response and helps your rules conform to Gnip's restrictions.
|
|
3
|
-
|
|
4
|
-
## Installation
|
|
5
|
-
`gem install gnip-rule` or add the following to your `Gemfile`:
|
|
6
|
-
|
|
7
|
-
```ruby
|
|
8
|
-
gem 'gnip-rule', '~> 0.3.1'
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```ruby
|
|
14
|
-
require 'gnip-rule'
|
|
15
|
-
|
|
16
|
-
rules = GnipRule::Client.new(API_URL, USERNAME, PASSWORD)
|
|
17
|
-
|
|
18
|
-
# Add as a String, Rule, or Array of either
|
|
19
|
-
rules.add('foo')
|
|
20
|
-
rules.add('bar', 'tag')
|
|
21
|
-
rules.add(['foo', 'bar', 'baz'], 'tag')
|
|
22
|
-
rules.add(GnipRule::Rule.new('value', 'tag'))
|
|
23
|
-
rules.add([GnipRule::Rule.new('foo', 'bar'), GnipRule::Rule.new('baz', 'tag2')])
|
|
24
|
-
|
|
25
|
-
# Same with delete
|
|
26
|
-
rules.delete('baz', 'tag')
|
|
27
|
-
rules.delete(['foo', 'bar'])
|
|
28
|
-
rules.delete(GnipRule::Rule.new('value', 'tag'))
|
|
29
|
-
|
|
30
|
-
# Get all rules
|
|
31
|
-
rules_list = rules.list()
|
|
32
|
-
rules_list.each { |rule| rule.valid? }
|
|
33
|
-
jsonified = rules_list.map { |rule| rule.as_json `}
|
|
34
|
-
rules_tagged_foo = rules_list.select { |rule| rule.tag == 'foo' }
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## License
|
|
38
|
-
Licenced under the [MIT License](http://www.opensource.org/licenses/mit-license.php)
|
|
39
|
-
|
|
40
|
-
I provide this software free of charge. If you find it helpful, please endorse me on coderwall: [](http://coderwall.com/eriwen)
|
data/Rakefile
DELETED
data/gnip-rule.gemspec
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
$:.push File.expand_path('../lib', __FILE__)
|
|
3
|
-
require 'gnip-rule/version'
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |s|
|
|
6
|
-
s.name = 'gnip-rule'
|
|
7
|
-
s.version = GnipRule::VERSION
|
|
8
|
-
|
|
9
|
-
s.platform = Gem::Platform::RUBY
|
|
10
|
-
s.authors = ['Eric Wendelin']
|
|
11
|
-
s.email = ['me@eriwen.com']
|
|
12
|
-
s.homepage = 'https://github.com/eriwen/gnip-rule'
|
|
13
|
-
s.summary = %q{Ruby library for working with the Gnip Rules API}
|
|
14
|
-
s.description = s.summary
|
|
15
|
-
|
|
16
|
-
s.rubyforge_project = 'gnip-rule'
|
|
17
|
-
|
|
18
|
-
s.files = `git ls-files`.split("\n")
|
|
19
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
20
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
21
|
-
s.require_paths = ['lib']
|
|
22
|
-
|
|
23
|
-
s.add_development_dependency 'rake', '~> 0.9.2'
|
|
24
|
-
s.add_development_dependency 'rspec', '~> 2.10.0'
|
|
25
|
-
s.add_development_dependency 'webmock', '~> 1.8.11'
|
|
26
|
-
s.add_development_dependency 'guard', '~> 1.4.0'
|
|
27
|
-
s.add_development_dependency 'guard-rspec', '~> 1.2.0'
|
|
28
|
-
s.add_development_dependency 'fuubar', '~> 1.1.0'
|
|
29
|
-
|
|
30
|
-
if RbConfig::CONFIG['host_os'] =~ /darwin/
|
|
31
|
-
s.add_development_dependency 'rb-fsevent'
|
|
32
|
-
s.add_development_dependency 'ruby_gntp'
|
|
33
|
-
elsif RbConfig::CONFIG['host_os'] =~ /linux/
|
|
34
|
-
s.add_development_dependency 'rb-inotify'
|
|
35
|
-
s.add_development_dependency 'libnotify'
|
|
36
|
-
elsif RbConfig::CONFIG['host_os'] =~ /msmin|mingw/
|
|
37
|
-
s.add_development_dependency 'wdm'
|
|
38
|
-
s.add_development_dependency 'rb-notifu'
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
s.add_dependency 'rest-client', '~> 1.6.7'
|
|
42
|
-
s.add_dependency 'json', '~> 1.7.0'
|
|
43
|
-
s.add_dependency 'jruby-openssl' if RUBY_PLATFORM == 'java'
|
|
44
|
-
end
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
require 'spec-helper'
|
|
2
|
-
|
|
3
|
-
require 'gnip-rule/client'
|
|
4
|
-
|
|
5
|
-
describe GnipRule::Client do
|
|
6
|
-
let(:xml_base_url) { 'https://api.gnip.com:443/accounts/foo/publishers/twitter/streams/track/prod/rules.xml' }
|
|
7
|
-
let(:base_url) { 'https://api.gnip.com:443/accounts/foo/publishers/twitter/streams/track/prod/rules.json' }
|
|
8
|
-
let(:base_url_with_auth) { 'https://username:password@api.gnip.com:443/accounts/foo/publishers/twitter/streams/track/prod/rules.json' }
|
|
9
|
-
|
|
10
|
-
describe '.new' do
|
|
11
|
-
it 'should convert XML URLs to JSON' do
|
|
12
|
-
GnipRule::Client.new(xml_base_url, 'username', 'password').url.should == base_url
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it 'should not munch JSON URLs' do
|
|
16
|
-
GnipRule::Client.new(base_url, 'username', 'password').url.should == base_url
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
describe 'instance' do
|
|
22
|
-
subject { GnipRule::Client.new(base_url, 'username', 'password') }
|
|
23
|
-
|
|
24
|
-
describe '#add' do
|
|
25
|
-
it 'should POST rule to the given URL with given credentials' do
|
|
26
|
-
stub_request(:post, base_url_with_auth).
|
|
27
|
-
with(:body => '{"rules":[{"value":"value","tag":"tag"}]}').
|
|
28
|
-
to_return(:status => 200, :body => '', :headers => {})
|
|
29
|
-
subject.add('value', 'tag')
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it 'should raise an error if Gnip returns HTTP error' do
|
|
33
|
-
stub_request(:post, base_url_with_auth).
|
|
34
|
-
with(:body => '{"rules":[{"value":"value","tag":"tag"}]}').
|
|
35
|
-
to_return(:status => 401, :body => 'Error message', :headers => {})
|
|
36
|
-
lambda { subject.add('value', 'tag') }.should raise_error
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
describe '#delete' do
|
|
41
|
-
it 'should POST rule json to a URL with given credentials' do
|
|
42
|
-
stub_request(:post, "#{base_url_with_auth}?_method=delete").
|
|
43
|
-
with(:body => '{"rules":[{"value":"value","tag":"tag"}]}').
|
|
44
|
-
to_return(:status => 200, :body => '', :headers => {})
|
|
45
|
-
subject.delete('value', 'tag')
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
describe '#list' do
|
|
50
|
-
it 'should GET a URL with given credentials' do
|
|
51
|
-
stub_request(:get, base_url_with_auth).
|
|
52
|
-
to_return(:status => 200, :body => '{"rules":[{"value":"foo","tag":"baz"},{"value":"bar","tag":"baz"}]}')
|
|
53
|
-
rules = subject.list()
|
|
54
|
-
rules.size.should == 2
|
|
55
|
-
rules.map { |r| r.valid?.should == true }
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it 'should raise an error if Gnip returns HTTP error' do
|
|
59
|
-
stub_request(:get, base_url).
|
|
60
|
-
with(:body => '{"rules":[{"value":"value","tag":"tag"}]}').
|
|
61
|
-
to_return(:status => 401, :body => 'Error message', :headers => {})
|
|
62
|
-
lambda { subject.list() }.should raise_error
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
describe '#jsonify_rules' do
|
|
67
|
-
it 'should JSONify Strings' do
|
|
68
|
-
json = subject.gen_json_payload('foo', 'bar')
|
|
69
|
-
json.should == '{"rules":[{"value":"foo","tag":"bar"}]}'
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it 'should JSONify Rules' do
|
|
73
|
-
json = subject.gen_json_payload(GnipRule::Rule.new('baz', 'foo'))
|
|
74
|
-
json.should == '{"rules":[{"value":"baz","tag":"foo"}]}'
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it 'should JSONify an Array of Strings with a tag' do
|
|
78
|
-
json = subject.gen_json_payload(['foo', 'bar'], 'baz')
|
|
79
|
-
json.should == '{"rules":[{"value":"foo","tag":"baz"},{"value":"bar","tag":"baz"}]}'
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
it 'should JSONify an Array of Rules' do
|
|
83
|
-
rule1 = GnipRule::Rule.new('baz', 'foo')
|
|
84
|
-
rule2 = GnipRule::Rule.new('bar', 'thing')
|
|
85
|
-
json = subject.gen_json_payload([rule1, rule2])
|
|
86
|
-
json.should == '{"rules":[{"value":"baz","tag":"foo"},{"value":"bar","tag":"thing"}]}'
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
data/spec/gnip-rule/rule_spec.rb
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
require 'spec-helper'
|
|
2
|
-
|
|
3
|
-
require 'gnip-rule/rule'
|
|
4
|
-
|
|
5
|
-
describe GnipRule::Rule do
|
|
6
|
-
describe '#initialize' do
|
|
7
|
-
it 'should allow an optional tag' do
|
|
8
|
-
rule = GnipRule::Rule.new('value')
|
|
9
|
-
rule.tag.should be_nil
|
|
10
|
-
|
|
11
|
-
rule_with_tag = GnipRule::Rule.new('value', 'tag')
|
|
12
|
-
rule_with_tag.tag.should == 'tag'
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
describe '#valid?' do
|
|
17
|
-
it 'should consider rules with "stop words" to be invalid' do
|
|
18
|
-
GnipRule::Rule.new('an value').should_not be_valid
|
|
19
|
-
end
|
|
20
|
-
it 'should consider rules that are too long to be invalid' do
|
|
21
|
-
rule = GnipRule::Rule.new('01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789')
|
|
22
|
-
rule.should_not be_valid
|
|
23
|
-
end
|
|
24
|
-
it 'should consider empty sources to be invalid' do
|
|
25
|
-
GnipRule::Rule.new('foo source: bar').should_not be_valid
|
|
26
|
-
end
|
|
27
|
-
it 'should consider negative ORs to be invalid' do
|
|
28
|
-
GnipRule::Rule.new('-iphone OR ipad').should_not be_valid
|
|
29
|
-
end
|
|
30
|
-
it 'should consider rules with more than 10 positive terms invalid' do
|
|
31
|
-
GnipRule::Rule.new('one two three four five six seven eight nine ten eleven').should_not be_valid
|
|
32
|
-
end
|
|
33
|
-
it 'should consider stop words within quotes to be valid' do
|
|
34
|
-
GnipRule::Rule.new('"foo the bar" baz').should be_valid
|
|
35
|
-
end
|
|
36
|
-
it 'should consider rules without "stop words" to be valid' do
|
|
37
|
-
GnipRule::Rule.new('value').should be_valid
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
describe '#to_json' do
|
|
42
|
-
it 'should omit tag if tag not defined' do
|
|
43
|
-
rule = GnipRule::Rule.new('foo')
|
|
44
|
-
rule.to_json.should == '{"value":"foo"}'
|
|
45
|
-
end
|
|
46
|
-
it 'should add tag if defined' do
|
|
47
|
-
rule = GnipRule::Rule.new('foo', 'bar')
|
|
48
|
-
rule.to_json.should == '{"value":"foo","tag":"bar"}'
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
describe '#to_rule' do
|
|
53
|
-
it 'should return itself' do
|
|
54
|
-
rule = GnipRule::Rule.new('foo', 'bar')
|
|
55
|
-
rule.to_rule.should == rule
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|