poptart 0.0.8 → 0.0.9
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/poptart/model.rb +11 -13
- data/lib/poptart/range_question.rb +1 -1
- data/lib/poptart/survey.rb +1 -2
- data/lib/poptart/survey_question.rb +8 -3
- data/lib/poptart/time_question.rb +9 -0
- data/lib/poptart/user.rb +3 -1
- data/lib/poptart.rb +1 -0
- data/lib/version.rb +1 -1
- data/spec/requests/answering_survey_questions_spec.rb +3 -27
- data/spec/requests/answers_spec.rb +11 -13
- data/spec/requests/user_management_spec.rb +0 -2
- data/spec/vcr/answering/survey_questions_answers_a_multiple_choice_question.yml +6606 -3251
- data/spec/vcr/answering/survey_questions_answers_a_survey_question.yml +18354 -6356
- data/spec/vcr/answering/survey_questions_creates_and_returns_a_random_question_survey.yml +1223 -387
- data/spec/vcr/answering/survey_questions_creates_and_returns_an_empty_survey.yml +331 -183
- data/spec/vcr/answering/survey_questions_finds_survey_question_for_id.yml +1475 -403
- data/spec/vcr/creating/quesitons_returns_boolean_question.yml +66 -0
- data/spec/vcr/creating/quesitons_returns_multiple_question.yml +90 -21
- data/spec/vcr/creating/quesitons_returns_range_question.yml +92 -23
- data/spec/vcr/retrieving/answers_returns_all_answered_survey_questions_for_a_question.yml +7543 -0
- data/spec/vcr/retrieving/answers_returns_answers.yml +1956 -84
- data/spec/vcr/user/management_creates_a_user.yml +26 -27
- data/spec/vcr/user/management_returns_a_user.yml +186 -63
- metadata +5 -4
- data/spec/requests/root_spec.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9562c2a9cbf777cce16a855129ecbdeeb6de4446
|
4
|
+
data.tar.gz: 9172f17c4db0b7f8a0ef1d5ea773d051f2c47eb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cc2c2527997928f3011d9939919277387e6c7c0844d5fdb0366dcf804f5e9ba1f6365eadd77653a93111ec21d8acf3fb619776d85e9567607cddf4387ecf3ab
|
7
|
+
data.tar.gz: b66de0f765cb2302d86f7018f4e53661c61b8f6e7af0d4cf82d5cfcdb133e03edacc2923c67823c669da7278414ed141ba17fa926e0637e1bf16ee16d17da786
|
data/Gemfile.lock
CHANGED
data/lib/poptart/model.rb
CHANGED
@@ -26,26 +26,24 @@ module Poptart
|
|
26
26
|
Poptart::Model.root
|
27
27
|
end
|
28
28
|
|
29
|
-
def build_url(resource, id: nil, nested_resource: nil, query: nil)
|
30
|
-
template_string = "#{scheme}://#{host}/{+resource}/{id}"
|
31
|
-
if nested_resource
|
32
|
-
template_string += "/{nested_resource}"
|
33
|
-
end
|
34
|
-
template_string += "{?query*}"
|
35
|
-
template = Addressable::Template.new(template_string)
|
36
|
-
template.expand(resource: resource, id: id, nested_resource: nested_resource, query: query).to_s
|
37
|
-
end
|
38
|
-
|
39
29
|
def users_url(id: nil, query: nil)
|
40
|
-
|
30
|
+
template = Addressable::Template.new(links.users.href)
|
31
|
+
template.expand(id: id, query: query).to_s
|
41
32
|
end
|
42
33
|
|
43
34
|
def surveys_url(id: nil, query: nil)
|
44
|
-
|
35
|
+
template = Addressable::Template.new(links.surveys.href)
|
36
|
+
template.expand(id: id, query: query).to_s
|
45
37
|
end
|
46
38
|
|
47
39
|
def questions_url(id: nil, query: nil)
|
48
|
-
|
40
|
+
template = Addressable::Template.new(links.questions.href)
|
41
|
+
template.expand(id: id, query: query).to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
def survey_questions_url(question_id: nil, query: nil)
|
45
|
+
template = Addressable::Template.new(links.survey_questions.href)
|
46
|
+
template.expand(question_id: question_id, query: query).to_s
|
49
47
|
end
|
50
48
|
|
51
49
|
private
|
data/lib/poptart/survey.rb
CHANGED
@@ -18,8 +18,7 @@ module Poptart
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def add_question(question)
|
21
|
-
|
22
|
-
response = post(url, { survey_question: { question_id: question.id } } )
|
21
|
+
response = post(links.survey_questions.post.href, { survey_question: { question_id: question.id } } )
|
23
22
|
if response.status == 201
|
24
23
|
Poptart::SurveyQuestion.new(response).tap { |survey_question| survey_questions << survey_question }
|
25
24
|
end
|
@@ -8,10 +8,16 @@ module Poptart
|
|
8
8
|
def initialize(response)
|
9
9
|
super
|
10
10
|
@text = params['text']
|
11
|
-
@answer = params['answer']
|
12
11
|
@type = params['type']
|
13
12
|
@freeform = params['freeform']
|
14
13
|
@responses = params['responses']
|
14
|
+
@answer = params['answer']
|
15
|
+
|
16
|
+
if @answer == 't'
|
17
|
+
@answer = true
|
18
|
+
elsif @answer == 'f'
|
19
|
+
@answer = false
|
20
|
+
end
|
15
21
|
end
|
16
22
|
|
17
23
|
def boolean?
|
@@ -35,8 +41,7 @@ module Poptart
|
|
35
41
|
end
|
36
42
|
|
37
43
|
def submit
|
38
|
-
|
39
|
-
response = put(url, { id: id, survey_question: { answer: answer} })
|
44
|
+
response = put(links.put.href, { id: id, survey_question: { answer: answer} })
|
40
45
|
response.status == 204
|
41
46
|
end
|
42
47
|
end
|
data/lib/poptart/user.rb
CHANGED
@@ -39,7 +39,9 @@ module Poptart
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def survey_questions_for_question_id(question_id)
|
42
|
-
|
42
|
+
url = root.survey_questions_url(question_id: question_id)
|
43
|
+
response = get(url)
|
44
|
+
JSON.parse(response.body)["survey_questions"].map { |response_body| Poptart::SurveyQuestion.new(response_body) }
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
data/lib/poptart.rb
CHANGED
data/lib/version.rb
CHANGED
@@ -12,7 +12,7 @@ describe 'Answering survey questions' do
|
|
12
12
|
user = Poptart::User.create
|
13
13
|
survey = user.create_random_survey
|
14
14
|
survey.service_user_id.should == user.service_user_id
|
15
|
-
survey.survey_questions.count.should
|
15
|
+
survey.survey_questions.count.should > 0
|
16
16
|
end
|
17
17
|
|
18
18
|
it "answers a survey question", :vcr do
|
@@ -37,11 +37,11 @@ describe 'Answering survey questions' do
|
|
37
37
|
survey_question.responses.should == ['t', 'f']
|
38
38
|
survey_question.type.should == 'boolean'
|
39
39
|
|
40
|
-
survey_question.answer =
|
40
|
+
survey_question.answer = true
|
41
41
|
survey_question.submit.should be
|
42
42
|
|
43
43
|
survey = user.survey_for_id(survey.id)
|
44
|
-
survey.survey_questions.first.answer.should ==
|
44
|
+
survey.survey_questions.first.answer.should == true
|
45
45
|
end
|
46
46
|
|
47
47
|
it "answers a multiple choice question", :vcr do
|
@@ -69,28 +69,4 @@ describe 'Answering survey questions' do
|
|
69
69
|
survey_question = survey.survey_question_for_id(first_survey_question.id)
|
70
70
|
first_survey_question.should == survey_question
|
71
71
|
end
|
72
|
-
|
73
|
-
xit "returns all answered survey questions for a question", :vcr, :record => :all do
|
74
|
-
questions = Poptart::Question.all(type: 'multiple')
|
75
|
-
question = questions.find { |question| question.responses.include?('At Home') }
|
76
|
-
user = Poptart::User.create
|
77
|
-
|
78
|
-
survey = user.create_survey
|
79
|
-
survey.add_question(question).should be
|
80
|
-
second_survey = user.create_survey
|
81
|
-
second_survey.add_question(question).should be
|
82
|
-
|
83
|
-
survey = user.survey_for_id(survey.id)
|
84
|
-
survey_question = survey.survey_questions.first
|
85
|
-
survey_question.answer = 'At Home'
|
86
|
-
survey_question.submit.should be
|
87
|
-
|
88
|
-
survey = user.survey_for_id(second_survey.id)
|
89
|
-
survey_question = survey.survey_questions.first
|
90
|
-
survey_question.answer = 'At Work'
|
91
|
-
survey_question.submit.should be
|
92
|
-
|
93
|
-
answered_questions = user.survey_questions_for_question_id(question.id)
|
94
|
-
answered_questions.map(&:answer).should =~ ['At Home', 'At Work']
|
95
|
-
end
|
96
72
|
end
|
@@ -1,24 +1,22 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'retrieving answers' do
|
4
|
-
|
5
|
-
question = Poptart::BooleanQuestion.create(
|
4
|
+
it "returns all answered survey questions for a question", :vcr do
|
5
|
+
question = Poptart::BooleanQuestion.create("Do you like poptarts?")
|
6
6
|
user = Poptart::User.create
|
7
|
-
survey = user.create_survey
|
8
|
-
survey_question = survey.add_question(question)
|
9
|
-
survey_question.answer = true
|
10
|
-
survey_question.submit
|
11
7
|
|
8
|
+
survey = user.create_survey
|
9
|
+
first_survey_question = survey.add_question(question)
|
12
10
|
second_survey = user.create_survey
|
13
11
|
second_survey_question = second_survey.add_question(question)
|
14
|
-
second_survey_question.answer = false
|
15
|
-
second_survey_question.submit
|
16
12
|
|
17
|
-
|
18
|
-
|
19
|
-
|
13
|
+
first_survey_question.answer = true
|
14
|
+
first_survey_question.submit.should be
|
15
|
+
|
16
|
+
second_survey_question.answer = false
|
17
|
+
second_survey_question.submit.should be
|
20
18
|
|
21
|
-
|
22
|
-
|
19
|
+
survey_questions = user.survey_questions_for_question_id(question.id)
|
20
|
+
survey_questions.map(&:answer).should =~ [true, false]
|
23
21
|
end
|
24
22
|
end
|
@@ -3,7 +3,6 @@ require 'spec_helper'
|
|
3
3
|
describe "User Management" do
|
4
4
|
it "creates a user", :vcr do
|
5
5
|
user = Poptart::User.create
|
6
|
-
user.id.should be
|
7
6
|
user.service_user_id.should be
|
8
7
|
user.token.should be
|
9
8
|
end
|
@@ -11,7 +10,6 @@ describe "User Management" do
|
|
11
10
|
it "returns a user", :vcr do
|
12
11
|
user = Poptart::User.create
|
13
12
|
other_user = Poptart::User.for_id(user.service_user_id)
|
14
|
-
user.id.should == other_user.id
|
15
13
|
user.service_user_id.should == other_user.service_user_id
|
16
14
|
end
|
17
15
|
end
|