Permalink
Browse files

Merge pull request #1 from citizen428/master

Refactoring
  • Loading branch information...
2 parents 84655ac + 4ac6b91 commit 2560d9b0efebaf42ef651c3069a6e315519dfc16 @pxlpnk committed Jul 11, 2012
Showing with 14 additions and 17 deletions.
  1. +0 −3 Gemfile
  2. +1 −1 lib/kraken-build.rb
  3. +5 −13 lib/kraken-build/jenkins-api.rb
  4. +8 −0 spec/lib/{jenins_api_spec.rb → jenkins_api_spec.rb}
View
@@ -3,9 +3,6 @@ source 'https://rubygems.org'
gem "httparty"
gem "rake"
-gem "nokogiri"
-#gem "github_api"
-#gem "awesome_print"
group :test do
gem 'rspec'
View
@@ -1,5 +1,5 @@
require "httparty"
-require 'nokogiri'
+require 'rexml/document'
require 'cgi'
require "kraken-build/version"
@@ -1,9 +1,7 @@
class JenkinsApi
include HTTParty
-
def initialize(options = {})
-
if options[:port]
self.class.base_uri "#{options[:host]}:#{options[:port]}"
else
@@ -13,20 +11,17 @@ def initialize(options = {})
if(options[:username] && options[:password])
self.class.basic_auth options[:username] , options[:password]
end
-
end
def get_jobs(options = {})
response = self.class.get("/api/json/", options)
-
jobs = response["jobs"]
- jobs.map{|job| job["name"]}
+ jobs.map { |job| job["name"] }
end
def create_job(job, options = {})
- repo = job.split('.').first
- branch_name = job.split('.').last
+ repo, branch_name = job.split('.')
job_config = create_job_configuration(repo, branch_name)
options.merge!(
:body => job_config,
@@ -36,14 +31,11 @@ def create_job(job, options = {})
end
def create_job_configuration(repo, branch)
-
draft = get_job_configuration("#{repo}.master")
+ doc = REXML::Document.new(draft)
+ REXML::XPath.first(doc, '//branches//hudson.plugins.git.BranchSpec//name').text = branch
- doc = Nokogiri.XML(draft)
-
- doc.xpath('//branches//hudson.plugins.git.BranchSpec//name').first.content = "#{repo}.#{branch}"
-
- doc.to_xml
+ doc.to_s
end
def get_job_configuration(job, options = {})
@@ -80,6 +80,14 @@
@api.get_job_configuration("FooJob").should be(a)
end
+ it "#create_job_configuration returns a valid job configuration" do
+ xml = <<XML
+<xml><branches><hudson.plugins.git.BranchSpec><name>master</name></hudson.plugins.git.BranchSpec></branches></xml>
+XML
+ xml.should_receive(:body).and_return(xml)
+ @api.class.should_receive(:get).with('/job/foobar.master/config.xml', {}).and_return(xml)
+ @api.create_job_configuration('foobar', 'feature').should =~ /feature/
+ end
end

0 comments on commit 2560d9b

Please sign in to comment.