gnip_api 0.0.7 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d0ae4c94718a2de90323b7511592b9d1320ef80e
4
- data.tar.gz: f5b6ea9aee615af882e27555b4705774d7bbc206
3
+ metadata.gz: 81c81bf3548344605b9739f2cc6afb83e43d7b4f
4
+ data.tar.gz: 380d6266db0e255f64d75c3e6c667f9ff8b88ba5
5
5
  SHA512:
6
- metadata.gz: 22b94334a96c94518ca52ae883ef98e04c98489ecbf5e6da4b70f6a70fb6017e982a97a395a32621e094f46dc3dfd017d5a00f8e4dc12bda3e8cc92ee3a814c1
7
- data.tar.gz: 65205a747d6622d441960996fb597ebf79fb53adff213147ad4e225c1a948cd503d4cc865ccf1018d8cdcebf8f8c458a287beb602396ab376697a77646e7c967
6
+ metadata.gz: 106047db8629174c72855dc7062fc87ac98918f63c47116cb9379062ce0a45e1b4c679993f23b8f84e18d4cc2df149e3c1f1d861dff79db67ac10f34dea16a44
7
+ data.tar.gz: 4fe5240c6a90257b8950182285d33c8b4c65cd2f9c927a25070f4697548e7e27d98c1d575361a3e9a6389a7b99c5a4b472ccc17411900aff75949f612bb1a908
@@ -1,16 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gnip_api (0.0.7)
4
+ gnip_api (0.0.8)
5
5
  activesupport
6
6
  addressable
7
7
  httparty
8
- json
8
+ yajl-ruby
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (5.0.0)
13
+ activesupport (5.0.0.1)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
15
  i18n (~> 0.7)
16
16
  minitest (~> 5.1)
@@ -20,13 +20,11 @@ GEM
20
20
  coderay (1.1.0)
21
21
  concurrent-ruby (1.0.2)
22
22
  diff-lcs (1.2.5)
23
- httparty (0.13.7)
24
- json (~> 1.8)
23
+ httparty (0.14.0)
25
24
  multi_xml (>= 0.5.2)
26
25
  i18n (0.7.0)
27
- json (1.8.3)
28
26
  method_source (0.8.2)
29
- minitest (5.9.0)
27
+ minitest (5.9.1)
30
28
  multi_xml (0.5.5)
31
29
  pry (0.10.1)
32
30
  coderay (~> 1.1.0)
@@ -50,6 +48,7 @@ GEM
50
48
  timecop (0.7.1)
51
49
  tzinfo (1.2.2)
52
50
  thread_safe (~> 0.1)
51
+ yajl-ruby (1.2.1)
53
52
 
54
53
  PLATFORMS
55
54
  ruby
@@ -64,4 +63,4 @@ DEPENDENCIES
64
63
  timecop
65
64
 
66
65
  BUNDLED WITH
67
- 1.12.5
66
+ 1.13.1
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "timecop"
27
27
 
28
28
  spec.add_dependency "httparty"
29
- spec.add_dependency "json"
29
+ spec.add_dependency "yajl-ruby"
30
30
  spec.add_dependency "activesupport"
31
31
  spec.add_dependency "addressable"
32
32
  end
@@ -1,3 +1,10 @@
1
+ # External
2
+ require 'httparty'
3
+ require 'yajl'
4
+ require 'logger'
5
+ require 'addressable/uri'
6
+ require 'uri'
7
+
1
8
  require "gnip_api/version"
2
9
  require "gnip_api/errors"
3
10
  require "gnip_api/configuration"
@@ -18,13 +25,8 @@ require "gnip_api/adapters/base_adapter"
18
25
  require "gnip_api/adapters/httparty_adapter"
19
26
  require "gnip_api/response"
20
27
  require "gnip_api/request"
28
+ require "gnip_api/json_parser"
21
29
 
22
- # External
23
- require 'httparty'
24
- require 'json'
25
- require 'logger'
26
- require 'addressable/uri'
27
- require 'uri'
28
30
 
29
31
  module GnipApi
30
32
  class << self
@@ -51,7 +51,7 @@ module GnipApi
51
51
  end
52
52
 
53
53
  def parse_rules data
54
- parsed_data = JSON.parse(data)
54
+ parsed_data = GnipApi::JsonParser.parse(data)
55
55
  parsed_data['rules'].map{|rule| GnipApi::Apis::PowerTrack::Rule.new(:value => rule['value'], :tag => rule['tag'])}
56
56
  end
57
57
 
@@ -48,8 +48,8 @@ module GnipApi
48
48
 
49
49
  def parse_json json
50
50
  begin
51
- JSON.parse json
52
- rescue JSON::ParserError
51
+ GnipApi::JsonParser.parse json
52
+ rescue GnipApi::Errors::JsonParser::ParseError
53
53
  nil
54
54
  end
55
55
  end
@@ -52,7 +52,7 @@ module GnipApi
52
52
  end
53
53
 
