limesurvey_rails 1.5.0 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: deff9a2b87f3e6c2db940dfdc50d7f3ee62f4835
4
- data.tar.gz: 2476918b2c7cd4ed825ef009d2dcd4a11edc33c9
3
+ metadata.gz: d528206d39a75793bc0c4693dca10a77862ee58c
4
+ data.tar.gz: 7c17812488f1c73e7c0406a1e60e127d82d05a65
5
5
  SHA512:
6
- metadata.gz: db6011cb81ac60051295041e94899abcb83ae35b6bec659b772c3731cd57ea23aebde8350068a95e6ed729c7852117670853b801e409cfadb63f814f363c5d3c
7
- data.tar.gz: d53d732dbb60484f875b5505eb68aee5308eb43680fa6025f3a17eada77dd84121386035eb1ba6eefe246c202b9805dbc771703d5138558dcebcccf2fbc2ed92
6
+ metadata.gz: 3c305914e21e416f21b3cf9c5810a00cb5a3189985922dfb440122a20095cfecc82e496bf71007e261b66f152c9d2281321c0bc7e692dac7313bf0b8c214cff9
7
+ data.tar.gz: bce318fc0eb6210ab2ab44711c8a6e8edcf5556079a1253e18425ca28dd20559e91b5ef683d51e80d77a64282f5b1048b47b3bc5c101f35615a36572487755eb
@@ -7,9 +7,93 @@ module LimesurveyRails
7
7
  GET_SUMMARY_RESPONSES_ATTRIBUTES = %w{ completed_responses incomplete_responses full_responses }
8
8
  GET_SUMMARY_TOKENS_ATTRIBUTES = %w{ token_count token_invalid token_sent token_opted_out token_completed }
9
9
  GET_SUMMARY_ATTRIBUTES = GET_SUMMARY_RESPONSES_ATTRIBUTES + GET_SUMMARY_TOKENS_ATTRIBUTES
10
- GET_SURVEY_PROPERTY_ATTRIBUTES = %w{ attributedescriptions savetimings allowprev tokenanswerspersistence showgroupinfo showwelcome owner_id template printanswers assessments shownoanswer showprogress admin language ipaddr usecaptcha showqnumcode allowjumps active additional_languages refurl usetokens bouncetime navigationdelay expires datestamp datecreated bounce_email bounceprocessing nokeyboard startdate usecookie publicstatistics bounceaccounttype alloweditaftercompletion adminemail allowregister publicgraphs emailresponseto bounceaccounthost googleanalyticsstyle anonymized allowsave listpublic emailnotificationto bounceaccountpass googleanalyticsapikey faxto autonumber_start htmlemail tokenlength bounceaccountencryption format autoredirect sendconfirmation showxquestions bounceaccountuser }
11
- GET_LANGUAGE_PROPERTIES_ATTRIBUTES = %w{ surveyls_survey_id surveyls_url surveyls_email_register_subj email_admin_notification_subj surveyls_language surveyls_urldescription surveyls_email_register email_admin_notification surveyls_title surveyls_email_invite_subj surveyls_email_confirm_subj email_admin_responses_subj surveyls_description surveyls_email_invite surveyls_email_confirm email_admin_responses surveyls_welcometext surveyls_email_remind_subj surveyls_dateformat surveyls_numberformat surveyls_endtext surveyls_email_remind surveyls_attributecaptions }
12
-
10
+ GET_SURVEY_PROPERTY_ATTRIBUTES = %w{
11
+ attributedescriptions
12
+ savetimings
13
+ allowprev
14
+ tokenanswerspersistence
15
+ showgroupinfo
16
+ showwelcome
17
+ owner_id
18
+ template
19
+ printanswers
20
+ assessments
21
+ shownoanswer
22
+ showprogress
23
+ admin
24
+ language
25
+ ipaddr
26
+ usecaptcha
27
+ showqnumcode
28
+ allowjumps
29
+ active
30
+ additional_languages
31
+ refurl
32
+ usetokens
33
+ bouncetime
34
+ navigationdelay
35
+ expires
36
+ datestamp
37
+ datecreated
38
+ bounce_email
39
+ bounceprocessing
40
+ nokeyboard
41
+ startdate
42
+ usecookie
43
+ publicstatistics
44
+ bounceaccounttype
45
+ alloweditaftercompletion
46
+ adminemail
47
+ allowregister
48
+ publicgraphs
49
+ emailresponseto
50
+ bounceaccounthost
51
+ googleanalyticsstyle
52
+ anonymized
53
+ allowsave
54
+ listpublic
55
+ emailnotificationto
56
+ bounceaccountpass
57
+ googleanalyticsapikey
58
+ faxto
59
+ autonumber_start
60
+ htmlemail
61
+ tokenlength
62
+ bounceaccountencryption
63
+ format
64
+ autoredirect
65
+ sendconfirmation
66
+ showxquestions
67
+ bounceaccountuser
68
+ }
69
+
70
+ GET_LANGUAGE_PROPERTIES_ATTRIBUTES = %w{
71
+ surveyls_survey_id
72
+ surveyls_url
73
+ surveyls_email_register_subj
74
+ email_admin_notification_subj
75
+ surveyls_language
76
+ surveyls_urldescription
77
+ surveyls_email_register
78
+ email_admin_notification
79
+ surveyls_title
80
+ surveyls_email_invite_subj
81
+ surveyls_email_confirm_subj
82
+ email_admin_responses_subj
83
+ surveyls_description
84
+ surveyls_email_invite
85
+ surveyls_email_confirm
86
+ email_admin_responses
87
+ surveyls_welcometext
88
+ surveyls_email_remind_subj
89
+ surveyls_dateformat
90
+ surveyls_numberformat
91
+ surveyls_endtext
92
+ surveyls_email_remind
93
+ surveyls_attributecaptions
94
+ }
95
+
96
+
13
97
  ALL_ATTRIBUTES = (GET_SUMMARY_ATTRIBUTES | GET_SURVEY_PROPERTY_ATTRIBUTES | GET_LANGUAGE_PROPERTIES_ATTRIBUTES ).sort.unshift('id')
