module Hackpad::Cli::Api

Public Instance Methods

cleanup_md(text) click to toggle source
# File lib/hackpad/cli/api.rb, line 56
def cleanup_md(text)
  back = ReverseMarkdown.convert(text, github_flavored: true).strip
  back.gsub!(/\n-\s*\n/m, "\n") # empty list items
  back.gsub!(/\n\\*\s*\n/m, "\n") # images are shown as \*
  back.gsub!(/-([^\n]+)\n\n  -/m, "-\\1\n  -") # avoid extra blank lines in lists
  back.gsub!(/\n(  )*-([^\n]+)\n?\n(  )*-([^\n]+)\n?\n/m, "\n\\1-\\2\n\\3-\\4\n") # another more generalist for lists
  back.gsub(/\n\n?\*\*([^\*]+)\*\*\n\n?/, "\n\n### \\1\n\n") # transform isolated titles from bold to h3
end
get(url, json = true, to_md = false) click to toggle source
# File lib/hackpad/cli/api.rb, line 39
def get(url, json = true, to_md = false)
  res = @hackpad.request :get, url
  if res.is_a? Net::HTTPOK
    if json
      JSON.parse(res.body)
    else
      if to_md
        cleanup_md(res.body)
      else
        res.body
      end
    end
  else
    fail ApiException, "HTTP error, code #{res.code}"
  end
end
list() click to toggle source
# File lib/hackpad/cli/api.rb, line 26
def list
  get '/api/1.0/pads/all'
end
prepare(workspace) click to toggle source
# File lib/hackpad/cli/api.rb, line 17
def prepare(workspace)
  @hackpad ||= OAuth::Consumer.new(workspace.client_id, workspace.secret, site: workspace.site)
  @version = File.read(File.expand_path('../../../../CHANGELOG.md', __FILE__))[/([0-9]+\.[0-9]+\.[0-9]+)/]
end
read(id, ext) click to toggle source
# File lib/hackpad/cli/api.rb, line 34
def read(id, ext)
  realext = (ext == 'md') ? 'html' : ext
  get "/api/1.0/pad/#{id}/content/latest.#{realext}", false, (ext == 'md')
end
read_options(id) click to toggle source
# File lib/hackpad/cli/api.rb, line 30
def read_options(id)
  get "/api/1.0/pad/#{id}/options"
end