Sha256: 13b49a1e8fec9c3a8a999e0bb0a06581d0d53aac689a707bbcd0decc893d3118

Contents?: true

Size: 881 Bytes

Versions: 3

Compression:

Stored size: 881 Bytes

Contents

require "red_cap/version"
require "red_cap/client"
require "red_cap/form"

class REDCap
  class << self
    def configure
      yield self
    end

    attr_accessor :url, :token, :per_page

    def per_page
      @per_page ||= 100
    end
  end

  def form
    @form ||= Form.new(client.metadata)
  end

  def find study_id
    client.find_record study_id
  end

  def all &block
    client.records &block
  end

  def where conditions, &block
    filters = conditions.reduce([]) do |filters, (field, value)|
      filters << "[#{field}]=#{value}"
    end
    client.records(filters.join(" AND "), &block)
  end

  def update study_id, attributes
    record = attributes.merge(study_id: study_id).stringify_keys
    client.save_records [record]
  end

  def delete study_id
    client.delete_records [study_id]
  end

  private

  def client
    @client ||= Client.new
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
red_cap-0.10.2 lib/red_cap.rb
red_cap-0.10.1 lib/red_cap.rb
red_cap-0.10.0 lib/red_cap.rb