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 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