gnip-rules 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjY1MDg4MmE3NDU5ZWFhNTNjZTUwYzA5NzZjYjVlYzRkMzJlMDczNQ==
5
+ data.tar.gz: !binary |-
6
+ YmU3ZmIxOTE3ODNkMTE2MzVhMTQ0OWIzOWRjNDUxMjQ3MGMzNjY1YQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MjJhNDM2OTZhOWI0MTI4MzFkMzhjNjcxOGNiMDkwZWMxZjIwNWM4NTI5OTMy
10
+ NzRjODNmNmY5MDZlNGRlY2Y4NjJmZmFmMjgxOTE2ZTQxZDcwY2Q4OGYyYzky
11
+ YTAxNjQxNGEzMGNjZGNjMDJjNTg1N2Y3ZDFmZGQ5MjVmNWFmYTA=
12
+ data.tar.gz: !binary |-
13
+ NmZjYzdhZjA4NmE2NGI3NTM5ODI3YTY5NTA5NDMzZDJkMTZjMDM5NTIyMGQ1
14
+ NjU0NDk1ZjNjNWZjYTE2MTdhOGRlMTgwMDIwMDZjMTZhMzY5YWI1NmQzNTIw
15
+ ODgyMmY5NmE0MjIwYzZiZDM5ZGFjMDA5ODNlOTE2OGFmOWY3YTU=
data/.gitignore ADDED
@@ -0,0 +1,51 @@
1
+ # rcov generated
2
+ coverage
3
+
4
+ # rdoc generated
5
+ rdoc
6
+
7
+ # yard generated
8
+ doc
9
+ .yardoc
10
+
11
+ # bundler
12
+ .bundle
13
+
14
+ # jeweler generated
15
+ pkg
16
+ config/gnip.yml
17
+ Gemfile.lock
18
+ .rvmrc
19
+
20
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
21
+ #
22
+ # * Create a file at ~/.gitignore
23
+ # * Include files you want ignored
24
+ # * Run: git config --global core.excludesfile ~/.gitignore
25
+ #
26
+ # After doing this, these files will be ignored in all your git projects,
27
+ # saving you from having to 'pollute' every project you touch with them
28
+ #
29
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
30
+ #
31
+ # For MacOS:
32
+ #
33
+ #.DS_Store
34
+
35
+ # For TextMate
36
+ #*.tmproj
37
+ #tmtags
38
+
39
+ # For emacs:
40
+ #*~
41
+ #\#*
42
+ #.\#*
43
+
44
+ # For vim:
45
+ #*.swp
46
+
47
+ # For redcar:
48
+ #.redcar
49
+
50
+ # For rubinius:
51
+ #*.rbc
data/Gemfile CHANGED
@@ -1,12 +1,9 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
1
+ gemspec name: 'gnip-rules-test.gemspec'
5
2
 
6
- gem 'httparty'
7
- gem 'rake'
8
- gem 'json'
9
- gem 'activesupport'
3
+ gem 'httparty', '~> 0.8.1'
4
+ gem 'rake', '>= 0.9.2.2'
5
+ gem 'json', '~> 1.6.1'
6
+ gem 'activesupport', '~> 3.1.3'
10
7
 
11
8
  # Add dependencies to develop your gem here.
12
9
  # Include everything needed to run rake, tests, features, etc.
@@ -15,6 +12,5 @@ group :development do
15
12
  gem 'turn'
16
13
  gem 'assert2'
17
14
  gem "bundler", "~> 1.0.0"
18
- gem "jeweler", "~> 1.6.4"
19
15
  gem "rcov", ">= 0"
20
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.2.0
data/gnip-rules.gemspec CHANGED
@@ -1,77 +1,25 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'gnip-rules/version'
5
5
 
6
- Gem::Specification.new do |s|
7
- s.name = "gnip-rules"
8
- s.version = "1.1.2"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "gnip-rules"
8
+ spec.version = Gnip::Rules::VERSION
9
+ spec.authors = ["Spencer Markowski", "The Able Few"]
10
+ spec.email = ["spencer@theablefew.com"]
11
+ spec.description = "Remove, Add and List your Gnip Rules"
12
+ spec.summary = "A simple wrapper for the Gnip Rules API"
9
13
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Spencer Markowski", "The Able Few"]
12
- s.date = "2012-04-30"
13
- s.description = "Remove, Add and List your Gnip Rules"
14
- s.email = "spencer@theablefew.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.md"
18
- ]
19
- s.files = [
20
- ".document",
21
- "Gemfile",
22
- "LICENSE.txt",
23
- "README.md",
24
- "Rakefile",
25
- "VERSION",
26
- "gnip-rules.gemspec",
27
- "lib/gnip-rules.rb",
28
- "test/helper.rb",
29
- "test/test_gnip-rules.rb",
30
- "test/test_rule.rb"
31
- ]
32
- s.homepage = "http://github.com/theablefew/gnip-rules"
33
- s.licenses = ["MIT"]
34
- s.require_paths = ["lib"]
35
- s.rubygems_version = "1.8.10"
36
- s.summary = "A simple wrapper for the Gnip Rules API"
14
+ spec.homepage = "http://github.com/theablefew/gnip-rules"
15
+ spec.license = "MIT"
37
16
 
