Class: Assemble::Client::Real
- Inherits:
-
Object
- Object
- Assemble::Client::Real
- Defined in:
- lib/assemble/client.rb,
lib/assemble/requests/get_tag.rb,
lib/assemble/requests/get_tags.rb,
lib/assemble/requests/create_tag.rb,
lib/assemble/requests/update_tag.rb,
lib/assemble/requests/destroy_tag.rb
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
- #create_tag(attributes) ⇒ Object
- #destroy_tag(id) ⇒ Object
- #get_tag(id) ⇒ Object
- #get_tags(params = {}) ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #request(options = {}) ⇒ Object
- #update_tag(id, attributes) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/assemble/client.rb', line 22 def initialize(={}) base_url = [:url] || ENV['RALLY_URL'] || "https://rally1.rallydev.com/slm/webservice/" version = [:version] || "v3.0" @url = URI.parse(File.join(base_url, version)) logger = [:logger] || Logger.new(nil) @token = [:token] adapter = [:adapter] || Faraday.default_adapter = [:connection_options] || {} @connection = Faraday.new({url: @url}.merge()) 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 |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
20 21 22 |
# File 'lib/assemble/client.rb', line 20 def connection @connection end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
20 21 22 |
# File 'lib/assemble/client.rb', line 20 def url @url end |
Instance Method Details
#create_tag(attributes) ⇒ Object
3 4 5 6 7 8 9 |
# 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) ⇒ Object
3 4 5 6 7 8 9 |
# 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) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/assemble/requests/get_tag.rb', line 3 def get_tag(id) request( :body => nil, :path => "/tags/#{id}", ) end |
#get_tags(params = {}) ⇒ Object
3 4 5 6 7 |
# File 'lib/assemble/requests/get_tags.rb', line 3 def (params={}) request( :path => "/tags", ) end |
#request(options = {}) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/assemble/client.rb', line 52 def request(={}) method = ([:method] || "get").to_s.downcase.to_sym url = Addressable::URI.parse([:url] || File.join(@url.to_s, [:path] || "/")) url.query_values = (url.query_values || {}).merge([:query] || {}) params = [:params] || {} body = [:body] headers = [: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) ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/assemble/requests/update_tag.rb', line 3 def update_tag(id, attributes) request( :body => {"Tag" => attributes}, :path => "/tag/#{id}", :method => :post, ) end |