app/models/calagator/source/importer.rb in calagator-1.0.0 vs app/models/calagator/source/importer.rb in calagator-1.1.0
- old
+ new
@@ -1,46 +1,44 @@
module Calagator
+ class Source < ActiveRecord::Base
+ class Importer < Struct.new(:source, :events)
+ def initialize(params)
+ self.source = Source.find_or_create_by(params)
+ end
-class Source < ActiveRecord::Base
- class Importer < Struct.new(:source, :events)
- def initialize params
- self.source = Source.find_or_create_by(params)
- end
+ def import
+ return unless source.valid?
- def import
- return unless source.valid?
- self.events = source.create_events!
+ self.events = source.create_events!
- self.events.present?
+ events.present?
+ rescue Source::Parser::NotFound
+ add_error 'No events found at remote site. Is the event identifier in the URL correct?'
+ rescue Source::Parser::HttpAuthenticationRequiredError
+ add_error "Couldn't import events, remote site requires authentication."
+ rescue OpenURI::HTTPError
+ add_error "Couldn't download events, remote site may be experiencing connectivity problems."
+ rescue Errno::EHOSTUNREACH
+ add_error "Couldn't connect to remote site."
+ rescue SocketError
+ add_error "Couldn't find IP address for remote site. Is the URL correct?"
+ rescue Exception => e
+ add_error "Unknown error: #{e}"
+ end
- rescue Source::Parser::NotFound
- add_error "No events found at remote site. Is the event identifier in the URL correct?"
- rescue Source::Parser::HttpAuthenticationRequiredError
- add_error "Couldn't import events, remote site requires authentication."
- rescue OpenURI::HTTPError
- add_error "Couldn't download events, remote site may be experiencing connectivity problems."
- rescue Errno::EHOSTUNREACH
- add_error "Couldn't connect to remote site."
- rescue SocketError
- add_error "Couldn't find IP address for remote site. Is the URL correct?"
- rescue Exception => e
- add_error "Unknown error: #{e}"
- end
-
- def failure_message
- if events.nil?
- "Unable to import: #{source.errors.full_messages.to_sentence}"
- else
- "Unable to find any upcoming events to import from this source"
+ def failure_message
+ if events.nil?
+ "Unable to import: #{source.errors.full_messages.to_sentence}"
+ else
+ 'Unable to find any upcoming events to import from this source'
+ end
end
- end
- private
+ private
- def add_error message
- source.errors.add :base, message
- nil
+ def add_error(message)
+ source.errors.add :base, message
+ nil
+ end
end
end
-end
-
end