lib/almanack/event_source/meetup_group.rb in almanack-1.0.3 vs lib/almanack/event_source/meetup_group.rb in almanack-1.0.4
- old
+ new
@@ -1,9 +1,5 @@
-require 'net/http'
-require 'json'
-require 'addressable/uri'
-
module Almanack
module EventSource
class MeetupGroup
def initialize(options = {})
@request_options = options
@@ -16,11 +12,11 @@
end
private
def events
- request = MeetupAPIRequest.new(@request_options)
+ request = MeetupAPIRequest.new(@request_options.clone)
request.results.map { |result| event_from(result) }
end
def event_from(result)
# 3 hours, as recommended by Meetup.com if duration isn't present
@@ -57,13 +53,14 @@
end
class MeetupAPIRequest
REQUIRED_OPTIONS = [:group_domain, :group_urlname, :group_id]
- attr_accessor :options
+ attr_reader :options, :connection
def initialize(options = {})
+ @connection = options.delete(:connection)
@options = options
end
def results
response['results']
@@ -84,11 +81,11 @@
uri.query_values = options
end
end
def response
- json = Net::HTTP.get(uri)
- data = JSON.parse(json)
+ response = connection.get(uri)
+ data = JSON.parse(response.body)
if data['problem']
raise MeetupAPIError, data['problem']
end