poptart 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/poptart/boolean_question.rb +2 -2
- data/lib/poptart/question.rb +5 -3
- data/lib/poptart/survey_question.rb +5 -0
- data/lib/poptart/user.rb +4 -0
- data/lib/version.rb +1 -1
- data/spec/requests/answers_spec.rb +20 -0
- data/spec/requests/creating_questions_spec.rb +3 -2
- data/spec/vcr/creating/quesitons_returns_boolean_question.yml +72 -65
- data/spec/vcr/retrieving/answers_returns_all_answered_survey_questions_for_a_question_by_key.yml +7928 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfdbd0d66b974cabcf6e62b2df97b1e8017f3ccc
|
4
|
+
data.tar.gz: 7d33626b2410a15a1d33a49455846131ce25a5e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6ecfbc52ffb2defa46563ebe922aa3af6fb0b6e6e8ad140c40d307d034c40245daf2913f6e880f57998f51ef8eba0aa2740b2f2a478cfe929ce74b0db2f5f41
|
7
|
+
data.tar.gz: f723bb03523ad36b01100504f443bc8ecfb9a74c314a1720a98f095356ec93bf81b21656ec5a5021a9f959cd92aa522788877886f060a4642931768d9984b638
|
data/Gemfile.lock
CHANGED
@@ -2,9 +2,9 @@ module Poptart
|
|
2
2
|
class BooleanQuestion < Question
|
3
3
|
extend Poptart::Request
|
4
4
|
|
5
|
-
def self.create(text, freeform: false, absolute_index: nil, parent_question_id: nil)
|
5
|
+
def self.create(text, freeform: false, absolute_index: nil, parent_question_id: nil, key: nil)
|
6
6
|
super(text, responses: [true, false], freeform: freeform,
|
7
|
-
absolute_index: absolute_index, parent_question_id: parent_question_id)
|
7
|
+
absolute_index: absolute_index, parent_question_id: parent_question_id, key: key)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.question_type
|
data/lib/poptart/question.rb
CHANGED
@@ -2,7 +2,7 @@ module Poptart
|
|
2
2
|
class Question < Model
|
3
3
|
extend Poptart::Request
|
4
4
|
|
5
|
-
attr_accessor :responses, :freeform, :question_type, :absolute_index, :parent_question_id
|
5
|
+
attr_accessor :responses, :freeform, :question_type, :absolute_index, :parent_question_id, :key
|
6
6
|
|
7
7
|
def initialize(response)
|
8
8
|
super
|
@@ -11,15 +11,17 @@ module Poptart
|
|
11
11
|
@question_type = params['question_type']
|
12
12
|
@absolute_index = params['absolute_index']
|
13
13
|
@parent_question_id = params['parent_question_id']
|
14
|
+
@key = params['key']
|
14
15
|
end
|
15
16
|
|
16
|
-
def self.create(text, responses: [], freeform: false, absolute_index: nil, parent_question_id: nil)
|
17
|
+
def self.create(text, responses: [], freeform: false, absolute_index: nil, parent_question_id: nil, key: nil)
|
17
18
|
response = post(root.questions_url, question: { question_type: question_type,
|
18
19
|
responses: responses,
|
19
20
|
text: text,
|
20
21
|
freeform: freeform,
|
21
22
|
absolute_index: absolute_index,
|
22
|
-
parent_question_id: parent_question_id
|
23
|
+
parent_question_id: parent_question_id,
|
24
|
+
key: key})
|
23
25
|
new(response)
|
24
26
|
end
|
25
27
|
|
@@ -12,6 +12,7 @@ module Poptart
|
|
12
12
|
@freeform = params['freeform']
|
13
13
|
@responses = params['responses']
|
14
14
|
@answer = params['answer']
|
15
|
+
@created_at = params['created_at']
|
15
16
|
|
16
17
|
if @answer == 't'
|
17
18
|
@answer = true
|
@@ -40,6 +41,10 @@ module Poptart
|
|
40
41
|
@freeform == true
|
41
42
|
end
|
42
43
|
|
44
|
+
def created_at
|
45
|
+
DateTime.parse(@created_at)
|
46
|
+
end
|
47
|
+
|
43
48
|
def submit
|
44
49
|
response = put(links.put.href, { id: id, survey_question: { answer: answer} })
|
45
50
|
response.status == 204
|
data/lib/poptart/user.rb
CHANGED
@@ -43,5 +43,9 @@ module Poptart
|
|
43
43
|
response = get(url)
|
44
44
|
JSON.parse(response.body)["survey_questions"].map { |response_body| Poptart::SurveyQuestion.new(response_body) }
|
45
45
|
end
|
46
|
+
|
47
|
+
def survey_questions_for_key(key)
|
48
|
+
survey_questions_for_question_id(key)
|
49
|
+
end
|
46
50
|
end
|
47
51
|
end
|
data/lib/version.rb
CHANGED
@@ -19,4 +19,24 @@ describe 'retrieving answers' do
|
|
19
19
|
survey_questions = user.survey_questions_for_question_id(question.id)
|
20
20
|
survey_questions.map(&:answer).should =~ [true, false]
|
21
21
|
end
|
22
|
+
|
23
|
+
it "returns all answered survey questions for a question by key", :vcr do
|
24
|
+
key = 'testingooptarts'
|
25
|
+
question = Poptart::BooleanQuestion.create("Do you like poptarts?", key: key)
|
26
|
+
user = Poptart::User.create
|
27
|
+
|
28
|
+
survey = user.create_survey
|
29
|
+
first_survey_question = survey.add_question(question)
|
30
|
+
second_survey = user.create_survey
|
31
|
+
second_survey_question = second_survey.add_question(question)
|
32
|
+
|
33
|
+
first_survey_question.answer = true
|
34
|
+
first_survey_question.submit.should be
|
35
|
+
|
36
|
+
second_survey_question.answer = false
|
37
|
+
second_survey_question.submit.should be
|
38
|
+
|
39
|
+
survey_questions = user.survey_questions_for_key(key)
|
40
|
+
survey_questions.map(&:answer).should =~ [true, false]
|
41
|
+
end
|
22
42
|
end
|
@@ -2,13 +2,14 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'creating quesitons' do
|
4
4
|
it 'returns boolean question', :vcr do
|
5
|
-
question = Poptart::BooleanQuestion.create("Do you like poptarts?", freeform: true, absolute_index: 10, parent_question_id: 42)
|
5
|
+
question = Poptart::BooleanQuestion.create("Do you like poptarts?", freeform: true, absolute_index: 10, parent_question_id: 42, key: 'poptarts')
|
6
6
|
question.should be
|
7
7
|
question.question_type.should == 'boolean'
|
8
8
|
question.responses.should =~ [true, false]
|
9
9
|
question.absolute_index.should == 10
|
10
10
|
question.parent_question_id.should == 42
|
11
11
|
question.freeform?.should be
|
12
|
+
question.key.should == 'poptarts'
|
12
13
|
end
|
13
14
|
|
14
15
|
it 'returns multiple question', :vcr do
|
@@ -21,7 +22,7 @@ describe 'creating quesitons' do
|
|
21
22
|
|
22
23
|
it 'returns range question', :vcr do
|
23
24
|
responses = [0, 10]
|
24
|
-
question = Poptart::
|
25
|
+
question = Poptart::RangeQuestion.create("Do you like poptarts?", responses: responses)
|
25
26
|
question.should be
|
26
27
|
question.question_type.should == 'range'
|
27
28
|
question.responses.should =~ [0, 10]
|
@@ -1,11 +1,12 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
|
-
method:
|
5
|
-
uri: http://localhost:3000/
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:3000/api/questions/
|
6
6
|
body:
|
7
|
-
encoding:
|
8
|
-
string: '
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"question":{"question_type":"boolean","responses":[true,false],"text":"Do
|
9
|
+
you like poptarts?","freeform":true,"absolute_index":10,"parent_question_id":42}}'
|
9
10
|
headers:
|
10
11
|
User-Agent:
|
11
12
|
- Faraday v0.9.0
|
@@ -19,8 +20,8 @@ http_interactions:
|
|
19
20
|
- "*/*"
|
20
21
|
response:
|
21
22
|
status:
|
22
|
-
code:
|
23
|
-
message: '
|
23
|
+
code: 201
|
24
|
+
message: 'Created '
|
24
25
|
headers:
|
25
26
|
X-Frame-Options:
|
26
27
|
- SAMEORIGIN
|
@@ -33,39 +34,35 @@ http_interactions:
|
|
33
34
|
Content-Type:
|
34
35
|
- application/json; charset=utf-8
|
35
36
|
Etag:
|
36
|
-
- '"
|
37
|
+
- '"9bb1824fd410009f8953d82200a3a249"'
|
37
38
|
Cache-Control:
|
38
39
|
- max-age=0, private, must-revalidate
|
39
40
|
X-Request-Id:
|
40
|
-
-
|
41
|
+
- 3678c0eb-c31c-436b-af09-c4d82f0bddda
|
41
42
|
X-Runtime:
|
42
|
-
- '0.
|
43
|
+
- '0.007781'
|
43
44
|
Server:
|
44
45
|
- WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
|
45
46
|
Date:
|
46
47
|
- Sun, 28 Sep 2014 14:43:00 GMT
|
47
48
|
Content-Length:
|
48
|
-
- '
|
49
|
+
- '193'
|
49
50
|
Connection:
|
50
51
|
- Keep-Alive
|
51
52
|
body:
|
52
53
|
encoding: UTF-8
|
53
54
|
string: |-
|
54
55
|
{
|
55
|
-
"
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
"questions": {
|
66
|
-
"href": "api/questions"
|
67
|
-
}
|
68
|
-
}
|
56
|
+
"id": 82,
|
57
|
+
"question_type": "boolean",
|
58
|
+
"text": "Do you like poptarts?",
|
59
|
+
"responses": [
|
60
|
+
true,
|
61
|
+
false
|
62
|
+
],
|
63
|
+
"freeform": true,
|
64
|
+
"absolute_index": 10,
|
65
|
+
"parent_question_id": 42
|
69
66
|
}
|
70
67
|
http_version:
|
71
68
|
recorded_at: Sun, 28 Sep 2014 14:43:00 GMT
|
@@ -102,19 +99,19 @@ http_interactions:
|
|
102
99
|
Content-Type:
|
103
100
|
- application/json; charset=utf-8
|
104
101
|
Etag:
|
105
|
-
- '"
|
102
|
+
- '"2aa11a1ab77b139e58f765299f923a01"'
|
106
103
|
Cache-Control:
|
107
104
|
- max-age=0, private, must-revalidate
|
108
105
|
X-Request-Id:
|
109
|
-
-
|
106
|
+
- 7e53c3b0-a044-4cc9-abc0-4793c59a8ed8
|
110
107
|
X-Runtime:
|
111
|
-
- '0.
|
108
|
+
- '0.032272'
|
112
109
|
Server:
|
113
110
|
- WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
|
114
111
|
Date:
|
115
|
-
-
|
112
|
+
- Wed, 08 Oct 2014 02:15:37 GMT
|
116
113
|
Content-Length:
|
117
|
-
- '
|
114
|
+
- '469'
|
118
115
|
Connection:
|
119
116
|
- Keep-Alive
|
120
117
|
body:
|
@@ -126,25 +123,27 @@ http_interactions:
|
|
126
123
|
"href": "http://localhost:3000/"
|
127
124
|
},
|
128
125
|
"surveys": {
|
129
|
-
"href": "api/surveys"
|
126
|
+
"href": "http://localhost:3000/api/surveys{/id}{?query*}"
|
130
127
|
},
|
131
128
|
"users": {
|
132
|
-
"href": "api/users"
|
129
|
+
"href": "http://localhost:3000/api/users{/id}{?query*}"
|
133
130
|
},
|
134
131
|
"questions": {
|
135
|
-
"href": "api/questions"
|
132
|
+
"href": "http://localhost:3000/api/questions{/id}{?query*}"
|
133
|
+
},
|
134
|
+
"survey_questions": {
|
135
|
+
"href": "http://localhost:3000/api/questions{/question_id}/survey_questions{?query*}"
|
136
136
|
}
|
137
137
|
}
|
138
138
|
}
|
139
139
|
http_version:
|
140
|
-
recorded_at:
|
140
|
+
recorded_at: Wed, 08 Oct 2014 02:15:37 GMT
|
141
141
|
- request:
|
142
|
-
method:
|
143
|
-
uri: http://localhost:3000/
|
142
|
+
method: get
|
143
|
+
uri: http://localhost:3000/
|
144
144
|
body:
|
145
|
-
encoding:
|
146
|
-
string: '
|
147
|
-
you like poptarts?","freeform":true,"absolute_index":10,"parent_question_id":42}}'
|
145
|
+
encoding: US-ASCII
|
146
|
+
string: ''
|
148
147
|
headers:
|
149
148
|
User-Agent:
|
150
149
|
- Faraday v0.9.0
|
@@ -158,8 +157,8 @@ http_interactions:
|
|
158
157
|
- "*/*"
|
159
158
|
response:
|
160
159
|
status:
|
161
|
-
code:
|
162
|
-
message: '
|
160
|
+
code: 200
|
161
|
+
message: 'OK '
|
163
162
|
headers:
|
164
163
|
X-Frame-Options:
|
165
164
|
- SAMEORIGIN
|
@@ -172,45 +171,52 @@ http_interactions:
|
|
172
171
|
Content-Type:
|
173
172
|
- application/json; charset=utf-8
|
174
173
|
Etag:
|
175
|
-
- '"
|
174
|
+
- '"2aa11a1ab77b139e58f765299f923a01"'
|
176
175
|
Cache-Control:
|
177
176
|
- max-age=0, private, must-revalidate
|
178
177
|
X-Request-Id:
|
179
|
-
-
|
178
|
+
- f3f12516-1a80-478c-9d43-16848831e5c7
|
180
179
|
X-Runtime:
|
181
|
-
- '0.
|
180
|
+
- '0.029369'
|
182
181
|
Server:
|
183
182
|
- WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
|
184
183
|
Date:
|
185
|
-
-
|
184
|
+
- Wed, 08 Oct 2014 02:16:10 GMT
|
186
185
|
Content-Length:
|
187
|
-
- '
|
186
|
+
- '469'
|
188
187
|
Connection:
|
189
188
|
- Keep-Alive
|
190
189
|
body:
|
191
190
|
encoding: UTF-8
|
192
191
|
string: |-
|
193
192
|
{
|
194
|
-
"
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
193
|
+
"_links": {
|
194
|
+
"self": {
|
195
|
+
"href": "http://localhost:3000/"
|
196
|
+
},
|
197
|
+
"surveys": {
|
198
|
+
"href": "http://localhost:3000/api/surveys{/id}{?query*}"
|
199
|
+
},
|
200
|
+
"users": {
|
201
|
+
"href": "http://localhost:3000/api/users{/id}{?query*}"
|
202
|
+
},
|
203
|
+
"questions": {
|
204
|
+
"href": "http://localhost:3000/api/questions{/id}{?query*}"
|
205
|
+
},
|
206
|
+
"survey_questions": {
|
207
|
+
"href": "http://localhost:3000/api/questions{/question_id}/survey_questions{?query*}"
|
208
|
+
}
|
209
|
+
}
|
204
210
|
}
|
205
211
|
http_version:
|
206
|
-
recorded_at:
|
212
|
+
recorded_at: Wed, 08 Oct 2014 02:16:10 GMT
|
207
213
|
- request:
|
208
214
|
method: post
|
209
215
|
uri: http://localhost:3000/api/questions
|
210
216
|
body:
|
211
217
|
encoding: UTF-8
|
212
218
|
string: '{"question":{"question_type":"boolean","responses":[true,false],"text":"Do
|
213
|
-
you like poptarts?","freeform":true,"absolute_index":10,"parent_question_id":42}}'
|
219
|
+
you like poptarts?","freeform":true,"absolute_index":10,"parent_question_id":42,"key":"poptarts"}}'
|
214
220
|
headers:
|
215
221
|
User-Agent:
|
216
222
|
- Faraday v0.9.0
|
@@ -238,26 +244,26 @@ http_interactions:
|
|
238
244
|
Content-Type:
|
239
245
|
- application/json; charset=utf-8
|
240
246
|
Etag:
|
241
|
-
- '"
|
247
|
+
- '"5df8e0fd01cd48f8c251e4b1420d0070"'
|
242
248
|
Cache-Control:
|
243
249
|
- max-age=0, private, must-revalidate
|
244
250
|
X-Request-Id:
|
245
|
-
-
|
251
|
+
- d550e167-b88c-4d8b-8180-1d31aa7c99c5
|
246
252
|
X-Runtime:
|
247
|
-
- '0.
|
253
|
+
- '0.022491'
|
248
254
|
Server:
|
249
255
|
- WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
|
250
256
|
Date:
|
251
|
-
-
|
257
|
+
- Wed, 08 Oct 2014 02:16:10 GMT
|
252
258
|
Content-Length:
|
253
|
-
- '
|
259
|
+
- '214'
|
254
260
|
Connection:
|
255
261
|
- Keep-Alive
|
256
262
|
body:
|
257
263
|
encoding: UTF-8
|
258
264
|
string: |-
|
259
265
|
{
|
260
|
-
"id":
|
266
|
+
"id": 40,
|
261
267
|
"question_type": "boolean",
|
262
268
|
"text": "Do you like poptarts?",
|
263
269
|
"responses": [
|
@@ -266,8 +272,9 @@ http_interactions:
|
|
266
272
|
],
|
267
273
|
"freeform": true,
|
268
274
|
"absolute_index": 10,
|
269
|
-
"parent_question_id": 42
|
275
|
+
"parent_question_id": 42,
|
276
|
+
"key": "poptarts"
|
270
277
|
}
|
271
278
|
http_version:
|
272
|
-
recorded_at:
|
279
|
+
recorded_at: Wed, 08 Oct 2014 02:16:10 GMT
|
273
280
|
recorded_with: VCR 2.6.0
|