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