Sha256: 38967dcb66a7607a2a8761fbabfa0f7d01e7e00526bc486eb65297602caf4e01
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
module Quaderno require 'httparty' require 'json' class Base < OpenStruct include HTTParty include Quaderno::Exceptions include Quaderno::Behavior::Crud base_uri 'https://quadernoapp.com/' @@auth_token = nil @@subdomain = nil @@rate_limit_info = nil def self.api_model(klass) instance_eval <<-END def api_model #{klass} end END class_eval <<-END def api_model #{klass} end END end #Default way to configure the authenticata data def self.configure yield self end def self.auth_token=(auth_token) @@auth_token = auth_token end def self.subdomain=(subdomain) @@subdomain = subdomain end def self.authorization(auth_token) begin party_response = get("/subdomain/api/v1/authorization.json", basic_auth: { username: auth_token }) return JSON::parse party_response.body rescue Errno::ECONNREFUSED return false end end #Check the connection def self.ping begin party_response = get("/#{ subdomain }/api/v1/ping.json", basic_auth: { username: auth_token }) rescue Errno::ECONNREFUSED return false end true end #Returns the rate limit information: limit and remaining requests def self.rate_limit_info party_response = get("/#{ subdomain }/api/v1/ping.json", basic_auth: { username: auth_token }) @@rate_limit_info = { limit: party_response.headers["x-ratelimit-limit"].to_i, remaining: party_response.headers["x-ratelimit-remaining"].to_i } end private def self.auth_token @@auth_token end def self.subdomain @_subdomain = @@subdomain end #Set or returns the model path for the url def self.api_path(api_path = nil) @_api_path ||= api_path end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
quaderno-1.2.1 | lib/quaderno-ruby/base.rb |
quaderno-1.2.0 | lib/quaderno-ruby/base.rb |