38
- if s.respond_to? :specification_version then
39
- s.specification_version = 3
17
+ spec.files = `git ls-files`.split($/)
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.require_paths = ["lib"]
40
21
 
41
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
- s.add_runtime_dependency(%q<httparty>, [">= 0"])
43
- s.add_runtime_dependency(%q<rake>, [">= 0"])
44
- s.add_runtime_dependency(%q<json>, [">= 0"])
45
- s.add_runtime_dependency(%q<activesupport>, [">= 0"])
46
- s.add_development_dependency(%q<shoulda-context>, [">= 0"])
47
- s.add_development_dependency(%q<turn>, [">= 0"])
48
- s.add_development_dependency(%q<assert2>, [">= 0"])
49
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
50
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
51
- s.add_development_dependency(%q<rcov>, [">= 0"])
52
- else
53
- s.add_dependency(%q<httparty>, [">= 0"])
54
- s.add_dependency(%q<rake>, [">= 0"])
55
- s.add_dependency(%q<json>, [">= 0"])
56
- s.add_dependency(%q<activesupport>, [">= 0"])
57
- s.add_dependency(%q<shoulda-context>, [">= 0"])
58
- s.add_dependency(%q<turn>, [">= 0"])
59
- s.add_dependency(%q<assert2>, [">= 0"])
60
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
61
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
62
- s.add_dependency(%q<rcov>, [">= 0"])
63
- end
64
- else
65
- s.add_dependency(%q<httparty>, [">= 0"])
66
- s.add_dependency(%q<rake>, [">= 0"])
67
- s.add_dependency(%q<json>, [">= 0"])
68
- s.add_dependency(%q<activesupport>, [">= 0"])
69
- s.add_dependency(%q<shoulda-context>, [">= 0"])
70
- s.add_dependency(%q<turn>, [">= 0"])
71
- s.add_dependency(%q<assert2>, [">= 0"])
72
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
73
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
74
- s.add_dependency(%q<rcov>, [">= 0"])
75
- end
22
+ spec.add_development_dependency "bundler", "~> 1.3"
23
+ spec.add_development_dependency "rake"
76
24
  end
77
25
 
@@ -0,0 +1,18 @@
1
+ module Gnip
2
+ module API
3
+ def add(rules)
4
+ options = ActiveSupport::JSON.encode( {:rules => rules} )
5
+ puts options
6
+ Gnip::Response.new self.class.post('/rules.json', :body => options )
7
+ end
8
+
9
+ def remove( rules )
10
+ options = ActiveSupport::JSON.encode( {:rules => rules} )
11
+ Gnip::Response.new self.class.delete('/rules.json', :body => options )
12
+ end
13
+
14
+ def list
15
+ Gnip::Response.new self.class.get( '/rules.json' )
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,48 @@
1
+ include Forwardable
2
+
3
+ module Gnip
4
+ class Response
5
+ extend Forwardable
6
+
7
+ def_delegators :@http_party_response, :response, :request, :body, :headers, :code
8
+
9
+ attr_reader :http_party_response
10
+
11
+ def initialize(http_party_response)
12
+ @http_party_response = http_party_response
13
+ end
14
+
15
+ def rules
16
+ http_party_response["rules"]
17
+ end
18
+
19
+ def created?
20
+ code == 201
21
+ end
22
+
23
+ def unauthorized?
24
+ code == 401
25
+ end
26
+
27
+ def rate_limited?
28
+ code == 429
29
+ end
30
+
31
+ def unavailable?
32
+ code == 503
33
+ end
34
+
35
+ def bad_request?
36
+ code == 400
37
+ end
38
+
39
+ def unprocessable?
40
+ code == 422
41
+ end
42
+
43
+ def ok?
44
+ code == 200
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,41 @@
1
+ module Gnip
2
+ class Rule
3
+
4
+ attr_accessor :value, :tag, :errors
5
+
6
+ def initialize( v , t = nil )
7
+ @value = v
8
+ @tag = t
9
+ @errors = []
10
+ end
11
+
12
+ def as_json(options={})
13
+ o = {"value" => value}
14
+ o.merge!( "tag" => tag ) unless tag.nil?
15
+ return o
16
+ end
17
+
18
+ def valid?
19
+ validate_length
20
+ end
21
+
22
+ private
23
+
24
+ def validate_length
25
+ if @value.length > 1024
26
+ @errors << "Too many characters in rule - #{@value.length}. The maximum allowed is 1024"
27
+ return false
28
+ end
29
+ return true
30
+ end
31
+
32
+ def validate_phrase_count
33
+ phrases = @value.scan( /(\"[\w\-\s]+\"|\w+\s?)/ ).count
34
+ if phrases > 10
35
+ @errors << "Too many clauses in phrase - #{phrases}. The maximum allowed is 10"
36
+ return false
37
+ end
38
+ return true
39
+ end
40
+ end
41
+ end
data/lib/gnip-rules.rb CHANGED
@@ -2,9 +2,14 @@ require 'active_support'
2
2
  require 'httparty'
3
3
  require 'json'
4
4
 
5
+ require 'gnip-rules/api'
6
+ require 'gnip-rules/response'
7
+ require 'gnip-rules/rule'
8
+
5
9
  module Gnip
6
10
  class Rules
7
11
  include HTTParty
12
+ include Gnip::API
8
13
 
9
14
  headers 'Accept' => 'application/json', 'Content-Type' => 'application/json'
10
15
  format :json
@@ -18,27 +23,13 @@ module Gnip
18
23
  uri = uri || @config["streaming_url"]
19
24
  end
20
25
 
21
- self.class.basic_auth username , password
26
+ self.class.basic_auth username , password
22
27
  self.class.base_uri uri
23
28
  end
24
29
 
25
- def add(rules)
26
- options = ActiveSupport::JSON.encode( {:rules => rules} )
27
- puts options
28
- self.class.post('/rules.json', :body => options )
29
- end
30
-
31
- def remove( rules )
32
- options = ActiveSupport::JSON.encode( {:rules => rules} )
33
- self.class.delete('/rules.json', :body => options )
34
- end
35
-
36
- def list
37
- self.class.get( '/rules.json' )
38
- end
39
-
40
30
  def delete_all!
41
- rules = self.list["rules"]
31
+ rules = self.list.rules
32
+ sleep 3
42
33
  self.remove( rules )
43
34
  end
44
35
 
@@ -63,7 +54,6 @@ module Gnip
63
54
  end
64
55
 
65
56
  def environment
66
- #Clearly there's a better way.
67
57
  if defined?(Rails)
68
58
  Rails.env
69
59
  elsif defined?(RAILS_ENV)
@@ -75,54 +65,5 @@ module Gnip
75
65
  end
76
66
  end
77
67
 
78
- # -Rules
79
- end
80
-
81
- class Rule
82
- attr_accessor :value, :tag, :errors
83
-
84
- def initialize( v , t = nil )
85
- @value = v
86
- @tag = t
87
- @errors = []
88
- end
89
-
90
- # def to_json
91
- # o = {"value" => value}
92
- # o.merge!( "tag" => tag ) unless tag.nil?
93
- # JSON.generate( o )
94
- # end
95
-
96
- def as_json(options={})
97
- o = {"value" => value}
98
- o.merge!( "tag" => tag ) unless tag.nil?
99
- return o
100
- end
101
-
102
- def valid?
103
- #valid = validate_phrase_count
104
-
105
- valid = validate_length
106
- end
107
-
108
- private
109
-
110
- def validate_length
111
- if @value.length > 1024
112
- @errors << "Too many characters in rule - #{@value.length}. The maximum allowed is 1024"
113
- return false
114
- end
115
- return true
116
- end
117
-
118
- def validate_phrase_count
119
- phrases = @value.scan( /(\"[\w\-\s]+\"|\w+\s?)/ ).count
120
- if phrases > 10
121
- @errors << "Too many clauses in phrase - #{phrases}. The maximum allowed is 10"
122
- return false
123
- end
124
- return true
125
- end
126
-
127
68
  end
128
69
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnip-rules
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
5
- prerelease:
4
+ version: !binary |-
5
+ MS4yLjA=
6
6
  platform: ruby
7
7
  authors:
8
8
  - Spencer Markowski
@@ -10,127 +10,45 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-04-30 00:00:00.000000000 Z
13
+ date: 2014-05-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: httparty
17
- requirement: &70181255531940 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: *70181255531940
26
- - !ruby/object:Gem::Dependency
27
- name: rake
28
- requirement: &70181255531440 !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: *70181255531440
37
- - !ruby/object:Gem::Dependency
38
- name: json
39
- requirement: &70181255530920 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ! '>='
43
- - !ruby/object:Gem::Version
44
- version: '0'
45
- type: :runtime
46
- prerelease: false
47
- version_requirements: *70181255530920
48
- - !ruby/object:Gem::Dependency
49
- name: activesupport
50
- requirement: &70181255530440 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
- type: :runtime
57
- prerelease: false
58
- version_requirements: *70181255530440
59
- - !ruby/object:Gem::Dependency
60
- name: shoulda-context
61
- requirement: &70181255529960 !ruby/object:Gem::Requirement
62
- none: false
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
63
18
  requirements:
64
- - - ! '>='
19
+ - - ~>
65
20
  - !ruby/object:Gem::Version
66
- version: '0'
21
+ version: '1.3'
67
22
  type: :development
68
23
  prerelease: false
69
- version_requirements: *70181255529960
70
- - !ruby/object:Gem::Dependency
71
- name: turn
72
- requirement: &70181255529420 !ruby/object:Gem::Requirement
73
- none: false
24
+ version_requirements: !ruby/object:Gem::Requirement
74
25
  requirements:
75
- - - ! '>='
26
+ - - ~>
76
27
  - !ruby/object:Gem::Version
77
- version: '0'
78
- type: :development
79
- prerelease: false
80
- version_requirements: *70181255529420
28
+ version: '1.3'
81
29
  - !ruby/object:Gem::Dependency
82
- name: assert2
83
- requirement: &70181255528940 !ruby/object:Gem::Requirement
84
- none: false
30
+ name: rake
31
+ requirement: !ruby/object:Gem::Requirement
85
32
  requirements:
86
33
  - - ! '>='
87
34
  - !ruby/object:Gem::Version
88
35
  version: '0'
89
36
  type: :development
90
37
  prerelease: false
91
- version_requirements: *70181255528940
92
- - !ruby/object:Gem::Dependency
93
- name: bundler
94
- requirement: &70181255528380 !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
97
- - - ~>
98
- - !ruby/object:Gem::Version
99
- version: 1.0.0
100
- type: :development
101
- prerelease: false
102
- version_requirements: *70181255528380
103
- - !ruby/object:Gem::Dependency
104
- name: jeweler
105
- requirement: &70181255527900 !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- version: 1.6.4
111
- type: :development
112
- prerelease: false
113
- version_requirements: *70181255527900
114
- - !ruby/object:Gem::Dependency
115
- name: rcov
116
- requirement: &70181255527340 !ruby/object:Gem::Requirement
117
- none: false
38
+ version_requirements: !ruby/object:Gem::Requirement
118
39
  requirements:
119
40
  - - ! '>='
120
41
  - !ruby/object:Gem::Version
121
42
  version: '0'
122
- type: :development
123
- prerelease: false
124
- version_requirements: *70181255527340
125
43
  description: Remove, Add and List your Gnip Rules
126
- email: spencer@theablefew.com
44
+ email:
45
+ - spencer@theablefew.com
127
46
  executables: []
128
47
  extensions: []
129
- extra_rdoc_files:
130
- - LICENSE.txt
131
- - README.md
48
+ extra_rdoc_files: []
132
49
  files:
133
50
  - .document
51
+ - .gitignore
134
52
  - Gemfile
135
53
  - LICENSE.txt
136
54
  - README.md
@@ -138,35 +56,37 @@ files:
138
56
  - VERSION
139
57
  - gnip-rules.gemspec
140
58
  - lib/gnip-rules.rb
59
+ - lib/gnip-rules/api.rb
60
+ - lib/gnip-rules/response.rb
61
+ - lib/gnip-rules/rule.rb
141
62
  - test/helper.rb
142
63
  - test/test_gnip-rules.rb
143
64
  - test/test_rule.rb
144
65
  homepage: http://github.com/theablefew/gnip-rules
145
66
  licenses:
146
67
  - MIT
68
+ metadata: {}
147
69
  post_install_message:
148
70
  rdoc_options: []
149
71
  require_paths:
150
72
  - lib
151
73
  required_ruby_version: !ruby/object:Gem::Requirement
152
- none: false
153
74
  requirements:
154
75
  - - ! '>='
155
76
  - !ruby/object:Gem::Version
156
77
  version: '0'
157
- segments:
158
- - 0
159
- hash: 784758856576106271
160
78
  required_rubygems_version: !ruby/object:Gem::Requirement
161
- none: false
162
79
  requirements:
163
80
  - - ! '>='
164
81
  - !ruby/object:Gem::Version
165
82
  version: '0'
166
83
  requirements: []
167
84
  rubyforge_project:
168
- rubygems_version: 1.8.10
85
+ rubygems_version: 2.2.2
169
86
  signing_key:
170
- specification_version: 3
87
+ specification_version: 4
171
88
  summary: A simple wrapper for the Gnip Rules API
172
- test_files: []
89
+ test_files:
90
+ - test/helper.rb
91
+ - test/test_gnip-rules.rb
92
+ - test/test_rule.rb