groupdocs 2.2.0 → 2.3.0
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 +7 -0
- data/.travis.yml +9 -9
- data/CHANGELOG.md +482 -477
- data/Gemfile +3 -3
- data/LICENSE.txt +21 -21
- data/README.md +94 -94
- data/Rakefile +9 -9
- data/examples/README.md +12 -12
- data/examples/api-samples/Gemfile +5 -5
- data/examples/api-samples/Gemfile.lock +49 -49
- data/examples/api-samples/README.md +23 -23
- data/examples/api-samples/public/css/style.css +229 -229
- data/examples/api-samples/public/docs/annotation-sample.html +167 -167
- data/examples/api-samples/public/docs/docco.css +500 -500
- data/examples/api-samples/public/docs/envelope-sample.html +374 -374
- data/examples/api-samples/public/docs/sample01.html +181 -181
- data/examples/api-samples/public/docs/sample02.html +199 -199
- data/examples/api-samples/public/docs/sample03.html +318 -318
- data/examples/api-samples/public/docs/sample04.html +217 -217
- data/examples/api-samples/public/docs/sample05.html +296 -296
- data/examples/api-samples/public/docs/sample06.html +347 -347
- data/examples/api-samples/public/docs/sample07.html +209 -209
- data/examples/api-samples/public/docs/sample08.html +277 -277
- data/examples/api-samples/public/docs/sample09.html +314 -314
- data/examples/api-samples/public/docs/sample10.html +270 -270
- data/examples/api-samples/public/docs/sample11.html +462 -462
- data/examples/api-samples/public/docs/sample12.html +199 -199
- data/examples/api-samples/public/docs/sample13.html +201 -201
- data/examples/api-samples/public/docs/sample14.html +204 -204
- data/examples/api-samples/public/docs/sample15.html +182 -182
- data/examples/api-samples/public/docs/sample16.html +234 -234
- data/examples/api-samples/public/docs/sample17.html +309 -309
- data/examples/api-samples/public/docs/sample18.html +721 -721
- data/examples/api-samples/public/docs/sample19.html +631 -631
- data/examples/api-samples/public/docs/sample20.html +230 -230
- data/examples/api-samples/public/docs/sample21.html +790 -790
- data/examples/api-samples/public/docs/sample22.html +408 -408
- data/examples/api-samples/public/docs/sample25.html +550 -550
- data/examples/api-samples/public/templates/base-simple_source.html +191 -191
- data/examples/api-samples/public/templates/testdocument.html +100 -100
- data/examples/api-samples/public/templates/welcome.htm +137 -137
- data/examples/api-samples/samples/annotation-sample.rb +56 -56
- data/examples/api-samples/samples/envelope-sample.rb +133 -133
- data/examples/api-samples/samples/sample01.rb +44 -44
- data/examples/api-samples/samples/sample02.rb +50 -50
- data/examples/api-samples/samples/sample03.rb +79 -79
- data/examples/api-samples/samples/sample04.rb +54 -54
- data/examples/api-samples/samples/sample05.rb +83 -83
- data/examples/api-samples/samples/sample06.rb +86 -86
- data/examples/api-samples/samples/sample07.rb +59 -59
- data/examples/api-samples/samples/sample08.rb +76 -76
- data/examples/api-samples/samples/sample09.rb +85 -85
- data/examples/api-samples/samples/sample10.rb +70 -70
- data/examples/api-samples/samples/sample11.rb +132 -132
- data/examples/api-samples/samples/sample12.rb +48 -48
- data/examples/api-samples/samples/sample13.rb +49 -49
- data/examples/api-samples/samples/sample14.rb +54 -54
- data/examples/api-samples/samples/sample15.rb +43 -43
- data/examples/api-samples/samples/sample16.rb +57 -57
- data/examples/api-samples/samples/sample17.rb +70 -70
- data/examples/api-samples/samples/sample18.rb +190 -190
- data/examples/api-samples/samples/sample19.rb +188 -188
- data/examples/api-samples/samples/sample20.rb +68 -68
- data/examples/api-samples/samples/sample21.rb +212 -212
- data/examples/api-samples/samples/sample22.rb +109 -109
- data/examples/api-samples/samples/sample25.rb +127 -127
- data/examples/api-samples/views/_others_samples.haml +233 -233
- data/examples/api-samples/views/annotation_sample.haml +63 -63
- data/examples/api-samples/views/envelope_sample.haml +72 -72
- data/examples/api-samples/views/index.haml +235 -235
- data/examples/api-samples/views/layout.haml +3 -3
- data/examples/api-samples/views/sample01.haml +63 -63
- data/examples/api-samples/views/sample02.haml +52 -52
- data/examples/api-samples/views/sample03.haml +87 -87
- data/examples/api-samples/views/sample04.haml +55 -55
- data/examples/api-samples/views/sample05.haml +86 -86
- data/examples/api-samples/views/sample06.haml +58 -58
- data/examples/api-samples/views/sample07.haml +52 -52
- data/examples/api-samples/views/sample08.haml +100 -100
- data/examples/api-samples/views/sample09.haml +95 -95
- data/examples/api-samples/views/sample10.haml +93 -93
- data/examples/api-samples/views/sample11.haml +140 -140
- data/examples/api-samples/views/sample12.haml +68 -68
- data/examples/api-samples/views/sample13.haml +64 -64
- data/examples/api-samples/views/sample14.haml +60 -60
- data/examples/api-samples/views/sample15.haml +51 -51
- data/examples/api-samples/views/sample16.haml +50 -50
- data/examples/api-samples/views/sample17.haml +54 -54
- data/examples/api-samples/views/sample18.haml +143 -143
- data/examples/api-samples/views/sample19.haml +92 -92
- data/examples/api-samples/views/sample20.haml +54 -54
- data/examples/api-samples/views/sample21.haml +123 -123
- data/examples/api-samples/views/sample22.haml +106 -106
- data/examples/api-samples/views/sample25.haml +101 -101
- data/examples/api-samples/views/sample31.haml +2 -2
- data/examples/api-samples/web.rb +20 -20
- data/examples/viewer/Gemfile +5 -5
- data/examples/viewer/app.rb +52 -52
- data/groupdocs.gemspec +31 -31
- data/lib/groupdocs.rb +62 -62
- data/lib/groupdocs/api.rb +6 -6
- data/lib/groupdocs/api/entity.rb +112 -112
- data/lib/groupdocs/api/helpers.rb +11 -11
- data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
- data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
- data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
- data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
- data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
- data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
- data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
- data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
- data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
- data/lib/groupdocs/api/request.rb +91 -91
- data/lib/groupdocs/datasource.rb +249 -249
- data/lib/groupdocs/datasource/field.rb +39 -39
- data/lib/groupdocs/document.rb +1550 -1550
- data/lib/groupdocs/document/annotation.rb +421 -421
- data/lib/groupdocs/document/annotation/reply.rb +173 -173
- data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
- data/lib/groupdocs/document/change.rb +56 -56
- data/lib/groupdocs/document/field.rb +53 -53
- data/lib/groupdocs/document/metadata.rb +32 -32
- data/lib/groupdocs/document/rectangle.rb +18 -18
- data/lib/groupdocs/document/view.rb +36 -36
- data/lib/groupdocs/errors.rb +8 -8
- data/lib/groupdocs/job.rb +468 -468
- data/lib/groupdocs/questionnaire.rb +530 -530
- data/lib/groupdocs/questionnaire/collector.rb +335 -335
- data/lib/groupdocs/questionnaire/execution.rb +181 -181
- data/lib/groupdocs/questionnaire/page.rb +43 -43
- data/lib/groupdocs/questionnaire/question.rb +108 -108
- data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
- data/lib/groupdocs/signature.rb +380 -380
- data/lib/groupdocs/signature/contact.rb +181 -181
- data/lib/groupdocs/signature/envelope.rb +747 -747
- data/lib/groupdocs/signature/envelope/log.rb +20 -20
- data/lib/groupdocs/signature/field.rb +286 -286
- data/lib/groupdocs/signature/field/location.rb +71 -71
- data/lib/groupdocs/signature/form.rb +804 -804
- data/lib/groupdocs/signature/list.rb +92 -92
- data/lib/groupdocs/signature/recipient.rb +79 -79
- data/lib/groupdocs/signature/role.rb +54 -54
- data/lib/groupdocs/signature/shared.rb +6 -6
- data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
- data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
- data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
- data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
- data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
- data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
- data/lib/groupdocs/signature/template.rb +124 -124
- data/lib/groupdocs/storage.rb +44 -44
- data/lib/groupdocs/storage/file.rb +432 -432
- data/lib/groupdocs/storage/folder.rb +288 -288
- data/lib/groupdocs/storage/package.rb +48 -48
- data/lib/groupdocs/storage/provider.rb +32 -32
- data/lib/groupdocs/subscription.rb +323 -323
- data/lib/groupdocs/subscription/limit.rb +20 -20
- data/lib/groupdocs/user.rb +955 -930
- data/lib/groupdocs/version.rb +3 -3
- data/spec/groupdocs/api/entity_spec.rb +55 -55
- data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
- data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
- data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
- data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
- data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
- data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
- data/spec/groupdocs/api/request_spec.rb +112 -112
- data/spec/groupdocs/datasource/field_spec.rb +29 -29
- data/spec/groupdocs/datasource_spec.rb +145 -145
- data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
- data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
- data/spec/groupdocs/document/annotation_spec.rb +234 -234
- data/spec/groupdocs/document/change_spec.rb +39 -39
- data/spec/groupdocs/document/field_spec.rb +28 -28
- data/spec/groupdocs/document/metadata_spec.rb +21 -21
- data/spec/groupdocs/document/rectangle_spec.rb +14 -14
- data/spec/groupdocs/document/view_spec.rb +33 -33
- data/spec/groupdocs/document_spec.rb +859 -859
- data/spec/groupdocs/errors_spec.rb +7 -7
- data/spec/groupdocs/job_spec.rb +323 -323
- data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
- data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
- data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
- data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
- data/spec/groupdocs/questionnaire_spec.rb +295 -295
- data/spec/groupdocs/signature/contact_spec.rb +142 -142
- data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
- data/spec/groupdocs/signature/envelope_spec.rb +384 -384
- data/spec/groupdocs/signature/field/location_spec.rb +40 -40
- data/spec/groupdocs/signature/field_spec.rb +235 -235
- data/spec/groupdocs/signature/form_spec.rb +205 -205
- data/spec/groupdocs/signature/list_spec.rb +87 -87
- data/spec/groupdocs/signature/recipient_spec.rb +26 -26
- data/spec/groupdocs/signature/role_spec.rb +47 -47
- data/spec/groupdocs/signature/template_spec.rb +80 -80
- data/spec/groupdocs/signature_spec.rb +194 -194
- data/spec/groupdocs/storage/file_spec.rb +303 -303
- data/spec/groupdocs/storage/folder_spec.rb +270 -270
- data/spec/groupdocs/storage/package_spec.rb +38 -38
- data/spec/groupdocs/storage/provider_spec.rb +21 -21
- data/spec/groupdocs/storage_spec.rb +27 -27
- data/spec/groupdocs/subscription/limit_spec.rb +16 -16
- data/spec/groupdocs/subscription_spec.rb +74 -74
- data/spec/groupdocs/user_spec.rb +257 -257
- data/spec/groupdocs_spec.rb +63 -63
- data/spec/spec_helper.rb +73 -73
- data/spec/support/json/annotation_access_set.json +11 -11
- data/spec/support/json/annotation_collaborators_get.json +16 -16
- data/spec/support/json/annotation_collaborators_set.json +16 -16
- data/spec/support/json/annotation_create.json +12 -12
- data/spec/support/json/annotation_list.json +32 -32
- data/spec/support/json/annotation_marker_move.json +10 -10
- data/spec/support/json/annotation_move.json +8 -8
- data/spec/support/json/annotation_remove.json +9 -9
- data/spec/support/json/annotation_replies_create.json +9 -9
- data/spec/support/json/annotation_replies_get.json +25 -25
- data/spec/support/json/annotation_reviewers_get.json +18 -18
- data/spec/support/json/comparison_changes.json +46 -46
- data/spec/support/json/comparison_compare.json +8 -8
- data/spec/support/json/comparison_document.json +10 -10
- data/spec/support/json/contact_add.json +12 -12
- data/spec/support/json/contacts_get.json +19 -19
- data/spec/support/json/contacts_import.json +8 -8
- data/spec/support/json/datasource_add.json +8 -8
- data/spec/support/json/datasource_get.json +22 -22
- data/spec/support/json/datasource_remove.json +8 -8
- data/spec/support/json/datasource_update.json +8 -8
- data/spec/support/json/delete_account.json +9 -9
- data/spec/support/json/document_access_info_get.json +14 -14
- data/spec/support/json/document_convert.json +8 -8
- data/spec/support/json/document_datasource.json +10 -10
- data/spec/support/json/document_fields.json +34 -34
- data/spec/support/json/document_formats.json +8 -8
- data/spec/support/json/document_metadata.json +15 -15
- data/spec/support/json/document_page_images_get.json +20 -20
- data/spec/support/json/document_questionnaire_create.json +9 -9
- data/spec/support/json/document_questionnaires.json +23 -23
- data/spec/support/json/document_sharers_remove.json +8 -8
- data/spec/support/json/document_sharers_set.json +16 -16
- data/spec/support/json/document_thumbnails.json +24 -24
- data/spec/support/json/document_views.json +32 -32
- data/spec/support/json/envelope_get.json +46 -46
- data/spec/support/json/envelope_logs.json +16 -16
- data/spec/support/json/envelope_recipient_add.json +26 -26
- data/spec/support/json/envelopes_all.json +48 -48
- data/spec/support/json/envelopes_resources.json +31 -31
- data/spec/support/json/file_compress.json +8 -8
- data/spec/support/json/file_copy.json +14 -14
- data/spec/support/json/file_delete.json +5 -5
- data/spec/support/json/file_move.json +14 -14
- data/spec/support/json/file_upload.json +8 -8
- data/spec/support/json/folder_create.json +8 -8
- data/spec/support/json/folder_delete.json +5 -5
- data/spec/support/json/folder_list.json +22 -22
- data/spec/support/json/folder_move.json +8 -8
- data/spec/support/json/folder_sharers_get.json +16 -16
- data/spec/support/json/folder_sharers_remove.json +8 -8
- data/spec/support/json/folder_sharers_set.json +16 -16
- data/spec/support/json/form_get.json +21 -21
- data/spec/support/json/forms_all.json +23 -23
- data/spec/support/json/job_add_url.json +8 -8
- data/spec/support/json/job_create.json +8 -8
- data/spec/support/json/job_documents.json +40 -40
- data/spec/support/json/job_file_add.json +8 -8
- data/spec/support/json/job_get.json +30 -30
- data/spec/support/json/job_update.json +7 -7
- data/spec/support/json/jobs_get.json +58 -58
- data/spec/support/json/list_add.json +12 -12
- data/spec/support/json/lists_get.json +19 -19
- data/spec/support/json/package_create.json +7 -7
- data/spec/support/json/questionnaire_collector.json +17 -17
- data/spec/support/json/questionnaire_collectors.json +38 -38
- data/spec/support/json/questionnaire_collectors_add.json +10 -10
- data/spec/support/json/questionnaire_create.json +10 -10
- data/spec/support/json/questionnaire_datasources.json +26 -26
- data/spec/support/json/questionnaire_execution_add.json +9 -9
- data/spec/support/json/questionnaire_execution_status_set.json +8 -8
- data/spec/support/json/questionnaire_execution_update.json +8 -8
- data/spec/support/json/questionnaire_executions.json +28 -28
- data/spec/support/json/questionnaire_get.json +17 -17
- data/spec/support/json/questionnaire_remove.json +8 -8
- data/spec/support/json/questionnaire_update.json +8 -8
- data/spec/support/json/questionnaires_get.json +40 -40
- data/spec/support/json/sign_documents.json +16 -16
- data/spec/support/json/signature_create.json +12 -12
- data/spec/support/json/signature_field_add.json +25 -25
- data/spec/support/json/signature_fields_get.json +27 -27
- data/spec/support/json/signature_roles_get.json +17 -17
- data/spec/support/json/signatures_get.json +19 -19
- data/spec/support/json/storage_info.json +10 -10
- data/spec/support/json/subscription_plan_get.json +9 -9
- data/spec/support/json/subscription_plans_get.json +17 -17
- data/spec/support/json/template_get.json +35 -35
- data/spec/support/json/template_get_documents.json +15 -15
- data/spec/support/json/template_get_recipients.json +20 -20
- data/spec/support/json/templates_all.json +37 -37
- data/spec/support/json/templates_get.json +21 -21
- data/spec/support/json/update_account.json +10 -10
- data/spec/support/json/user_area.json +67 -67
- data/spec/support/json/user_embed_key.json +38 -38
- data/spec/support/json/user_get_embed_key.json +67 -67
- data/spec/support/json/user_login.json +67 -67
- data/spec/support/json/user_profile_get.json +24 -24
- data/spec/support/json/user_providers.json +31 -31
- data/spec/support/json/user_roles.json +25 -25
- data/spec/support/json/user_users_get.json +27 -27
- data/spec/support/shared_examples/api/entity.rb +39 -39
- data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
- data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
- data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
- data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
- metadata +35 -55
@@ -1,181 +1,181 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Questionnaire::Execution < Api::Entity
|
3
|
-
|
4
|
-
include Api::Helpers::Status
|
5
|
-
|
6
|
-
#
|
7
|
-
# Returns execution by identifier.
|
8
|
-
#
|
9
|
-
# @param [String] guid
|
10
|
-
# @param [Hash] access Access credentials
|
11
|
-
# @option access [String] :client_id
|
12
|
-
# @option access [String] :private_key
|
13
|
-
# @return [GroupDocs::Questionnaire::Execution, nil]
|
14
|
-
#
|
15
|
-
def self.get!(guid, access = {})
|
16
|
-
json = Api::Request.new do |request|
|
17
|
-
request[:access] = access
|
18
|
-
request[:method] = :GET
|
19
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{guid}"
|
20
|
-
end.execute!
|
21
|
-
|
22
|
-
new(json[:execution])
|
23
|
-
rescue BadResponseError
|
24
|
-
nil
|
25
|
-
end
|
26
|
-
|
27
|
-
# @attr [Integer] id
|
28
|
-
attr_accessor :id
|
29
|
-
# @attr [String] guid
|
30
|
-
attr_accessor :guid
|
31
|
-
# @attr [Integer] collector_id
|
32
|
-
attr_accessor :collector_id
|
33
|
-
# @attr [String] collector_guid
|
34
|
-
attr_accessor :collector_guid
|
35
|
-
# @attr [String] questionnaire_name
|
36
|
-
attr_accessor :questionnaire_name
|
37
|
-
# @attr [GroupDocs::User] owner
|
38
|
-
attr_accessor :owner
|
39
|
-
# @attr [GroupDocs::User] executive
|
40
|
-
attr_accessor :executive
|
41
|
-
# @attr [GroupDocs::User] approver
|
42
|
-
attr_accessor :approver
|
43
|
-
# @attr [Integer] datasource_id
|
44
|
-
attr_accessor :datasource_id
|
45
|
-
# @attr [Symbol] status
|
46
|
-
attr_accessor :status
|
47
|
-
# @attr [Time] modified
|
48
|
-
attr_accessor :modified
|
49
|
-
# @attr [GroupDocs::Storage::File] document
|
50
|
-
attr_accessor :document
|
51
|
-
|
52
|
-
#
|
53
|
-
# Converts status to human-readable format.
|
54
|
-
# @return [Symbol]
|
55
|
-
#
|
56
|
-
def status
|
57
|
-
parse_status(@status)
|
58
|
-
end
|
59
|
-
|
60
|
-
#
|
61
|
-
# Converts timestamp which is return by API server to Time object.
|
62
|
-
# @return [Time]
|
63
|
-
#
|
64
|
-
def modified
|
65
|
-
Time.at(@modified / 1000)
|
66
|
-
end
|
67
|
-
|
68
|
-
#
|
69
|
-
# Converts document to GroupDocs::Document object.
|
70
|
-
# @param [Hash] options
|
71
|
-
#
|
72
|
-
def document=(options)
|
73
|
-
if options.is_a?(Hash)
|
74
|
-
options = GroupDocs::Storage::File.new(options)
|
75
|
-
elsif options.is_a?(Document)
|
76
|
-
options = options.file
|
77
|
-
end
|
78
|
-
|
79
|
-
@document = options
|
80
|
-
end
|
81
|
-
|
82
|
-
%w(owner executive approver).each do |method|
|
83
|
-
#
|
84
|
-
# Converts hash of user options to GroupDocs::User object.
|
85
|
-
#
|
86
|
-
# @param [GroupDocs::User, Hash] options
|
87
|
-
#
|
88
|
-
define_method(:"#{method}=") do |options|
|
89
|
-
case options
|
90
|
-
when User then instance_variable_set(:"@#{method}", options)
|
91
|
-
when Hash then instance_variable_set(:"@#{method}", User.new(options))
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
#
|
97
|
-
# Updates status of execution on server.
|
98
|
-
#
|
99
|
-
# @param [Symbol] status
|
100
|
-
# @param [Hash] access Access credentials
|
101
|
-
# @option access [String] :client_id
|
102
|
-
# @option access [String] :private_key
|
103
|
-
#
|
104
|
-
def set_status!(status, access = {})
|
105
|
-
status = parse_status(status)
|
106
|
-
|
107
|
-
Api::Request.new do |request|
|
108
|
-
request[:access] = access
|
109
|
-
request[:method] = :PUT
|
110
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{id}/status"
|
111
|
-
request[:request_body] = status
|
112
|
-
end.execute!
|
113
|
-
|
114
|
-
self.status = status
|
115
|
-
end
|
116
|
-
|
117
|
-
#
|
118
|
-
# Updates execution on server.
|
119
|
-
#
|
120
|
-
# @param [Hash] access Access credentials
|
121
|
-
# @option access [String] :client_id
|
122
|
-
# @option access [String] :private_key
|
123
|
-
#
|
124
|
-
def update!(access = {})
|
125
|
-
Api::Request.new do |request|
|
126
|
-
request[:access] = access
|
127
|
-
request[:method] = :PUT
|
128
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{id}"
|
129
|
-
request[:request_body] = to_hash
|
130
|
-
end.execute!
|
131
|
-
end
|
132
|
-
|
133
|
-
#
|
134
|
-
# Deletes execution.
|
135
|
-
#
|
136
|
-
# @param [Hash] access Access credentials
|
137
|
-
# @option access [String] :client_id
|
138
|
-
# @option access [String] :private_key
|
139
|
-
#
|
140
|
-
def delete!(access = {})
|
141
|
-
Api::Request.new do |request|
|
142
|
-
request[:access] = access
|
143
|
-
request[:method] = :DELETE
|
144
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{id}"
|
145
|
-
end.execute!
|
146
|
-
end
|
147
|
-
|
148
|
-
#
|
149
|
-
# Creates new job to merge datasource into questionnaire collector execution.
|
150
|
-
#
|
151
|
-
# When you fill collector, execution for it creates. You can then fill this execution
|
152
|
-
# (for example if you didn't answered all the questions at first).
|
153
|
-
#
|
154
|
-
# @param [GroupDocs::DataSource] datasource
|
155
|
-
# @param [Hash] options
|
156
|
-
# @option options [Boolean] :new_type New file format type
|
157
|
-
# @option options [Boolean] :email_results Set to true if converted document should be emailed
|
158
|
-
# @param [Hash] access Access credentials
|
159
|
-
# @option access [String] :client_id
|
160
|
-
# @option access [String] :private_key
|
161
|
-
# @return [GroupDocs::Job]
|
162
|
-
#
|
163
|
-
# @raise [ArgumentError] if datasource is not GroupDocs::DataSource object
|
164
|
-
#
|
165
|
-
def fill!(datasource, options = {}, access = {})
|
166
|
-
datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
|
167
|
-
"Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
|
168
|
-
|
169
|
-
api = Api::Request.new do |request|
|
170
|
-
request[:access] = access
|
171
|
-
request[:method] = :POST
|
172
|
-
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{guid}/datasources/#{datasource.id}"
|
173
|
-
end
|
174
|
-
api.add_params(options)
|
175
|
-
json = api.execute!
|
176
|
-
|
177
|
-
Job.new(:id => json[:job_id])
|
178
|
-
end
|
179
|
-
|
180
|
-
end # Questionnaire::Execution
|
181
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Questionnaire::Execution < Api::Entity
|
3
|
+
|
4
|
+
include Api::Helpers::Status
|
5
|
+
|
6
|
+
#
|
7
|
+
# Returns execution by identifier.
|
8
|
+
#
|
9
|
+
# @param [String] guid
|
10
|
+
# @param [Hash] access Access credentials
|
11
|
+
# @option access [String] :client_id
|
12
|
+
# @option access [String] :private_key
|
13
|
+
# @return [GroupDocs::Questionnaire::Execution, nil]
|
14
|
+
#
|
15
|
+
def self.get!(guid, access = {})
|
16
|
+
json = Api::Request.new do |request|
|
17
|
+
request[:access] = access
|
18
|
+
request[:method] = :GET
|
19
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{guid}"
|
20
|
+
end.execute!
|
21
|
+
|
22
|
+
new(json[:execution])
|
23
|
+
rescue BadResponseError
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
|
27
|
+
# @attr [Integer] id
|
28
|
+
attr_accessor :id
|
29
|
+
# @attr [String] guid
|
30
|
+
attr_accessor :guid
|
31
|
+
# @attr [Integer] collector_id
|
32
|
+
attr_accessor :collector_id
|
33
|
+
# @attr [String] collector_guid
|
34
|
+
attr_accessor :collector_guid
|
35
|
+
# @attr [String] questionnaire_name
|
36
|
+
attr_accessor :questionnaire_name
|
37
|
+
# @attr [GroupDocs::User] owner
|
38
|
+
attr_accessor :owner
|
39
|
+
# @attr [GroupDocs::User] executive
|
40
|
+
attr_accessor :executive
|
41
|
+
# @attr [GroupDocs::User] approver
|
42
|
+
attr_accessor :approver
|
43
|
+
# @attr [Integer] datasource_id
|
44
|
+
attr_accessor :datasource_id
|
45
|
+
# @attr [Symbol] status
|
46
|
+
attr_accessor :status
|
47
|
+
# @attr [Time] modified
|
48
|
+
attr_accessor :modified
|
49
|
+
# @attr [GroupDocs::Storage::File] document
|
50
|
+
attr_accessor :document
|
51
|
+
|
52
|
+
#
|
53
|
+
# Converts status to human-readable format.
|
54
|
+
# @return [Symbol]
|
55
|
+
#
|
56
|
+
def status
|
57
|
+
parse_status(@status)
|
58
|
+
end
|
59
|
+
|
60
|
+
#
|
61
|
+
# Converts timestamp which is return by API server to Time object.
|
62
|
+
# @return [Time]
|
63
|
+
#
|
64
|
+
def modified
|
65
|
+
Time.at(@modified / 1000)
|
66
|
+
end
|
67
|
+
|
68
|
+
#
|
69
|
+
# Converts document to GroupDocs::Document object.
|
70
|
+
# @param [Hash] options
|
71
|
+
#
|
72
|
+
def document=(options)
|
73
|
+
if options.is_a?(Hash)
|
74
|
+
options = GroupDocs::Storage::File.new(options)
|
75
|
+
elsif options.is_a?(Document)
|
76
|
+
options = options.file
|
77
|
+
end
|
78
|
+
|
79
|
+
@document = options
|
80
|
+
end
|
81
|
+
|
82
|
+
%w(owner executive approver).each do |method|
|
83
|
+
#
|
84
|
+
# Converts hash of user options to GroupDocs::User object.
|
85
|
+
#
|
86
|
+
# @param [GroupDocs::User, Hash] options
|
87
|
+
#
|
88
|
+
define_method(:"#{method}=") do |options|
|
89
|
+
case options
|
90
|
+
when User then instance_variable_set(:"@#{method}", options)
|
91
|
+
when Hash then instance_variable_set(:"@#{method}", User.new(options))
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
#
|
97
|
+
# Updates status of execution on server.
|
98
|
+
#
|
99
|
+
# @param [Symbol] status
|
100
|
+
# @param [Hash] access Access credentials
|
101
|
+
# @option access [String] :client_id
|
102
|
+
# @option access [String] :private_key
|
103
|
+
#
|
104
|
+
def set_status!(status, access = {})
|
105
|
+
status = parse_status(status)
|
106
|
+
|
107
|
+
Api::Request.new do |request|
|
108
|
+
request[:access] = access
|
109
|
+
request[:method] = :PUT
|
110
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{id}/status"
|
111
|
+
request[:request_body] = status
|
112
|
+
end.execute!
|
113
|
+
|
114
|
+
self.status = status
|
115
|
+
end
|
116
|
+
|
117
|
+
#
|
118
|
+
# Updates execution on server.
|
119
|
+
#
|
120
|
+
# @param [Hash] access Access credentials
|
121
|
+
# @option access [String] :client_id
|
122
|
+
# @option access [String] :private_key
|
123
|
+
#
|
124
|
+
def update!(access = {})
|
125
|
+
Api::Request.new do |request|
|
126
|
+
request[:access] = access
|
127
|
+
request[:method] = :PUT
|
128
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{id}"
|
129
|
+
request[:request_body] = to_hash
|
130
|
+
end.execute!
|
131
|
+
end
|
132
|
+
|
133
|
+
#
|
134
|
+
# Deletes execution.
|
135
|
+
#
|
136
|
+
# @param [Hash] access Access credentials
|
137
|
+
# @option access [String] :client_id
|
138
|
+
# @option access [String] :private_key
|
139
|
+
#
|
140
|
+
def delete!(access = {})
|
141
|
+
Api::Request.new do |request|
|
142
|
+
request[:access] = access
|
143
|
+
request[:method] = :DELETE
|
144
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{id}"
|
145
|
+
end.execute!
|
146
|
+
end
|
147
|
+
|
148
|
+
#
|
149
|
+
# Creates new job to merge datasource into questionnaire collector execution.
|
150
|
+
#
|
151
|
+
# When you fill collector, execution for it creates. You can then fill this execution
|
152
|
+
# (for example if you didn't answered all the questions at first).
|
153
|
+
#
|
154
|
+
# @param [GroupDocs::DataSource] datasource
|
155
|
+
# @param [Hash] options
|
156
|
+
# @option options [Boolean] :new_type New file format type
|
157
|
+
# @option options [Boolean] :email_results Set to true if converted document should be emailed
|
158
|
+
# @param [Hash] access Access credentials
|
159
|
+
# @option access [String] :client_id
|
160
|
+
# @option access [String] :private_key
|
161
|
+
# @return [GroupDocs::Job]
|
162
|
+
#
|
163
|
+
# @raise [ArgumentError] if datasource is not GroupDocs::DataSource object
|
164
|
+
#
|
165
|
+
def fill!(datasource, options = {}, access = {})
|
166
|
+
datasource.is_a?(GroupDocs::DataSource) or raise ArgumentError,
|
167
|
+
"Datasource should be GroupDocs::DataSource object, received: #{datasource.inspect}"
|
168
|
+
|
169
|
+
api = Api::Request.new do |request|
|
170
|
+
request[:access] = access
|
171
|
+
request[:method] = :POST
|
172
|
+
request[:path] = "/merge/{{client_id}}/questionnaires/executions/#{guid}/datasources/#{datasource.id}"
|
173
|
+
end
|
174
|
+
api.add_params(options)
|
175
|
+
json = api.execute!
|
176
|
+
|
177
|
+
Job.new(:id => json[:job_id])
|
178
|
+
end
|
179
|
+
|
180
|
+
end # Questionnaire::Execution
|
181
|
+
end # GroupDocs
|
@@ -1,43 +1,43 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Questionnaire::Page < Api::Entity
|
3
|
-
|
4
|
-
# @attr [Integer] number
|
5
|
-
attr_accessor :number
|
6
|
-
# @attr [String] title
|
7
|
-
attr_accessor :title
|
8
|
-
# @attr [Array<GroupDocs::Questionnaire::Question>] questions
|
9
|
-
attr_accessor :questions
|
10
|
-
|
11
|
-
#
|
12
|
-
# Converts each question to GroupDocs::Questionnaire::Question object.
|
13
|
-
#
|
14
|
-
# @param [Array<GroupDocs::Questionnaire::Question, Hash>] questions
|
15
|
-
#
|
16
|
-
def questions=(questions)
|
17
|
-
if questions
|
18
|
-
@questions = questions.map do |question|
|
19
|
-
if question.is_a?(GroupDocs::Questionnaire::Question)
|
20
|
-
question
|
21
|
-
else
|
22
|
-
Questionnaire::Question.new(question)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
#
|
29
|
-
# Adds question to page.
|
30
|
-
#
|
31
|
-
# @param [GroupDocs::Questionnaire::Question] question
|
32
|
-
# @raise [ArgumentError] if question is not GroupDocs::Questionnaire::Question object
|
33
|
-
#
|
34
|
-
def add_question(question)
|
35
|
-
question.is_a?(GroupDocs::Questionnaire::Question) or raise ArgumentError,
|
36
|
-
"Question should be GroupDocs::Questionnaire::Question object, received: #{question.inspect}"
|
37
|
-
|
38
|
-
@questions ||= Array.new
|
39
|
-
@questions << question
|
40
|
-
end
|
41
|
-
|
42
|
-
end # Questionnaire::Page
|
43
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Questionnaire::Page < Api::Entity
|
3
|
+
|
4
|
+
# @attr [Integer] number
|
5
|
+
attr_accessor :number
|
6
|
+
# @attr [String] title
|
7
|
+
attr_accessor :title
|
8
|
+
# @attr [Array<GroupDocs::Questionnaire::Question>] questions
|
9
|
+
attr_accessor :questions
|
10
|
+
|
11
|
+
#
|
12
|
+
# Converts each question to GroupDocs::Questionnaire::Question object.
|
13
|
+
#
|
14
|
+
# @param [Array<GroupDocs::Questionnaire::Question, Hash>] questions
|
15
|
+
#
|
16
|
+
def questions=(questions)
|
17
|
+
if questions
|
18
|
+
@questions = questions.map do |question|
|
19
|
+
if question.is_a?(GroupDocs::Questionnaire::Question)
|
20
|
+
question
|
21
|
+
else
|
22
|
+
Questionnaire::Question.new(question)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# Adds question to page.
|
30
|
+
#
|
31
|
+
# @param [GroupDocs::Questionnaire::Question] question
|
32
|
+
# @raise [ArgumentError] if question is not GroupDocs::Questionnaire::Question object
|
33
|
+
#
|
34
|
+
def add_question(question)
|
35
|
+
question.is_a?(GroupDocs::Questionnaire::Question) or raise ArgumentError,
|
36
|
+
"Question should be GroupDocs::Questionnaire::Question object, received: #{question.inspect}"
|
37
|
+
|
38
|
+
@questions ||= Array.new
|
39
|
+
@questions << question
|
40
|
+
end
|
41
|
+
|
42
|
+
end # Questionnaire::Page
|
43
|
+
end # GroupDocs
|
@@ -1,108 +1,108 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Questionnaire::Question < Api::Entity
|
3
|
-
|
4
|
-
require 'groupdocs/questionnaire/question/answer'
|
5
|
-
require 'groupdocs/questionnaire/question/conditions'
|
6
|
-
|
7
|
-
TYPES = %w(GenericText MultipleChoice)
|
8
|
-
|
9
|
-
# @attr [String] field
|
10
|
-
attr_accessor :field
|
11
|
-
# @attr [String] text
|
12
|
-
attr_accessor :text
|
13
|
-
# @attr [String] def_answer
|
14
|
-
attr_accessor :def_answer
|
15
|
-
# @attr [Boolean] required
|
16
|
-
attr_accessor :required
|
17
|
-
# @attr [Symbol] type
|
18
|
-
attr_accessor :type
|
19
|
-
# @attr [Array<Hash>] answers
|
20
|
-
attr_accessor :answers
|
21
|
-
|
22
|
-
#
|
23
|
-
# added in release 1.5.8
|
24
|
-
#
|
25
|
-
# @attr [Boolean] disabled
|
26
|
-
attr_accessor :disabled
|
27
|
-
# @attr [Integer] max_length
|
28
|
-
attr_accessor :max_length
|
29
|
-
# @attr [GroupDocs::Document::Rectangle] rect
|
30
|
-
attr_accessor :rect
|
31
|
-
# @attr [Array<String>] acceptableValues
|
32
|
-
attr_accessor :acceptableValues
|
33
|
-
# @attr [Array<GroupDocs::Questionnaire::Question::Conditions>] conditions
|
34
|
-
attr_accessor :conditions
|
35
|
-
|
36
|
-
# added in release 1.7.0
|
37
|
-
#
|
38
|
-
# @attr [String] regionName
|
39
|
-
attr_accessor :regionName
|
40
|
-
## @attr [String] hint
|
41
|
-
attr_accessor :hint
|
42
|
-
# @attr [Array<String>] dimension
|
43
|
-
attr_accessor :dimension
|
44
|
-
|
45
|
-
|
46
|
-
# Human-readable accessors
|
47
|
-
alias_accessor :default_answer, :def_answer
|
48
|
-
|
49
|
-
# added in release 1.5.8
|
50
|
-
alias_accessor :acceptable_values, :acceptableValues
|
51
|
-
|
52
|
-
#
|
53
|
-
# Converts each answer to GroupDocs::Questionnaire::Question::Answer object.
|
54
|
-
#
|
55
|
-
# @param [Array<Hash>] answers
|
56
|
-
#
|
57
|
-
def answers=(answers)
|
58
|
-
if answers
|
59
|
-
@answers = answers.map do |answer|
|
60
|
-
if answer.is_a?(GroupDocs::Questionnaire::Question::Answer)
|
61
|
-
answer
|
62
|
-
else
|
63
|
-
Questionnaire::Question::Answer.new(answer)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
#
|
70
|
-
# Adds answer to the question.
|
71
|
-
#
|
72
|
-
# @param [GroupDocs::Questionnaire::Question::Answer] answer
|
73
|
-
# @raise [ArgumentError] if answer is not GroupDocs::Questionnaire::Question::Answer object
|
74
|
-
#
|
75
|
-
def add_answer(answer)
|
76
|
-
answer.is_a?(GroupDocs::Questionnaire::Question::Answer) or raise ArgumentError,
|
77
|
-
"Answer should be GroupDocs::Questionnaire::Question::Answer object, received: #{answer.inspect}"
|
78
|
-
|
79
|
-
@answers ||= Array.new
|
80
|
-
@answers << answer
|
81
|
-
end
|
82
|
-
|
83
|
-
#
|
84
|
-
# Updates type with machine-readable format.
|
85
|
-
#
|
86
|
-
# @param [Symbol] type
|
87
|
-
# @raise [ArgumentError] if type is unknown
|
88
|
-
#
|
89
|
-
def type=(type)
|
90
|
-
if type.is_a?(Symbol)
|
91
|
-
type = type.to_s.camelize
|
92
|
-
TYPES.include?(type) or raise ArgumentError, "Unknown type: #{type.inspect}"
|
93
|
-
end
|
94
|
-
|
95
|
-
@type = type
|
96
|
-
end
|
97
|
-
|
98
|
-
#
|
99
|
-
# Returns field type in human-readable format.
|
100
|
-
#
|
101
|
-
# @return [Symbol]
|
102
|
-
#
|
103
|
-
def type
|
104
|
-
@type.underscore.to_sym
|
105
|
-
end
|
106
|
-
|
107
|
-
end # Questionnaire::Question
|
108
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Questionnaire::Question < Api::Entity
|
3
|
+
|
4
|
+
require 'groupdocs/questionnaire/question/answer'
|
5
|
+
require 'groupdocs/questionnaire/question/conditions'
|
6
|
+
|
7
|
+
TYPES = %w(GenericText MultipleChoice)
|
8
|
+
|
9
|
+
# @attr [String] field
|
10
|
+
attr_accessor :field
|
11
|
+
# @attr [String] text
|
12
|
+
attr_accessor :text
|
13
|
+
# @attr [String] def_answer
|
14
|
+
attr_accessor :def_answer
|
15
|
+
# @attr [Boolean] required
|
16
|
+
attr_accessor :required
|
17
|
+
# @attr [Symbol] type
|
18
|
+
attr_accessor :type
|
19
|
+
# @attr [Array<Hash>] answers
|
20
|
+
attr_accessor :answers
|
21
|
+
|
22
|
+
#
|
23
|
+
# added in release 1.5.8
|
24
|
+
#
|
25
|
+
# @attr [Boolean] disabled
|
26
|
+
attr_accessor :disabled
|
27
|
+
# @attr [Integer] max_length
|
28
|
+
attr_accessor :max_length
|
29
|
+
# @attr [GroupDocs::Document::Rectangle] rect
|
30
|
+
attr_accessor :rect
|
31
|
+
# @attr [Array<String>] acceptableValues
|
32
|
+
attr_accessor :acceptableValues
|
33
|
+
# @attr [Array<GroupDocs::Questionnaire::Question::Conditions>] conditions
|
34
|
+
attr_accessor :conditions
|
35
|
+
|
36
|
+
# added in release 1.7.0
|
37
|
+
#
|
38
|
+
# @attr [String] regionName
|
39
|
+
attr_accessor :regionName
|
40
|
+
## @attr [String] hint
|
41
|
+
attr_accessor :hint
|
42
|
+
# @attr [Array<String>] dimension
|
43
|
+
attr_accessor :dimension
|
44
|
+
|
45
|
+
|
46
|
+
# Human-readable accessors
|
47
|
+
alias_accessor :default_answer, :def_answer
|
48
|
+
|
49
|
+
# added in release 1.5.8
|
50
|
+
alias_accessor :acceptable_values, :acceptableValues
|
51
|
+
|
52
|
+
#
|
53
|
+
# Converts each answer to GroupDocs::Questionnaire::Question::Answer object.
|
54
|
+
#
|
55
|
+
# @param [Array<Hash>] answers
|
56
|
+
#
|
57
|
+
def answers=(answers)
|
58
|
+
if answers
|
59
|
+
@answers = answers.map do |answer|
|
60
|
+
if answer.is_a?(GroupDocs::Questionnaire::Question::Answer)
|
61
|
+
answer
|
62
|
+
else
|
63
|
+
Questionnaire::Question::Answer.new(answer)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
#
|
70
|
+
# Adds answer to the question.
|
71
|
+
#
|
72
|
+
# @param [GroupDocs::Questionnaire::Question::Answer] answer
|
73
|
+
# @raise [ArgumentError] if answer is not GroupDocs::Questionnaire::Question::Answer object
|
74
|
+
#
|
75
|
+
def add_answer(answer)
|
76
|
+
answer.is_a?(GroupDocs::Questionnaire::Question::Answer) or raise ArgumentError,
|
77
|
+
"Answer should be GroupDocs::Questionnaire::Question::Answer object, received: #{answer.inspect}"
|
78
|
+
|
79
|
+
@answers ||= Array.new
|
80
|
+
@answers << answer
|
81
|
+
end
|
82
|
+
|
83
|
+
#
|
84
|
+
# Updates type with machine-readable format.
|
85
|
+
#
|
86
|
+
# @param [Symbol] type
|
87
|
+
# @raise [ArgumentError] if type is unknown
|
88
|
+
#
|
89
|
+
def type=(type)
|
90
|
+
if type.is_a?(Symbol)
|
91
|
+
type = type.to_s.camelize
|
92
|
+
TYPES.include?(type) or raise ArgumentError, "Unknown type: #{type.inspect}"
|
93
|
+
end
|
94
|
+
|
95
|
+
@type = type
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# Returns field type in human-readable format.
|
100
|
+
#
|
101
|
+
# @return [Symbol]
|
102
|
+
#
|
103
|
+
def type
|
104
|
+
@type.underscore.to_sym
|
105
|
+
end
|
106
|
+
|
107
|
+
end # Questionnaire::Question
|
108
|
+
end # GroupDocs
|