class RedcapSurveyApi::RedcapApi

Constants

DEFAULT_PARAMS

Public Class Methods

new(params = {}) click to toggle source
# File lib/redcap-survey-api.rb, line 15
def initialize(params = {})
  @payload = DEFAULT_PARAMS.merge(params)
end

Public Instance Methods

export(params = {}) click to toggle source
# File lib/redcap-survey-api.rb, line 19
def export(params = {})
  return api(params)
end
export_metadata(params = {}) click to toggle source
# File lib/redcap-survey-api.rb, line 23
def export_metadata(params = {})
  payload = {:content => 'metadata'}.merge(params)
  return export(payload)
end
export_metadata_fields() click to toggle source
# File lib/redcap-survey-api.rb, line 28
def export_metadata_fields
  response = export_metadata()
  if response
    response.collect {|r| r['field_name'] if r }
  end
end
import(params = {}) click to toggle source
# File lib/redcap-survey-api.rb, line 35
def import(params = {})
  return api(params)
end

Private Instance Methods

api(params = {}) click to toggle source
# File lib/redcap-survey-api.rb, line 40
def api(params = {})
  payload = @payload.merge(params)
  validate(payload)

  return payload[:parser].parse(Mechanize.new.post(@url, payload).body)
end
validate(params) click to toggle source
# File lib/redcap-survey-api.rb, line 47
def validate(params)
  [:token, :url].each do |required_param|
    if (false == params.include?(required_param))
      raise "!ERROR: '#{required_param}' is a required parameter."
    end
  end

  if ((false == "#{params[:parser]}".include?("EmptyParser")) && (false == "#{params[:parser]}".downcase.include?(params[:format])))
    $stderr.puts "!WARNING: Your parser '#{params[:parser]}' and your default format '#{params[:format]}' don't seem to match."
  end
end