class Stash::Server
Attributes
logger[RW]
password[RW]
root_uri[RW]
user[RW]
Public Class Methods
new(root_uri, user, password, logger = nil)
click to toggle source
# File lib/stash/server.rb, line 8 def initialize(root_uri, user, password, logger = nil) self.root_uri = root_uri self.user = user self.password = password self.logger = logger end
Public Instance Methods
get(path)
click to toggle source
# File lib/stash/server.rb, line 21 def get(path) logged('Response') do HTTParty.get(endpoint + path, auth.merge(logging)) end end
post(path, data)
click to toggle source
# File lib/stash/server.rb, line 27 def post(path, data) logged('Response') do HTTParty.post(endpoint + path, auth.merge(content_type).merge(body: data.to_json).merge(logging)) end end
repository(project_key, repository_slug)
click to toggle source
# File lib/stash/server.rb, line 15 def repository(project_key, repository_slug) key = "#{project_key}/#{repository_slug}" @repositories ||= {} @repositories[key] ||= Repository.new(self, project_key, repository_slug) end
Private Instance Methods
auth()
click to toggle source
# File lib/stash/server.rb, line 39 def auth { basic_auth: { username: user, password: password } } end
content_type()
click to toggle source
# File lib/stash/server.rb, line 48 def content_type { headers: { 'Content-Type' => 'application/json' } } end
endpoint()
click to toggle source
# File lib/stash/server.rb, line 35 def endpoint "#{root_uri}/rest/api/1.0" end
logged(label) { || ... }
click to toggle source
# File lib/stash/server.rb, line 56 def logged(label) if logger result = yield logger.debug("#{label}:\n#{result}") result else yield end end
logging()
click to toggle source
# File lib/stash/server.rb, line 66 def logging if logger { logger: logger, log_level: :debug } else {} end end