class Populr
Attributes
api_key[R]
api_server[RW]
api_version[R]
Public Class Methods
interpret_response(result, result_content, options = {})
click to toggle source
# File lib/populr.rb, line 30 def self.interpret_response(result, result_content, options = {}) # Handle HTTP errors and RestClient errors raise ResourceNotFound.new if result.code.to_i == 404 raise AccessDenied.new if result.code.to_i == 403 # Handle content expectation errors raise UnexpectedResponse.new if options[:expected_class] && result_content.empty? json = JSON.parse(result_content) raise APIError.new(json['error_type'], json['error']) if json.is_a?(Hash) && json['error_type'] raise UnexpectedResponse.new(result.msg) if result.is_a?(Net::HTTPClientError) raise UnexpectedResponse.new if options[:expected_class] && !json.is_a?(options[:expected_class]) json rescue JSON::ParserError => e # Handle parsing errors raise UnexpectedResponse.new(e.message) end
new(api_key, api_server = 'https://api.populr.me')
click to toggle source
# File lib/populr.rb, line 50 def initialize(api_key, api_server = 'https://api.populr.me') raise "When overriding the Populr API server address, you must include https://" unless api_server.include?('://') @api_server = api_server @api_version = 'v0' @api_key = api_key RestClient.add_before_execution_proc do |req, params| req.add_field('X-Populr-API-Wrapper', 'ruby') end end
Public Instance Methods
background_images()
click to toggle source
# File lib/populr.rb, line 86 def background_images @background_images ||= RestfulModelCollection.new(BackgroundImageAsset, self) @background_images end
documents()
click to toggle source
# File lib/populr.rb, line 76 def documents @documents ||= RestfulModelCollection.new(DocumentAsset, self) @documents end
domains()
click to toggle source
# File lib/populr.rb, line 71 def domains @domains ||= RestfulModelCollection.new(Domain, self) @domains end
embeds()
click to toggle source
# File lib/populr.rb, line 91 def embeds @embeds ||= RestfulModelCollection.new(EmbedAsset, self) @embeds end
images()
click to toggle source
# File lib/populr.rb, line 81 def images @images ||= RestfulModelCollection.new(ImageAsset, self) @images end
pops()
click to toggle source
# File lib/populr.rb, line 66 def pops @pops ||= RestfulModelCollection.new(Pop, self) @pops end
templates()
click to toggle source
# File lib/populr.rb, line 61 def templates @templates ||= RestfulModelCollection.new(Template, self) @templates end
url_for_path(path)
click to toggle source
# File lib/populr.rb, line 96 def url_for_path(path) protocol, domain = @api_server.split('//') "#{protocol}//#{@api_key}:@#{domain}/#{@api_version}#{path}" end