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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e866e5a5e27b895fa5736f6563bf11a3ff32f88f
4
- data.tar.gz: 53641259333474ad4dfc3caa9e0b4a28147aef84
3
+ metadata.gz: 9562c2a9cbf777cce16a855129ecbdeeb6de4446
4
+ data.tar.gz: 9172f17c4db0b7f8a0ef1d5ea773d051f2c47eb8
5
5
  SHA512:
6
- metadata.gz: dd84a6bd7702ffc6fe8e195a55e4bd9ee6756e704687cc0fbcf389920fb2f85284299406753067ceba0ad1569bbf697c14d26184e0a03f4ea8e10feb8765355a
7
- data.tar.gz: 997bd36d34df9af9903805faa1359fec597fc5f1c1514124cc77363584b168d88560bb6ac6b8cb028f60e5c27f55fbca6a0cde7f25777081dd3c17144a2589a0
6
+ metadata.gz: 1cc2c2527997928f3011d9939919277387e6c7c0844d5fdb0366dcf804f5e9ba1f6365eadd77653a93111ec21d8acf3fb619776d85e9567607cddf4387ecf3ab
7
+ data.tar.gz: b66de0f765cb2302d86f7018f4e53661c61b8f6e7af0d4cf82d5cfcdb133e03edacc2923c67823c669da7278414ed141ba17fa926e0637e1bf16ee16d17da786
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- poptart (0.0.7)
4
+ poptart (0.0.8)
5
5
  activesupport
6
6
  addressable
7
7
  faraday
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
- build_url(links.users.href, id: id, query: query)
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
- build_url(links.surveys.href, id: id, query: query)
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
- build_url(links.questions.href, id: id, query: query)
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
@@ -1,5 +1,5 @@
1
1
  module Poptart
2
- class RangeResponseQuestion < Question
2
+ class RangeQuestion < Question
3
3
  extend Poptart::Request
4
4
 
5
5
  def self.question_type
@@ -18,8 +18,7 @@ module Poptart
18
18
  end
19
19
 
20
20
  def add_question(question)
21
- url = build_url(links.survey_questions.post.href)
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
- url = build_url(links.put.href)
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
@@ -0,0 +1,9 @@
1
+ module Poptart
2
+ class TimeQuestion < Question
3
+ extend Poptart::Request
4
+
5
+ def self.question_type
6
+ 'time'
7
+ end
8
+ end
9
+ 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
@@ -31,4 +31,5 @@ require_relative 'poptart/question'
31
31
  require_relative 'poptart/boolean_question'
32
32
  require_relative 'poptart/multiple_response_question'
33
33
  require_relative 'poptart/range_question'
34
+ require_relative 'poptart/time_question'
34
35
  require_relative 'poptart/user'
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Poptart
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -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 == 5
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 = 'true'
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 == 'true'
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
- xit 'returns answers', :vcr, record: :all do
5
- question = Poptart::BooleanQuestion.create(text: text)
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
- answers = question.answers
18
- answers.first.answer.should == true
19
- answers.created_at.should_not be_nil
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
- answers.first.answer.should == false
22
- answers.last.should_not be_nil
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