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