class Paspartout

Public Class Methods

new(api_key) click to toggle source
# File lib/paspartout-api.rb, line 7
def initialize api_key
  @api_key = api_key
  @loaded  = {}
end

Public Instance Methods

errors() click to toggle source
# File lib/paspartout-api.rb, line 12
def errors
  @errors
end
loaded?() click to toggle source
# File lib/paspartout-api.rb, line 16
def loaded?
  @errors.empty?
end
page(id) click to toggle source
# File lib/paspartout-api.rb, line 36
def page id
  return @loaded[:"page_#{ id }"] if @loaded[:"page_#{ id }"]

  if result = get("/pages/#{ id }")
    @loaded[:"page_#{ id }"] = result
  end
end
pages() click to toggle source
# File lib/paspartout-api.rb, line 28
def pages
  return @loaded[:pages] if @loaded[:pages]

  if result = get('/pages')
    @loaded[:pages] = result
  end
end
site() click to toggle source
# File lib/paspartout-api.rb, line 20
def site
  return @loaded[:site] if @loaded[:site]

  if result = get
    @loaded[:site] = result
  end
end

Private Instance Methods

get(path = '') click to toggle source
# File lib/paspartout-api.rb, line 56
def get path = ''
  @errors = []
  
  request = HTTParty.get("http://api.paspartout.com/public/v2/#{ @api_key }#{ path }.json")
  result  = Hashie::Mash.new({ body: JSON.parse(request.body) })

  if ''.respond_to?(:html_safe)
    result = make_html_safe(result)
  end
  
  if result.error
    @errors.push(result.error)

    false
  else
    result.body
  end
end
make_html_safe(value) click to toggle source
# File lib/paspartout-api.rb, line 75
def make_html_safe value
  case value.class.to_s
  when 'String'
    value = HTMLEntities.new.decode(value).html_safe
  when 'Array'
    value.each.with_index do |v, i|
      value[i] = make_html_safe(v)
    end
  when 'Hash'
  when 'Hashie::Mash'
    value.each_pair do |k, v|
      value[k] = make_html_safe(v)
    end
  end

  value
end