meetup_client 0.0.6 → 0.0.7

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,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: