red_cap 0.3.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 17f8b084c1543f1c9ebda525009e0b117e4376ca
4
- data.tar.gz: 861b0f0b47d80da062846a58a0216c3d365b68b0
2
+ SHA256:
3
+ metadata.gz: d3d586cf781b2e55fa4d879708049bc78be1cdd3f15b69d9779316aef52403d9
4
+ data.tar.gz: 4e5490c8e2e3447014f9df6d9fb23b1055227c1f36a584e734f3e8a1943018d4
5
5
  SHA512:
6
- metadata.gz: 6958e11b0de0d79a1770fcddc68a5639338fc4f933b973643d57160468bd6f1c07a7870eaae68d91fd2d03629c70a627083158bd5aa38b9cc190bd248418a3a8
7
- data.tar.gz: f19581696f6463a2daf2ccbaaf9993ea3d694999f5f20768df5724e0577c937a3a181fd65864458135ea838a6b47e236d5fc7fef4f4b1664784ff54e2e75532d
6
+ metadata.gz: 9ff3598b19c883f62409dc6dd6819686019b4fc72e08725e611d33cce284cfd24cc1bda21c2ff8bfd61d85f109bf07f5b188168ca88d132c4710712b237c0ff9
7
+ data.tar.gz: 65c5e4440ef12ae2a127ace752730a1687900b989eb4a070dc16eb72088f71945910a9921d4c8d1e965174b371c6d03c86263ebe85b561c141e3468e94753b88
@@ -23,7 +23,7 @@ module REDCap
23
23
  record: record_id,
24
24
  field: file_id,
25
25
  })
26
- _, type, filename = *response.headers["content-type"].match(/\A(.+); name=\"(.+)\"\z/)
26
+ _, type, filename = *response.headers["content-type"].match(/\A(.+); name=\"(.+)\"/)
27
27
  File.new(response.body, type, filename)
28
28
  end
29
29
 
@@ -40,9 +40,15 @@ module REDCap
40
40
 
41
41
  def base_request options
42
42
  connection = Faraday.new(url: @url)
43
- connection.post(nil, options.reverse_merge({
43
+ response = connection.post(nil, options.reverse_merge({
44
44
  token: @token,
45
45
  }))
46
+ if error_message = response.body[/<error>(.+?)<\/error>/, 1]
47
+ raise Error.new(error_message)
48
+ end
49
+ response
46
50
  end
51
+
52
+ class Error < StandardError; end
47
53
  end
48
54
  end
@@ -51,7 +51,11 @@ module REDCap
51
51
  end
52
52
 
53
53
  class Text < Field; end
54
- class Notes < Field; end
54
+ class Notes < Text
55
+ def text?
56
+ true
57
+ end
58
+ end
55
59
  class Descriptive < Field; end
56
60
  class Dropdown < Field; end
57
61
  class Sql < Field; end
@@ -109,16 +113,20 @@ module REDCap
109
113
  class CheckboxesWithOther < Checkboxes
110
114
  def value
111
115
  selected_options.map do |key, value|
112
- if key == "501" # Other
113
- "#{value}: #{other_text_field&.value}"
116
+ if other?(key)
117
+ "#{value}: #{other_text_field(key).value}"
114
118
  else
115
119
  value
116
120
  end
117
121
  end
118
122
  end
119
123
 
120
- def other_text_field
121
- associated_fields_for_key("501").find(&:text?)
124
+ def other_text_field key
125
+ associated_fields_for_key(key).find(&:text?)
126
+ end
127
+
128
+ def other? key
129
+ other_text_field(key)
122
130
  end
123
131
  end
124
132
 
@@ -127,11 +135,15 @@ module REDCap
127
135
 
128
136
  class CheckboxesWithRadioButtonsOrOther < CheckboxesWithOther
129
137
  def value
130
- radio_values = selected_options.keys.map do |key|
131
- radio_field_for(key).value
138
+ radio_or_other_values = selected_options.keys.map do |key|
139
+ if other?(key)
140
+ other_text_field(key)&.value
141
+ else
142
+ radio_field_for(key)&.value
143
+ end
132
144
  end
133
145
 
134
- Hash[super.zip(radio_values)]
146
+ Hash[selected_options.values.zip(radio_or_other_values)]
135
147
  end
136
148
 
137
149
  private
@@ -150,7 +162,7 @@ module REDCap
150
162
  end
151
163
 
152
164
  if selected_options.keys.include?("501")
153
- right[-1] = [other_text_field&.value]
165
+ right[-1] = [other_text_field("501")&.value]
154
166
  end
155
167
 
156
168
  Hash[left.zip(right)]
@@ -1,3 +1,3 @@
1
1
  module REDCap
2
- VERSION = "0.3.0"
2
+ VERSION = "0.5.1"
3
3
  end
data/red_cap.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "faraday"
25
25
  spec.add_dependency "activesupport"
26
26
 
27
- spec.add_development_dependency "bundler", "~> 1.16"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
27
+ spec.add_development_dependency "bundler"
28
+ spec.add_development_dependency "rake"
29
+ spec.add_development_dependency "rspec"
30
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: red_cap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-03 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -42,44 +42,44 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.16'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.16'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '0'
83
83
  description: Library for connecting to REDCap and parsing forms and data
84
84
  email:
85
85
  - micah@botandrose.com
@@ -123,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.6.14
126
+ rubygems_version: 3.0.8
128
127
  signing_key:
129
128
  specification_version: 4
130
129
  summary: Library for connecting to REDCap and parsing forms and data