14
98
 
15
99
  attr_accessor *ALL_ATTRIBUTES
@@ -21,7 +105,11 @@ module LimesurveyRails
21
105
  validates_presence_of :language
22
106
 
23
107
  def self.all(lang = nil)
24
- LimesurveyRails.list_surveys(LimesurveyRails.configuration.username).map{|s| build(s['sid'],lang) }
108
+ all_ids.map{|id| build(id,lang) }
109
+ end
110
+
111
+ def self.all_ids
112
+ LimesurveyRails.list_surveys(LimesurveyRails.configuration.username).map{|s| s['sid'].to_i }
25
113
  end
26
114
 
27
115
  def self.find(survey_id,lang = nil)
@@ -6,7 +6,7 @@ module LimesurveyRails
6
6
  end
7
7
 
8
8
  def self.connect(force = false)
9
- if !force and connected?
9
+ if !force and connected?(true)
10
10
  false
11
11
  else
12
12
  if configured?
@@ -29,23 +29,13 @@ module LimesurveyRails
29
29
  end
30
30
 
31
31
  def self.connected?(verify = false)
32
- begin
33
- raise unless configured?
34
- raise unless session_key.present?
35
-
36
- if verify
37
- check_result = api.list_surveys(session_key)
38
- raise unless check_result.is_a? Array or check_result['status'] == 'No surveys found'
39
- end
40
-
41
- true
42
- rescue Exception => e
43
- if configuration.try(:auto_connection)
44
- connect(true)
45
- else
46
- false
47
- end
32
+ return false unless configured?
33
+ return false unless session_key.present?
34
+ if verify
35
+ check_result = api.list_surveys(session_key)
36
+ return false unless (check_result.is_a? Array or check_result['status'] == 'No surveys found')
48
37
  end
38
+ true
49
39
  end
50
40
 
51
41
  def self.reset
@@ -69,7 +59,7 @@ module LimesurveyRails
69
59
  []
70
60
  when /(left to send)|(No candidate tokens)$/
71
61
  result # get regular result
72
- when /Invalid session key$/
62
+ when /Invalid session key$/ # ask for a new session key
73
63
  arguments.shift
74
64
  if configuration.auto_connection and connect(true)
75
65
  self.send(method_name, *arguments, &block)
@@ -26,14 +26,20 @@ module LimesurveyRails
26
26
  end
27
27
 
28
28
  def surveys
29
- survey_participations.map(&:survey)
29
+ survey__ids.map{|id| Survey.find(id) }
30
+ end
31
+
32
+ def survey__ids
33
+ survey_participations.map(&:survey_id)
30
34
  end
31
35
 
32
36
  def available_surveys
33
- ids = surveys.map(&:id)
34
- Survey.all.delete_if{|s| ids.include? s.id }
37
+ available_survey__ids.map{|id| Survey.find(id) }
35
38
  end
36
39
 
40
+ def available_survey__ids
41
+ Survey.all_ids - survey__ids
42
+ end
37
43
  end
38
44
 
39
45
  module ClassMethods
@@ -1,3 +1,3 @@
1
1
  module LimesurveyRails
2
- VERSION = "1.5.0"
2
+ VERSION = "1.6.0"
3
3
  end
@@ -37,8 +37,8 @@ describe LimesurveyRails, :main => true do
37
37
  its(:configured?) {is_expected.to be true }
38
38
  describe 'LimesurveyRails.configuration' do
39
39
  subject { LimesurveyRails.configuration }
