meetup_client 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 57971f7039ddd4835366b049c60ea6cd1876ea7d
4
+ data.tar.gz: f79ab80c189b61e0738350bd6623485a1df58a87
5
+ SHA512:
6
+ metadata.gz: cd8a8e3cba35e20dd34c93206bac037a5604131022fecfb7e26cf66973f9f773f8913b0f6536870f7b36866c2698038419e458f6d58f0f732e42dbb9588edf8d
7
+ data.tar.gz: f8a55c76c8118b58dee830a0c9f722363505557a3e5ca8a2f179a98485c13c5fa0c2152dc3d8d1e1859ba1723c356dc293a3b3168c8ff298f504dfecc859cc0c
@@ -23,7 +23,7 @@ module ApiCallers
23
23
  end
24
24
 
25
25
  def class_to_call
26
- "Net::HTTP::#{@method.capitalize}".constantize
26
+ Kernel.const_get("Net::HTTP::#{@method.capitalize}")
27
27
  end
28
28
 
29
29
  end
@@ -1,15 +1,10 @@
1
1
  require 'api_callers/http_request'
2
+ require 'json'
2
3
 
3
4
  module ApiCallers
4
5
  class JsonRequest < HttpRequest
5
6
  def format_response(response_body)
6
- ActiveSupport::JSON.decode(clean_response_body(response_body))
7
- end
8
-
9
- private
10
-
11
- def clean_response_body(response_body)
12
- ActionController::Base.helpers.strip_tags(response_body.gsub('\"','').force_encoding(CHARSET))
7
+ JSON.parse(response_body)
13
8
  end
14
9
  end
15
10
  end
@@ -12,7 +12,11 @@ Gem::Specification.new do |s|
12
12
  s.files = %w(README.md Rakefile meetup_client.gemspec)
13
13
  s.files += Dir.glob("lib/**/*.rb")
14
14
  s.files += Dir.glob("spec/**/*")
15
- s.version = '0.0.6'
16
- s.homepage = 'https://rubygems.org/gems/meetup_client'
15
+ s.version = '0.0.7'
16
+ s.homepage = 'https://rubygems.org/gems/meetup_client'
17
17
  s.license = 'MIT'
18
+ s.add_development_dependency "bundler", "~> 1.5"
19
+ s.add_development_dependency "rake"
20
+ s.add_development_dependency "rspec"
21
+ s.add_development_dependency "pry"
18
22
  end
@@ -2,22 +2,36 @@ require 'spec_helper'
2
2
  require 'net/http'
3
3
 
4
4
  describe ::ApiCallers::HttpRequest do
5
- subject { ::ApiCallers::HttpRequest.new('') }
5
+ subject { ::ApiCallers::HttpRequest.new('some_uri', http_verb) }
6
+ let(:http_verb) { 'get' }
6
7
 
7
- describe "#headers" do
8
- it "returns { 'Accept-Charset' => 'utf-8' }" do
9
- expect(subject.send(:headers)).to eq({ 'Accept-Charset' => 'UTF-8' })
8
+ describe "#make_request" do
9
+ let(:http_obj) { double('http', request: request) }
10
+ let(:request) { double('request', body: { response: 'response'}) }
11
+ let(:url) { double('url', request_uri: 'request_uri', host: 'host', port: 'port') }
12
+
13
+ before do
14
+ allow(URI).to receive(:parse).and_return(url)
15
+ allow(Net::HTTP).to receive(:new).and_return(http_obj)
10
16
  end
11
- end
12
17
 
13
- describe "#class_to_call" do
14
- it "returns Net::HTTP::Get by default" do
15
- expect(subject.send(:class_to_call)).to eq Net::HTTP::Get
18
+ context 'get request' do
19
+ it 'make a request to the provided url' do
20
+ allow(Net::HTTP::Get).to receive(:new).with('request_uri', { 'Accept-Charset' => 'UTF-8' }).and_return(:get_request)
21
+ expect(Net::HTTP).to receive(:new)
22
+ expect(http_obj).to receive(:request).with(:get_request)
23
+ subject.make_request
24
+ end
16
25
  end
