class Assemble::Client::Real
Attributes
connection[R]
url[R]
Public Class Methods
new(options={})
click to toggle source
# File lib/assemble/client.rb, line 22 def initialize(options={}) base_url = options[:url] || ENV['RALLY_URL'] || "https://rally1.rallydev.com/slm/webservice/" version = options[:version] || "v3.0" @url = URI.parse(File.join(base_url, version)) logger = options[:logger] || Logger.new(nil) @token = options[:token] adapter = options[:adapter] || Faraday.default_adapter connection_options = options[:connection_options] || {} @connection = Faraday.new({url: @url}.merge(connection_options)) do |builder| # response builder.response :json # request builder.request :retry, :max => 5, :interval => 1, :interval_randomness => 0.05, :backoff_factor => 2 builder.request :multipart builder.request :json builder.use Assemble::Logger, logger builder.adapter(*adapter) end end
Public Instance Methods
create_tag(attributes)
click to toggle source
# File lib/assemble/requests/create_tag.rb, line 3 def create_tag(attributes) request( :body => {"Tag" => attributes}, :path => "/tag/create", :method => :post, ) end
destroy_tag(id)
click to toggle source
# File lib/assemble/requests/destroy_tag.rb, line 3 def destroy_tag(id) request( :body => {"Tag" => attributes}, :path => "/tag/create", :method => :post, ) end
get_tag(id)
click to toggle source
# File lib/assemble/requests/get_tag.rb, line 3 def get_tag(id) request( :body => nil, :path => "/tags/#{id}", ) end
request(options={})
click to toggle source
# File lib/assemble/client.rb, line 52 def request(options={}) method = (options[:method] || "get").to_s.downcase.to_sym url = Addressable::URI.parse(options[:url] || File.join(@url.to_s, options[:path] || "/")) url.query_values = (url.query_values || {}).merge(options[:query] || {}) params = options[:params] || {} body = options[:body] headers = options[:headers] || {} if body.nil? && !params.empty? headers["Content-Type"] ||= "application/x-www-form-urlencoded" end headers.merge!("ZSESSIONID" => @token) if @token # Authentication params.merge!(key: @token) response = self.connection.send(method) do |req| req.url(url.to_s) req.headers.merge!(headers) req.params.merge!(params) req.body = body end Assemble::Response.new( :status => response.status, :headers => response.headers, :body => response.body, :request => { :method => method, :url => url, } ).raise! end
update_tag(id, attributes)
click to toggle source
# File lib/assemble/requests/update_tag.rb, line 3 def update_tag(id, attributes) request( :body => {"Tag" => attributes}, :path => "/tag/#{id}", :method => :post, ) end