qualtrics_api 0.0.1 → 0.0.2
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/.rubocop.yml +78 -0
- data/.travis.yml +4 -0
- data/Guardfile +6 -0
- data/README.md +4 -0
- data/lib/qualtrics_api.rb +1 -0
- data/lib/qualtrics_api/client.rb +5 -9
- data/lib/qualtrics_api/response_export.rb +4 -9
- data/lib/qualtrics_api/response_export_collection.rb +7 -8
- data/lib/qualtrics_api/services/response_export_service.rb +34 -48
- data/lib/qualtrics_api/survey.rb +15 -5
- data/lib/qualtrics_api/survey_collection.rb +14 -15
- data/lib/qualtrics_api/version.rb +1 -1
- data/qualtrics_api.gemspec +9 -5
- data/spec/lib/client_spec.rb +2 -4
- data/spec/lib/response_export_collection_spec.rb +5 -5
- data/spec/lib/response_export_spec.rb +0 -1
- data/spec/lib/services/response_export_service_spec.rb +4 -5
- data/spec/lib/survey_collection_spec.rb +3 -6
- data/spec/lib/survey_spec.rb +12 -10
- metadata +44 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1bc31e5bdb1d4226c3a1f0511a03dd30e90a733
|
4
|
+
data.tar.gz: 75c496a12eddd15a9cafc638eaf3ef1d1c176692
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 062dd62b815df05915fa106c95018d3347093db0b18a8c16639f0aca2cb0dd88f8f6047e5fa5d4a7b4cfe47195eba83fc933a763c2bf0632965bd64c16b42eb4
|
7
|
+
data.tar.gz: e18f3a82dcc31b40ae17c9d97c51e245ee5893726d72ff3e17cfbe2b49d30e27a6ef01325ae47c6f9ce278bef1f6e55950da708d76b70ddd6c2d633e45e7e533
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# This configuration was generated by `rubocop --auto-gen-config`.
|
2
|
+
# The point is for the user to remove these configuration records
|
3
|
+
# one by one as the offences are removed from the code base.
|
4
|
+
|
5
|
+
AlignHash:
|
6
|
+
Enabled: true
|
7
|
+
|
8
|
+
AlignParameters:
|
9
|
+
Enabled: true
|
10
|
+
|
11
|
+
AndOr:
|
12
|
+
Enabled: false
|
13
|
+
|
14
|
+
AssignmentInCondition:
|
15
|
+
Enabled: true
|
16
|
+
|
17
|
+
BlockAlignment:
|
18
|
+
Enabled: true
|
19
|
+
|
20
|
+
Documentation:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
ClassAndModuleChildren:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
EmptyLines:
|
27
|
+
Enabled: true
|
28
|
+
|
29
|
+
EmptyLinesAroundBody:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
TrailingBlankLines:
|
33
|
+
Enabled: true
|
34
|
+
|
35
|
+
HashSyntax:
|
36
|
+
Enabled: false
|
37
|
+
|
38
|
+
LeadingCommentSpace:
|
39
|
+
Enabled: true
|
40
|
+
|
41
|
+
LineLength:
|
42
|
+
Enabled: false
|
43
|
+
|
44
|
+
Loop:
|
45
|
+
Enabled: true
|
46
|
+
|
47
|
+
MethodLength:
|
48
|
+
Enabled: true
|
49
|
+
|
50
|
+
NumericLiterals:
|
51
|
+
Enabled: true
|
52
|
+
|
53
|
+
RedundantSelf:
|
54
|
+
Enabled: true
|
55
|
+
|
56
|
+
SpaceBeforeBlockBraces:
|
57
|
+
Enabled: true
|
58
|
+
|
59
|
+
SpaceInsideBlockBraces:
|
60
|
+
Enabled: true
|
61
|
+
|
62
|
+
SpaceInsideBrackets:
|
63
|
+
Enabled: true
|
64
|
+
|
65
|
+
SpaceInsideHashLiteralBraces:
|
66
|
+
Enabled: true
|
67
|
+
|
68
|
+
StringLiterals:
|
69
|
+
Enabled: false
|
70
|
+
|
71
|
+
TrailingWhitespace:
|
72
|
+
Enabled: false
|
73
|
+
|
74
|
+
SignalException:
|
75
|
+
Enabled: false
|
76
|
+
|
77
|
+
UnusedBlockArgument:
|
78
|
+
Enabled: false
|
data/.travis.yml
ADDED
data/Guardfile
ADDED
data/README.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
[](http://badge.fury.io/rb/qualtrics_api)
|
2
|
+
[](https://gemnasium.com/pallymore/qualtrics_api)
|
3
|
+
[](https://travis-ci.org/CambridgeEducation/qualtrics_api)
|
4
|
+
|
1
5
|
# QualtricsAPI
|
2
6
|
|
3
7
|
Ruby wrapper for Qualtrics REST ControlPanel API version 3.0.
|
data/lib/qualtrics_api.rb
CHANGED
data/lib/qualtrics_api/client.rb
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
module QualtricsAPI
|
2
|
-
|
3
2
|
class Client
|
4
|
-
|
3
|
+
include Virtus.value_object
|
5
4
|
|
6
|
-
|
7
|
-
@api_token = options[:api_token]
|
8
|
-
end
|
5
|
+
attribute :api_token, String
|
9
6
|
|
10
7
|
def surveys(options = {})
|
11
|
-
@surveys ||= QualtricsAPI::SurveyCollection.new options.merge(
|
8
|
+
@surveys ||= QualtricsAPI::SurveyCollection.new options.merge(connection: connection)
|
12
9
|
end
|
13
10
|
|
14
11
|
def response_exports(options = {})
|
15
|
-
@response_exports ||= QualtricsAPI::ResponseExportCollection.new options.merge(
|
12
|
+
@response_exports ||= QualtricsAPI::ResponseExportCollection.new options.merge(connection: connection)
|
16
13
|
end
|
17
14
|
|
18
15
|
def connection
|
19
16
|
@conn ||= Faraday.new(url: QualtricsAPI::URL,
|
20
|
-
params: { apiToken:
|
17
|
+
params: { apiToken: api_token }) do |faraday|
|
21
18
|
faraday.request :json
|
22
19
|
faraday.response :json, :content_type => /\bjson$/
|
23
20
|
|
@@ -28,5 +25,4 @@ module QualtricsAPI
|
|
28
25
|
end
|
29
26
|
end
|
30
27
|
end
|
31
|
-
|
32
28
|
end
|
@@ -1,16 +1,12 @@
|
|
1
1
|
module QualtricsAPI
|
2
|
-
|
3
2
|
class ResponseExport
|
3
|
+
include Virtus.value_object
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
def initialize(options = {})
|
8
|
-
@conn = options[:connection]
|
9
|
-
@id = options[:id]
|
10
|
-
end
|
5
|
+
attribute :connection
|
6
|
+
attribute :id, String
|
11
7
|
|
12
8
|
def update_status
|
13
|
-
res =
|
9
|
+
res = connection.get('surveys/responseExports/' + id).body["result"]
|
14
10
|
@export_progress = res["percentComplete"]
|
15
11
|
@file_url = res["fileUrl"]
|
16
12
|
@completed = true if @export_progress == 100.0
|
@@ -36,5 +32,4 @@ module QualtricsAPI
|
|
36
32
|
@file_url
|
37
33
|
end
|
38
34
|
end
|
39
|
-
|
40
35
|
end
|
@@ -2,23 +2,22 @@ module QualtricsAPI
|
|
2
2
|
class ResponseExportCollection
|
3
3
|
extend Forwardable
|
4
4
|
include Enumerable
|
5
|
+
include Virtus.value_object
|
5
6
|
|
6
|
-
|
7
|
+
attribute :connection
|
8
|
+
attribute :all, Array, :default => []
|
7
9
|
|
8
10
|
def_delegator :all, :each
|
9
11
|
def_delegator :all, :size
|
10
12
|
|
11
|
-
def
|
12
|
-
|
13
|
-
@all = []
|
13
|
+
def [](export_id)
|
14
|
+
find(export_id)
|
14
15
|
end
|
15
|
-
|
16
|
-
def [](export_id); find(export_id); end
|
16
|
+
|
17
17
|
def find(export_id)
|
18
18
|
@all.select do |response_export|
|
19
19
|
response_export.id == export_id
|
20
|
-
end.first || QualtricsAPI::ResponseExport.new(:id => export_id
|
20
|
+
end.first || QualtricsAPI::ResponseExport.new(:id => export_id, connection: connection)
|
21
21
|
end
|
22
|
-
|
23
22
|
end
|
24
23
|
end
|
@@ -1,62 +1,48 @@
|
|
1
1
|
module QualtricsAPI
|
2
2
|
module Services
|
3
3
|
class ResponseExportService
|
4
|
-
|
5
|
-
:response_set_id,
|
6
|
-
:file_type,
|
7
|
-
:last_response_id,
|
8
|
-
:start_date,
|
9
|
-
:end_date,
|
10
|
-
:limit,
|
11
|
-
:included_question_ids,
|
12
|
-
:max_rows,
|
13
|
-
:use_labels,
|
14
|
-
:decimal_format,
|
15
|
-
:seen_unanswered_recode,
|
16
|
-
:use_local_time,
|
17
|
-
:spss_string_length,
|
18
|
-
:result
|
4
|
+
include Virtus.value_object
|
19
5
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
6
|
+
attribute :connection
|
7
|
+
attribute :survey_id, String
|
8
|
+
attribute :response_set_id, String
|
9
|
+
attribute :file_type, String, :default => 'CSV'
|
10
|
+
attribute :last_response_id, String
|
11
|
+
attribute :start_date, String
|
12
|
+
attribute :end_date, String
|
13
|
+
attribute :limit, String
|
14
|
+
attribute :included_question_ids, String
|
15
|
+
attribute :max_rows, String
|
16
|
+
attribute :use_labels, Boolean, :default => false
|
17
|
+
attribute :decimal_format, String, :default => '.'
|
18
|
+
attribute :seen_unanswered_recode, String
|
19
|
+
attribute :use_local_time, Boolean, :default => false
|
20
|
+
attribute :spss_string_length, String
|
21
|
+
attribute :id, String
|
22
|
+
|
23
|
+
attr_reader :result
|
38
24
|
|
39
25
|
def start
|
40
|
-
response =
|
26
|
+
response = connection.get("surveys/#{survey_id}/responseExports", export_params)
|
41
27
|
export_id = response.body["result"]["exportStatus"].split('/').last
|
42
|
-
@result = ResponseExport.new(id: export_id, connection:
|
28
|
+
@result = ResponseExport.new(id: export_id, connection: connection)
|
43
29
|
end
|
44
30
|
|
45
31
|
def export_configurations
|
46
32
|
{
|
47
|
-
response_set_id:
|
48
|
-
file_type:
|
49
|
-
last_response_id:
|
50
|
-
start_date:
|
51
|
-
end_date:
|
52
|
-
limit:
|
53
|
-
included_question_ids:
|
54
|
-
max_rows:
|
55
|
-
use_labels:
|
56
|
-
decimal_format:
|
57
|
-
seen_unanswered_recode:
|
58
|
-
use_local_time:
|
59
|
-
spss_string_length:
|
33
|
+
response_set_id: response_set_id,
|
34
|
+
file_type: file_type,
|
35
|
+
last_response_id: last_response_id,
|
36
|
+
start_date: start_date,
|
37
|
+
end_date: end_date,
|
38
|
+
limit: limit,
|
39
|
+
included_question_ids: included_question_ids,
|
40
|
+
max_rows: max_rows,
|
41
|
+
use_labels: use_labels,
|
42
|
+
decimal_format: decimal_format,
|
43
|
+
seen_unanswered_recode: seen_unanswered_recode,
|
44
|
+
use_local_time: use_local_time,
|
45
|
+
spss_string_length: spss_string_length
|
60
46
|
}
|
61
47
|
end
|
62
48
|
|
data/lib/qualtrics_api/survey.rb
CHANGED
@@ -1,17 +1,26 @@
|
|
1
1
|
module QualtricsAPI
|
2
|
-
|
3
2
|
class Survey
|
4
|
-
|
3
|
+
include Virtus.value_object
|
4
|
+
|
5
|
+
attribute :connection
|
6
|
+
attribute :id, String
|
7
|
+
attribute :name, String
|
8
|
+
attribute :owner_id, String
|
9
|
+
attribute :last_modified, String
|
10
|
+
attribute :created_at, String
|
11
|
+
attribute :status, String
|
12
|
+
|
13
|
+
attr_accessor :id, :name, :owner_id, :last_modified, :status, :created_at
|
5
14
|
|
6
15
|
def initialize(options = {})
|
7
16
|
attributes_mappings.each do |key, qualtrics_key|
|
8
17
|
instance_variable_set "@#{key}", options[qualtrics_key]
|
9
18
|
end
|
10
|
-
|
19
|
+
super
|
11
20
|
end
|
12
21
|
|
13
22
|
def export_responses(export_options = {})
|
14
|
-
QualtricsAPI::Services::ResponseExportService.new(export_options.merge(survey_id: id, connection:
|
23
|
+
QualtricsAPI::Services::ResponseExportService.new(export_options.merge(survey_id: id, connection: connection))
|
15
24
|
end
|
16
25
|
|
17
26
|
private
|
@@ -22,7 +31,8 @@ module QualtricsAPI
|
|
22
31
|
:name => "name",
|
23
32
|
:owner_id => "ownerId",
|
24
33
|
:last_modified => "lastModified",
|
25
|
-
:status => "status"
|
34
|
+
:status => "status",
|
35
|
+
:created_at => "SurveyCreationDate"
|
26
36
|
}
|
27
37
|
end
|
28
38
|
end
|
@@ -1,25 +1,22 @@
|
|
1
1
|
module QualtricsAPI
|
2
|
-
|
3
2
|
class SurveyCollection
|
4
3
|
extend Forwardable
|
5
4
|
include Enumerable
|
5
|
+
include Virtus.value_object
|
6
|
+
|
7
|
+
attribute :connection
|
8
|
+
attribute :scope_id, String
|
9
|
+
attribute :all, Array, :default => []
|
6
10
|
|
7
|
-
|
8
|
-
attr_reader :all
|
11
|
+
attr_writer :scope_id
|
9
12
|
|
10
13
|
def_delegator :all, :each
|
11
14
|
def_delegator :all, :size
|
12
15
|
|
13
|
-
def initialize(options = {})
|
14
|
-
@conn = options[:connection]
|
15
|
-
@scope_id = options[:scope_id]
|
16
|
-
@all = []
|
17
|
-
end
|
18
|
-
|
19
16
|
def fetch(options = {})
|
20
17
|
@all = []
|
21
18
|
update_query_attributes(options)
|
22
|
-
parse_fetch_response(
|
19
|
+
parse_fetch_response(connection.get('surveys', query_params))
|
23
20
|
self
|
24
21
|
end
|
25
22
|
|
@@ -30,14 +27,17 @@ module QualtricsAPI
|
|
30
27
|
end
|
31
28
|
|
32
29
|
def update_query_attributes(new_attributes = {})
|
33
|
-
@scope_id = new_attributes[:scope_id] if new_attributes.
|
30
|
+
@scope_id = new_attributes[:scope_id] if new_attributes.key?(:scope_id)
|
34
31
|
end
|
35
32
|
|
36
|
-
def [](survey_id)
|
33
|
+
def [](survey_id)
|
34
|
+
find(survey_id)
|
35
|
+
end
|
36
|
+
|
37
37
|
def find(survey_id)
|
38
38
|
@all.select do |survey|
|
39
39
|
survey.id == survey_id
|
40
|
-
end.first || QualtricsAPI::Survey.new("id" => survey_id
|
40
|
+
end.first || QualtricsAPI::Survey.new("id" => survey_id, connection: connection)
|
41
41
|
end
|
42
42
|
|
43
43
|
private
|
@@ -56,9 +56,8 @@ module QualtricsAPI
|
|
56
56
|
|
57
57
|
def parse_fetch_response(response)
|
58
58
|
@all = response.body["result"].map do |result|
|
59
|
-
QualtricsAPI::Survey.new result.merge(connection:
|
59
|
+
QualtricsAPI::Survey.new result.merge(connection: connection)
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
63
|
-
|
64
63
|
end
|
data/qualtrics_api.gemspec
CHANGED
@@ -7,12 +7,12 @@ require 'qualtrics_api/version'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = "qualtrics_api"
|
9
9
|
spec.version = QualtricsAPI::VERSION
|
10
|
-
spec.authors = ["Yurui Zhang"]
|
11
|
-
spec.email = ["yuruiology@gmail.com"]
|
10
|
+
spec.authors = ["Yurui Zhang", "Marcin Naglik", "Mateusz Urbański"]
|
11
|
+
spec.email = ["yuruiology@gmail.com", "marcin.naglik@razorbear.com", "mateuszurbanski@yahoo.pl"]
|
12
12
|
spec.summary = %q{A Ruby wrapper for Qualtrics REST API v3.0}
|
13
13
|
spec.description = %q{A Ruby wrapper for Qualtrics REST API version 3.0.
|
14
14
|
See https://co1.qualtrics.com/APIDocs/ for API documents.}
|
15
|
-
spec.homepage = ""
|
15
|
+
spec.homepage = "https://github.com/CambridgeEducation/qualtrics_api"
|
16
16
|
spec.license = "MIT"
|
17
17
|
|
18
18
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -20,11 +20,15 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
+
spec.required_ruby_version = '>= 2.1.0'
|
24
|
+
|
23
25
|
spec.add_dependency "faraday", "~> 0.9.1"
|
24
26
|
spec.add_dependency "faraday_middleware", "~> 0.9.1"
|
27
|
+
spec.add_dependency "virtus", "~> 1.0"
|
25
28
|
|
26
29
|
spec.add_development_dependency "bundler", "~> 1.7"
|
27
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
28
|
-
spec.add_development_dependency "rspec", "~> 3.2
|
29
|
-
spec.add_development_dependency "vcr", "~> 2.9
|
31
|
+
spec.add_development_dependency "rspec", "~> 3.2"
|
32
|
+
spec.add_development_dependency "vcr", "~> 2.9"
|
33
|
+
spec.add_development_dependency "guard-rspec", "~> 4.5"
|
30
34
|
end
|
data/spec/lib/client_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe QualtricsAPI::Client do
|
4
|
-
|
5
4
|
subject { QualtricsAPI::Client.new(:api_token => "someToken") }
|
6
5
|
|
7
6
|
it "has an api token" do
|
@@ -18,7 +17,7 @@ describe QualtricsAPI::Client do
|
|
18
17
|
end
|
19
18
|
|
20
19
|
it "sets connection" do
|
21
|
-
expect(subject.surveys.
|
20
|
+
expect(subject.surveys.connection).to eq subject.connection
|
22
21
|
end
|
23
22
|
|
24
23
|
it "caches the collection" do
|
@@ -32,7 +31,7 @@ describe QualtricsAPI::Client do
|
|
32
31
|
end
|
33
32
|
|
34
33
|
it "sets connection" do
|
35
|
-
expect(subject.surveys.
|
34
|
+
expect(subject.surveys.connection).to eq subject.connection
|
36
35
|
end
|
37
36
|
|
38
37
|
it "assigns scope_id if passed" do
|
@@ -43,5 +42,4 @@ describe QualtricsAPI::Client do
|
|
43
42
|
expect(subject.surveys.object_id).to eq subject.surveys.object_id
|
44
43
|
end
|
45
44
|
end
|
46
|
-
|
47
45
|
end
|
@@ -3,19 +3,19 @@ require 'spec_helper'
|
|
3
3
|
describe QualtricsAPI::ResponseExportCollection do
|
4
4
|
let(:connection) { double('connection') }
|
5
5
|
|
6
|
-
subject { described_class.new
|
6
|
+
subject { described_class.new(connection: connection) }
|
7
7
|
|
8
8
|
it "has no @all when initialized" do
|
9
9
|
expect(subject.all).to eq []
|
10
10
|
end
|
11
11
|
|
12
12
|
it "takes a connection" do
|
13
|
-
expect(subject.
|
13
|
+
expect(subject.connection).to eq connection
|
14
14
|
end
|
15
15
|
|
16
16
|
describe "#find, #[]" do
|
17
|
-
let(:export_1) { QualtricsAPI::ResponseExport.new
|
18
|
-
let(:export_2) { QualtricsAPI::ResponseExport.new
|
17
|
+
let(:export_1) { QualtricsAPI::ResponseExport.new(:id => "export1") }
|
18
|
+
let(:export_2) { QualtricsAPI::ResponseExport.new(:id => "export2") }
|
19
19
|
|
20
20
|
it "finds the export by id" do
|
21
21
|
subject.instance_variable_set :@all, [export_1, export_2]
|
@@ -27,7 +27,7 @@ describe QualtricsAPI::ResponseExportCollection do
|
|
27
27
|
sut = subject["eee 3"]
|
28
28
|
expect(sut).to be_a QualtricsAPI::ResponseExport
|
29
29
|
expect(sut.id).to eq "eee 3"
|
30
|
-
expect(sut.
|
30
|
+
expect(sut.connection).to eq connection
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -18,14 +18,14 @@ describe QualtricsAPI::Services::ResponseExportService do
|
|
18
18
|
decimal_format: ",",
|
19
19
|
seen_unanswered_recode: "something",
|
20
20
|
use_local_time: true,
|
21
|
-
spss_string_length: "15"
|
21
|
+
spss_string_length: "15"
|
22
22
|
}
|
23
23
|
end
|
24
24
|
let(:connection) { double("connection") }
|
25
25
|
|
26
|
-
subject { described_class.new params.merge(connection: connection)}
|
26
|
+
subject { described_class.new params.merge(connection: connection) }
|
27
27
|
|
28
|
-
describe "
|
28
|
+
describe "assign options" do
|
29
29
|
before do
|
30
30
|
allow_any_instance_of(described_class).to receive(:start)
|
31
31
|
end
|
@@ -37,7 +37,7 @@ describe QualtricsAPI::Services::ResponseExportService do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "assigns connection" do
|
40
|
-
expect(subject.
|
40
|
+
expect(subject.connection).to eq connection
|
41
41
|
end
|
42
42
|
|
43
43
|
describe "defaults" do
|
@@ -106,5 +106,4 @@ describe QualtricsAPI::Services::ResponseExportService do
|
|
106
106
|
expect(subject.id).to eq "ES_cwLvnQHobKfV9t3"
|
107
107
|
end
|
108
108
|
end
|
109
|
-
|
110
109
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe QualtricsAPI::SurveyCollection do
|
4
|
-
|
5
4
|
let(:connection) { double('connection') }
|
6
5
|
|
7
6
|
subject { described_class.new connection: connection, scope_id: "fake_scopeId" }
|
@@ -19,7 +18,7 @@ describe QualtricsAPI::SurveyCollection do
|
|
19
18
|
end
|
20
19
|
|
21
20
|
it "takes a connection" do
|
22
|
-
expect(subject.
|
21
|
+
expect(subject.connection).to eq connection
|
23
22
|
end
|
24
23
|
|
25
24
|
describe "#query_attributes" do
|
@@ -43,7 +42,7 @@ describe QualtricsAPI::SurveyCollection do
|
|
43
42
|
sut = subject["s3"]
|
44
43
|
expect(sut).to be_a QualtricsAPI::Survey
|
45
44
|
expect(sut.id).to eq "s3"
|
46
|
-
expect(sut.
|
45
|
+
expect(sut.connection).to eq connection
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
@@ -71,7 +70,7 @@ describe QualtricsAPI::SurveyCollection do
|
|
71
70
|
end
|
72
71
|
|
73
72
|
it "passes down the connection" do
|
74
|
-
expect(subject.all.first.
|
73
|
+
expect(subject.all.first.connection).to eq client.connection
|
75
74
|
end
|
76
75
|
|
77
76
|
it "returns itself" do
|
@@ -100,7 +99,5 @@ describe QualtricsAPI::SurveyCollection do
|
|
100
99
|
end
|
101
100
|
end
|
102
101
|
end
|
103
|
-
|
104
102
|
end
|
105
|
-
|
106
103
|
end
|
data/spec/lib/survey_spec.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe QualtricsAPI::Survey do
|
4
|
-
|
5
4
|
let(:qualtrics_response) do
|
6
5
|
{
|
7
6
|
"id" => "SV_djzgZ6eJXqnIUyF",
|
8
7
|
"name" => "test_survey",
|
9
8
|
"ownerId" => "UR_3fnAz35QCGlr725",
|
10
9
|
"lastModified" => "2015-03-20 12:56:33",
|
11
|
-
"status" => "Inactive"
|
10
|
+
"status" => "Inactive",
|
11
|
+
"SurveyCreationDate" => "2015-03-20 12:56:33"
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
let(:connection) { double('connection',
|
15
|
+
let(:connection) { double('connection', get: {}) }
|
16
16
|
|
17
|
-
subject { described_class.new qualtrics_response.merge(connection: connection)}
|
17
|
+
subject { described_class.new qualtrics_response.merge(connection: connection) }
|
18
18
|
|
19
19
|
it "has an id" do
|
20
20
|
expect(subject.id).to eq qualtrics_response["id"]
|
@@ -32,12 +32,16 @@ describe QualtricsAPI::Survey do
|
|
32
32
|
expect(subject.last_modified).to eq qualtrics_response["lastModified"]
|
33
33
|
end
|
34
34
|
|
35
|
+
it "has created_at" do
|
36
|
+
expect(subject.created_at).to eq qualtrics_response["SurveyCreationDate"]
|
37
|
+
end
|
38
|
+
|
35
39
|
it "has status" do
|
36
40
|
expect(subject.status).to eq qualtrics_response["status"]
|
37
41
|
end
|
38
42
|
|
39
43
|
it "has a connection" do
|
40
|
-
expect(subject.
|
44
|
+
expect(subject.connection).to eq connection
|
41
45
|
end
|
42
46
|
|
43
47
|
describe "export_responses" do
|
@@ -48,11 +52,9 @@ describe QualtricsAPI::Survey do
|
|
48
52
|
end
|
49
53
|
|
50
54
|
it "inits a ResponseExportService with options" do
|
51
|
-
expect(QualtricsAPI::Services::ResponseExportService).to receive(:new).with(
|
52
|
-
|
53
|
-
|
54
|
-
connection: subject.instance_variable_get(:@conn)
|
55
|
-
})
|
55
|
+
expect(QualtricsAPI::Services::ResponseExportService).to receive(:new).with(start_date: options[:start_date],
|
56
|
+
survey_id: subject.id,
|
57
|
+
connection: subject.connection)
|
56
58
|
|
57
59
|
subject.export_responses(options)
|
58
60
|
end
|
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qualtrics_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yurui Zhang
|
8
|
+
- Marcin Naglik
|
9
|
+
- Mateusz Urbański
|
8
10
|
autorequire:
|
9
11
|
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date: 2015-
|
13
|
+
date: 2015-06-26 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: faraday
|
@@ -38,6 +40,20 @@ dependencies:
|
|
38
40
|
- - "~>"
|
39
41
|
- !ruby/object:Gem::Version
|
40
42
|
version: 0.9.1
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: virtus
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.0'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.0'
|
41
57
|
- !ruby/object:Gem::Dependency
|
42
58
|
name: bundler
|
43
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,39 +88,58 @@ dependencies:
|
|
72
88
|
requirements:
|
73
89
|
- - "~>"
|
74
90
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.2
|
91
|
+
version: '3.2'
|
76
92
|
type: :development
|
77
93
|
prerelease: false
|
78
94
|
version_requirements: !ruby/object:Gem::Requirement
|
79
95
|
requirements:
|
80
96
|
- - "~>"
|
81
97
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.2
|
98
|
+
version: '3.2'
|
83
99
|
- !ruby/object:Gem::Dependency
|
84
100
|
name: vcr
|
85
101
|
requirement: !ruby/object:Gem::Requirement
|
86
102
|
requirements:
|
87
103
|
- - "~>"
|
88
104
|
- !ruby/object:Gem::Version
|
89
|
-
version: 2.9
|
105
|
+
version: '2.9'
|
90
106
|
type: :development
|
91
107
|
prerelease: false
|
92
108
|
version_requirements: !ruby/object:Gem::Requirement
|
93
109
|
requirements:
|
94
110
|
- - "~>"
|
95
111
|
- !ruby/object:Gem::Version
|
96
|
-
version: 2.9
|
112
|
+
version: '2.9'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: guard-rspec
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '4.5'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - "~>"
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '4.5'
|
97
127
|
description: |-
|
98
128
|
A Ruby wrapper for Qualtrics REST API version 3.0.
|
99
129
|
See https://co1.qualtrics.com/APIDocs/ for API documents.
|
100
130
|
email:
|
101
131
|
- yuruiology@gmail.com
|
132
|
+
- marcin.naglik@razorbear.com
|
133
|
+
- mateuszurbanski@yahoo.pl
|
102
134
|
executables: []
|
103
135
|
extensions: []
|
104
136
|
extra_rdoc_files: []
|
105
137
|
files:
|
106
138
|
- ".gitignore"
|
139
|
+
- ".rubocop.yml"
|
140
|
+
- ".travis.yml"
|
107
141
|
- Gemfile
|
142
|
+
- Guardfile
|
108
143
|
- LICENSE.txt
|
109
144
|
- README.md
|
110
145
|
- Rakefile
|
@@ -132,7 +167,7 @@ files:
|
|
132
167
|
- spec/lib/survey_spec.rb
|
133
168
|
- spec/qualtrics_api_spec.rb
|
134
169
|
- spec/spec_helper.rb
|
135
|
-
homepage:
|
170
|
+
homepage: https://github.com/CambridgeEducation/qualtrics_api
|
136
171
|
licenses:
|
137
172
|
- MIT
|
138
173
|
metadata: {}
|
@@ -144,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
144
179
|
requirements:
|
145
180
|
- - ">="
|
146
181
|
- !ruby/object:Gem::Version
|
147
|
-
version:
|
182
|
+
version: 2.1.0
|
148
183
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
184
|
requirements:
|
150
185
|
- - ">="
|
@@ -152,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
187
|
version: '0'
|
153
188
|
requirements: []
|
154
189
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.4.
|
190
|
+
rubygems_version: 2.4.6
|
156
191
|
signing_key:
|
157
192
|
specification_version: 4
|
158
193
|
summary: A Ruby wrapper for Qualtrics REST API v3.0
|