class Camp3::Client
Wrapper for the Camp3
REST API.
Public Class Methods
new(options = {})
click to toggle source
Creates a new API. @raise [Error:MissingCredentials]
# File lib/camp3/client.rb, line 24 def initialize(options = {}) @config = Configuration.new(options) end
Public Instance Methods
configure() { |config| ... }
click to toggle source
Allows setting configuration values for this client returns the client instance being configured
# File lib/camp3/client.rb, line 42 def configure yield @config self end
inspect()
click to toggle source
Text representation of the client, masking private token.
@return [String]
Calls superclass method
# File lib/camp3/client.rb, line 51 def inspect inspected = super inspected.sub! @config.access_token, only_show_last_four_chars(@config.access_token) if @config.access_token inspected end
url_encode(url)
click to toggle source
Utility method for URL encoding of a string. Copied from ruby-doc.org/stdlib-2.7.0/libdoc/erb/rdoc/ERB/Util.html
@return [String]
# File lib/camp3/client.rb, line 61 def url_encode(url) url.to_s.b.gsub(/[^a-zA-Z0-9_\-.~]/n) { |m| sprintf('%%%02X', m.unpack1('C')) } # rubocop:disable Style/FormatString, Style/FormatStringToken end
Private Instance Methods
new_request()
click to toggle source
# File lib/camp3/client.rb, line 67 def new_request Request.new(@config.access_token, @config.user_agent, self) end
only_show_last_four_chars(token)
click to toggle source
# File lib/camp3/client.rb, line 71 def only_show_last_four_chars(token) "#{'*' * (token.size - 4)}#{token[-4..-1]}" end
url_transform(url)
click to toggle source
Utility method for transforming Basecamp Web URLs into API URIs e.g '3.basecamp.com/1/buckets/2/todos/3' will be converted into '3.basecampapi.com/1/buckets/2/todos/3.json'
@return [String]
# File lib/camp3/client.rb, line 80 def url_transform(url) api_uri = url.gsub('3.basecamp.com', '3.basecampapi.com') api_uri += '.json' unless url.end_with? '.json' api_uri end