class Pdf4me::WrapperAction

Attributes

client[R]

Public Class Methods

new(attrs = {}) click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 20
def initialize(attrs = {})
  attributes = defaults.merge(attrs)
  assign_attributes(attributes)
end

Public Instance Methods

assign_attributes(attributes = {}) click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 13
def assign_attributes(attributes = {})
  attributes.to_h.each do |key, value|
    writer_method = "#{key}="
    send(writer_method, value) if respond_to?(writer_method)
  end
end
defaults() click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 25
def defaults
  {}
end
run() click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 29
def run
  return false if invalid?
  call_api.success?
end
run!() click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 34
def run!
  validate!
  call_api.success?
end

Protected Instance Methods

download(request, path) click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 41
def download(request, path)
  downloaded_file = File.open(path, 'wb')
  encoding = nil

  request.on_headers do |response|
    if response.code != 200
      fail InvalidStatusCode.new(code: response.code, error: response.body)
    end
    encoding = response.body.encoding
  end
  request.on_body do |chunk|
    chunk.force_encoding(encoding)
    downloaded_file.write(chunk)
  end

  request.on_complete do |response|
    downloaded_file.close
  end
end
parsed_json_response(response) click to toggle source
# File lib/pdf4me/actions/wrapper_action.rb, line 61
def parsed_json_response(response)
  JSON.parse(response, symbolize_names: true)
end