red_cap 0.3.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/red_cap/client.rb +8 -2
- data/lib/red_cap/form/fields.rb +21 -9
- data/lib/red_cap/version.rb +1 -1
- data/red_cap.gemspec +3 -3
- metadata +15 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d3d586cf781b2e55fa4d879708049bc78be1cdd3f15b69d9779316aef52403d9
|
4
|
+
data.tar.gz: 4e5490c8e2e3447014f9df6d9fb23b1055227c1f36a584e734f3e8a1943018d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ff3598b19c883f62409dc6dd6819686019b4fc72e08725e611d33cce284cfd24cc1bda21c2ff8bfd61d85f109bf07f5b188168ca88d132c4710712b237c0ff9
|
7
|
+
data.tar.gz: 65c5e4440ef12ae2a127ace752730a1687900b989eb4a070dc16eb72088f71945910a9921d4c8d1e965174b371c6d03c86263ebe85b561c141e3468e94753b88
|
data/lib/red_cap/client.rb
CHANGED
@@ -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=\"(.+)\"
|
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
|
data/lib/red_cap/form/fields.rb
CHANGED
@@ -51,7 +51,11 @@ module REDCap
|
|
51
51
|
end
|
52
52
|
|
53
53
|
class Text < Field; end
|
54
|
-
class Notes <
|
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
|
113
|
-
"#{value}: #{other_text_field
|
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(
|
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
|
-
|
131
|
-
|
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[
|
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)]
|
data/lib/red_cap/version.rb
CHANGED
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"
|
28
|
-
spec.add_development_dependency "rake"
|
29
|
-
spec.add_development_dependency "rspec"
|
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.
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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: '
|
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: '
|
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
|
-
|
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
|