40
- its(:username) {should eq('rails_user_test') }
41
- its(:password) {should eq('limoncello') }
40
+ its(:username) {should eq(LIMESURVEY_USERNAME) }
41
+ its(:password) {should eq(LIMESURVEY_PASSWORD) }
42
42
  its(:base_url) {should eq(LIMESURVEY_BASE_URL) }
43
43
  end
44
44
  its(:connected?) { is_expected.to be false }
@@ -99,26 +99,31 @@ describe LimesurveyRails, :main => true do
99
99
  config.auto_connection = true
100
100
  end
101
101
  end
102
- its(:connected?) { is_expected.to be true }
102
+ its(:connected?) { is_expected.to be false }
103
103
  describe ".connected?(true)" do
104
- specify { expect(LimesurveyRails.connected?(true)).to be true }
104
+ specify { expect(LimesurveyRails.connected?(true)).to be false }
105
105
  end
106
106
  context "when it is connected" do
107
107
  before(:each) do
108
108
  LimesurveyRails.connect
109
109
  end
110
+ its(:connected?) { is_expected.to be true }
111
+ describe ".connected?(true)" do
112
+ specify { expect(LimesurveyRails.connected?(true)).to be true }
113
+ end
110
114
  context "when it's session key becomes invalid/expired" do
111
115
  before(:each) do
112
116
  LimesurveyRails.session_key = 'wrong_session_key'
113
117
  end
114
118
  its(:connected?) { is_expected.to be true }
115
119
  describe ".connected?(true)" do
116
- specify { expect(LimesurveyRails.connected?(true)).to be true }
120
+ specify { expect(LimesurveyRails.connected?(true)).to be false }
117
121
  end
118
122
  describe ".list_surveys" do
119
123
  it "returns a correct result and LimesurveyRails gets a new session_key after reconnecting" do
120
124
  expect(LimesurveyRails.list_surveys).to be_an(Array) and
121
- expect(LimesurveyRails.session_key).not_to eq('wrong_session_key')
125
+ expect(LimesurveyRails.session_key).not_to eq('wrong_session_key') and
126
+ expect(LimesurveyRails.connected?(true)).to be true
122
127
  end
123
128
  end
124
129
  end
@@ -104,7 +104,7 @@ module LimesurveyRails
104
104
  end
105
105
  end
106
106
  end
107
- describe "#surveys" do
107
+ describe "#surveys", :wip do
108
108
  before(:all) do
109
109
  @another_test_survey_id = get_brand_new_test_survey_id(:activate_tokens => true)
110
110
  @another_more_test_survey_id = get_brand_new_test_survey_id(:activate_tokens => true)
@@ -120,17 +120,40 @@ module LimesurveyRails
120
120
  expect(a_participant.surveys.size).to eq 1 and
121
121
  expect(a_participant.surveys.first).to be_kind_of(Survey)
122
122
  end
123
- context "when has added to another survey" do
124
- before(:each) { SurveyParticipation.create(:survey_id => another_test_survey.id, :participant_id => a_participant.id ) }
125
- it "returns an array with two elements" do
126
- expect(a_participant.surveys.size).to eq 2
123
+ describe "#survey__ids" do
124
+ it "returns an array with the id of the survey" do
125
+ expect(a_participant.survey__ids.size).to eq 1 and
126
+ expect(a_participant.survey__ids.first).to eq test_survey.id
127
+ end
128
+ end
129
+ describe "#available_survey__ids" do
130
+ it "returns an array with the id of the remaining surveys" do
131
+ expect(a_participant.available_survey__ids).to match_array [another_more_test_survey.id, another_test_survey.id]
127
132
  end
128
133
  end
129
134
  describe "#available_surveys" do
130
135
  it "returns an array with two elements" do
131
- expect(a_participant.available_surveys.size).to eq 2
136
+ expect(a_participant.available_surveys.map(&:id)).to match_array [another_more_test_survey.id, another_test_survey.id]
137
+ end
138
+ end
139
+ context "when has added to another survey" do
140
+ before(:each) { SurveyParticipation.create(:survey_id => another_test_survey.id, :participant_id => a_participant.id ) }
141
+ it "returns an array with two elements" do
142
+ expect(a_participant.surveys.map(&:id)).to match_array [test_survey.id, another_test_survey.id]
143
+ end
144
+ describe "#survey__ids" do
145
+ it "returns an array with the ids of the two surveys" do
146
+ expect(a_participant.survey__ids).to match_array [test_survey.id, another_test_survey.id]
147
+ end
132
148
  end
149
+ describe "#available_survey__ids" do
150
+ it "returns an array with the id of the remaining surveys" do
151
+ expect(a_participant.available_survey__ids).to match_array [another_more_test_survey.id]
152
+ end
153
+ end
154
+
133
155
  end
156
+
134
157
  end
135
158
  end
136
159
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: limesurvey_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - masciugo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-26 00:00:00.000000000 Z
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails