gnip-rules 1.1.2 → 1.2.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.
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