17
26
 
18
- it "returns the class to call based on the request method, whether it is 'get', 'post', or 'delete'" do
19
- json_request = ::ApiCallers::JsonRequest.new('', 'post')
20
- expect(json_request.send(:class_to_call)).to eq Net::HTTP::Post
27
+ context 'post request' do
28
+ let(:http_verb) { 'post' }
29
+ it 'make a request to the provided url' do
30
+ allow(Net::HTTP::Post).to receive(:new).with('request_uri', { 'Accept-Charset' => 'UTF-8' }).and_return(:post_request)
31
+ expect(Net::HTTP).to receive(:new)
32
+ expect(http_obj).to receive(:request).with(:post_request)
33
+ subject.make_request
34
+ end
21
35
  end
22
36
  end
23
37
  end
@@ -2,18 +2,18 @@ require 'spec_helper'
2
2
  require 'net/http'
3
3
 
4
4
  describe ::ApiCallers::JsonRequest do
5
- subject { ::ApiCallers::JsonRequest.new('') }
6
-
7
- describe "#clean_response_body" do
8
- let(:body_response) { 'I\'m the \"Best\"' }
5
+ subject { ::ApiCallers::JsonRequest.new(response_body) }
6
+ let(:response_body) do
7
+ '{ "response": "I\'m the \"Best\"" }'
8
+ end
9
9
 
10
- it "removed \" from the passed text " do
11
- expect(subject.send(:clean_response_body, body_response)).to eq 'I\'m the Best'
10
+ describe "#format_response" do
11
+ let(:expected_json) do
12
+ { "response" => 'I\'m the "Best"' }
12
13
  end
13
14
 
14
- it "forces the encoding to utf-8" do
15
- body_response.encode!('windows-1251')
16
- expect(subject.send(:clean_response_body, body_response).encoding.to_s).to eq 'UTF-8'
15
+ it "formats the response from meetup" do
16
+ expect(subject.format_response(response_body)).to eq expected_json
17
17
  end
18
18
  end
19
19
  end
data/spec/spec_helper.rb CHANGED
@@ -7,8 +7,6 @@ require 'api_callers/json_request'
7
7
  require 'meetup_api'
8
8
  require 'meetup_client'
9
9
  require 'net/http'
10
- require 'active_support'
11
- require 'action_controller'
12
10
  # Requires supporting ruby files with custom matchers and macros, etc,
13
11
  # in spec/support/ and its subdirectories.
14
12
  #Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meetup_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.0.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Cosimo Ranieri
@@ -10,7 +9,63 @@ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
11
  date: 2013-07-25 00:00:00.000000000 Z
13
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
14
69
  description: Easy way to access the Meetup.com API
15
70
  email: co.ranieri@gmail.com
16
71
  executables: []
@@ -34,26 +89,26 @@ files:
34
89
  homepage: https://rubygems.org/gems/meetup_client
35
90
  licenses:
36
91
  - MIT
92
+ metadata: {}
37
93
  post_install_message:
38
94
  rdoc_options: []
39
95
  require_paths:
40
96
  - lib
41
97
  required_ruby_version: !ruby/object:Gem::Requirement
42
- none: false
43
98
  requirements:
44
- - - ! '>='
99
+ - - ">="
45
100
  - !ruby/object:Gem::Version
46
101
  version: '0'
47
102
  required_rubygems_version: !ruby/object:Gem::Requirement
48
- none: false
49
103
  requirements:
50
- - - ! '>='
104
+ - - ">="
51
105
  - !ruby/object:Gem::Version
52
106
  version: '0'
53
107
  requirements: []
54
108
  rubyforge_project:
55
- rubygems_version: 1.8.23
109
+ rubygems_version: 2.0.3
56
110
  signing_key:
57
- specification_version: 3
111
+ specification_version: 4
58
112
  summary: Easy way to access the Meetup.com API
59
113
  test_files: []
114
+ has_rdoc: