lib/provisional/scm/unfuddle_svn.rb in vigetlabs-provisional-2.1.2 vs lib/provisional/scm/unfuddle_svn.rb in vigetlabs-provisional-2.1.3

- old
+ new

@@ -1,43 +1,18 @@ require 'provisional/scm/svn' -require 'net/http' -require 'builder' +require 'provisional/unfuddle_common' module Provisional module SCM class UnfuddleSvn < Provisional::SCM::Svn def initialize(options) - %w(username password domain id).each do |opt| - raise ArgumentError, "#{opt} must be specified" unless options[opt] - end + ensure_required_options(options) super end def init - begin - xml = Builder::XmlMarkup.new - xml.repository do - xml.abbreviation @options['name'] - xml.title @options['name'] - xml.system 'svn' - xml.projects do - xml.project(:id => @options['id']) - end - end - - http = Net::HTTP.new("#{@options['domain']}.unfuddle.com", 80) - request = Net::HTTP::Post.new('/api/v1/repositories.xml', 'Content-Type' => 'application/xml') - request.basic_auth(@options['username'], @options['password']) - request.body = xml.target! - response, data = http.request(request) - unless response.code == "201" - raise RuntimeError, "Repository not created on Unfuddle due to HTTP error: #{response.code}" - end - - @options['url'] = "http://#{@options['domain']}.unfuddle.com/svn/#{@options['domain']}_#{@options['name']}/" - rescue - raise RuntimeError, "Repository not created on Unfuddle due to exception: #{$!}" - end + create_repository(@options) + @options['url'] = "http://#{@options['domain']}.unfuddle.com/svn/#{@options['domain']}_#{@options['name']}/" end end end end