54
54
  def parse_counts_response data
55
- parsed_data = JSON.parse(data)
55
+ parsed_data = GnipApi::JsonParser.parse(data)
56
56
  result_set = parsed_data['results']
57
57
  params = parsed_data['requestParameters']
58
58
  result = {:results => [], :total_count => parsed_data['totalCount'], :next => parsed_data['next'], :request_parameters => {}}
@@ -66,7 +66,7 @@ module GnipApi
66
66
  end
67
67
 
68
68
  def parse_activities_response data
69
- parsed_data = JSON.parse(data)
69
+ parsed_data = GnipApi::JsonParser.parse(data)
70
70
  result_set = parsed_data['results']
71
71
  params = parsed_data['requestParameters']
72
72
  result = {:results => [], :next => parsed_data['next'], :request_parameters => {}}
@@ -1,5 +1,10 @@
1
1
  module GnipApi
2
2
  module Errors
3
+ module JsonParser
4
+ class ParseError < StandardError
5
+ end
6
+ end
7
+
3
8
  module Adapter
4
9
  class RequestError < StandardError
5
10
  def initialize msg='Request failed'
@@ -29,7 +29,7 @@ module Gnip
29
29
  end
30
30
 
31
31
  def generate_json data
32
- JSON.generate(data)
32
+ GnipApi::JsonParser.encode(data)
33
33
  end
34
34
 
35
35
  private
@@ -24,7 +24,7 @@ module Gnip
24
24
  end
25
25
 
26
26
  def to_json
27
- parse_json(original_attributes)
27
+ generate_json(original_attributes)
28
28
  end
29
29
  end
30
30
  end
@@ -0,0 +1,24 @@
1
+ module GnipApi
2
+ class JsonParser
3
+ def self.parse data
4
+ begin
5
+ return parser.parse(data)
6
+ rescue Yajl::ParseError => error
7
+ raise GnipApi::Errors::JsonParser::ParseError.new("Yajl failed to parse: #{error.class} -- #{error.message}")
8
+ end
9
+ end
10
+
11
+ def self.encode data
12
+ return encoder.encode(data)
13
+ end
14
+
15
+ private
16
+ def self.parser
17
+ Yajl::Parser.new
18
+ end
19
+
20
+ def self.encoder
21
+ Yajl::Encoder.new
22
+ end
23
+ end
24
+ end
@@ -26,7 +26,7 @@ module GnipApi
26
26
 
27
27
  def error_message
28
28
  if @body && !@body.empty?
29
- parsed = JSON.parse(@body)
29
+ parsed = GnipApi::JsonParser.parse(@body)
30
30
  return parsed['error']['message'] if parsed['error']
31
31
  end
32
32
  return nil
@@ -1,3 +1,3 @@
1
1
  module GnipApi
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe GnipApi::JsonParser do
4
+ describe ".parse" do
5
+ it 'parses a JSON object' do
6
+ output = GnipApi::JsonParser.parse('{"key":"value","key2":"value2"}')
7
+ expect(output).to eq({'key' => 'value', 'key2' => 'value2'})
8
+ end
9
+ end
10
+
11
+ describe ".encode" do
12
+ it 'generates a JSON object' do
13
+ output = GnipApi::JsonParser.encode({:key => 'value', :key2 => 'value2'})
14
+ expect(output).to eq('{"key":"value","key2":"value2"}')
15
+ end
16
+ end
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnip_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rayko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-20 00:00:00.000000000 Z
11
+ date: 2016-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: json
112
+ name: yajl-ruby
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -185,6 +185,7 @@ files:
185
185
  - lib/gnip_api/gnip/message.rb
186
186
  - lib/gnip_api/gnip/system_message.rb
187
187
  - lib/gnip_api/gnip/url.rb
188
+ - lib/gnip_api/json_parser.rb
188
189
  - lib/gnip_api/request.rb
189
190
  - lib/gnip_api/response.rb
190
191
  - lib/gnip_api/version.rb
@@ -226,6 +227,7 @@ files:
226
227
  - spec/gnip_api/gnip/activity_spec.rb
227
228
  - spec/gnip_api/gnip/gnip_data_spec.rb
228
229
  - spec/gnip_api/gnip/message_spec.rb
230
+ - spec/gnip_api/json_parser_spec.rb
229
231
  - spec/gnip_api/request_spec.rb
230
232
  - spec/gnip_api/response_spec.rb
231
233
  - spec/lib/test_adapter.rb
@@ -294,6 +296,7 @@ test_files:
294
296
  - spec/gnip_api/gnip/activity_spec.rb
295
297
  - spec/gnip_api/gnip/gnip_data_spec.rb
296
298
  - spec/gnip_api/gnip/message_spec.rb
299
+ - spec/gnip_api/json_parser_spec.rb
297
300
  - spec/gnip_api/request_spec.rb
298
301
  - spec/gnip_api/response_spec.rb
299
302
  - spec/lib/test_adapter.rb