Top Level Namespace
Defined Under Namespace
Modules: Provisional
Instance Method Summary collapse
- #create_repository(options) ⇒ Object
- #ensure_required_options(options) ⇒ Object
- #rescuing_exceptions(&block) ⇒ Object
- #xml_payload(options) ⇒ Object
Instance Method Details
#create_repository(options) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/provisional/unfuddle_common.rb', line 23 def create_repository() begin 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(['username'], ['password']) request.body = xml_payload() response, data = http.request(request) unless response.code == "201" raise RuntimeError, "Repository not created on Unfuddle due to HTTP error: #{response.code}" end rescue raise RuntimeError, "Repository not created on Unfuddle due to exception: #{$!}" end end |
#ensure_required_options(options) ⇒ Object
4 5 6 7 8 |
# File 'lib/provisional/unfuddle_common.rb', line 4 def () %w(username password domain id).each do |opt| raise ArgumentError, "#{opt} must be specified" unless [opt] end end |
#rescuing_exceptions(&block) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/provisional.rb', line 5 def rescuing_exceptions(&block) begin yield rescue raise RuntimeError, "Repository not created due to exception: #{$!}" end end |
#xml_payload(options) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/provisional/unfuddle_common.rb', line 10 def xml_payload() xml = Builder::XmlMarkup.new xml.repository do xml.abbreviation ['name'] xml.title ['name'] xml.system ['scm'] xml.projects do xml.project(:id => ['id']) end end return xml.target! end |