limesurvey_rails 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 14c99341c8f4c868c734bd7043ad3897d7fd7bfc
4
- data.tar.gz: 2559f6e70b729d2326cd825d2a6b7eb3b99ecb49
3
+ metadata.gz: deff9a2b87f3e6c2db940dfdc50d7f3ee62f4835
4
+ data.tar.gz: 2476918b2c7cd4ed825ef009d2dcd4a11edc33c9
5
5
  SHA512:
6
- metadata.gz: 22040e09763a05d23ae34fabd433f6d9d0c8adafb4242d32f5f4179f0a3b1f4f3d48937895440422c56e98949bdfa0e10c1331e87d757747c2c41fbc0ff87c77
7
- data.tar.gz: 8461ed0bae5619ca2d5dbb382349126beb295f2805fefca9ebd874f1d02eb8a65b572bb3edb9d886cda70c1a853fd610b31ce00c80d2e1b7dc14ef580a3ec91b
6
+ metadata.gz: db6011cb81ac60051295041e94899abcb83ae35b6bec659b772c3731cd57ea23aebde8350068a95e6ed729c7852117670853b801e409cfadb63f814f363c5d3c
7
+ data.tar.gz: d53d732dbb60484f875b5505eb68aee5308eb43680fa6025f3a17eada77dd84121386035eb1ba6eefe246c202b9805dbc771703d5138558dcebcccf2fbc2ed92
@@ -28,12 +28,16 @@ module LimesurveyRails
28
28
  end
29
29
  end
30
30
 
31
- def self.connected?
31
+ def self.connected?(verify = false)
32
32
  begin
33
33
  raise unless configured?
34
34
  raise unless session_key.present?
35
- check_result = api.list_surveys(session_key)
36
- raise unless check_result.is_a? Array or check_result['status'] == 'No surveys found'
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
+
37
41
  true
38
42
  rescue Exception => e
39
43
  if configuration.try(:auto_connection)
@@ -51,7 +55,7 @@ module LimesurveyRails
51
55
 
52
56
  def self.method_missing(method_name, *arguments, &block)
53
57
  if API_METHODS.include? method_name.to_s
54
- if api # was: if connected? which is more costly
58
+ if connected?
55
59
  # t0=Time.now
56
60
  result = api.send(method_name, *arguments.unshift(session_key))
57
61
  # puts "#{method_name} in #{Time.now-t0}"
@@ -65,6 +69,13 @@ module LimesurveyRails
65
69
  []
66
70
  when /(left to send)|(No candidate tokens)$/
67
71
  result # get regular result
72
+ when /Invalid session key$/
73
+ arguments.shift
74
+ if configuration.auto_connection and connect(true)
75
+ self.send(method_name, *arguments, &block)
76
+ else
77
+ raise RemoteControlError, 'you are disconnected from Limesurvey: Invalid session key'
78
+ end
68
79
  else
69
80
  raise RemoteControlError, "#{method_name} returned a failure response status: #{result["status"]}"
70
81
  end
@@ -1,3 +1,3 @@
1
1
  module LimesurveyRails
2
- VERSION = "1.4.0"
2
+ VERSION = "1.5.0"
3
3
  end
@@ -80,6 +80,18 @@ describe LimesurveyRails, :main => true do
80
80
  describe ".wrong_name_method" do
81
81
  specify { expect { LimesurveyRails.wrong_name_method }.to raise_error }
82
82
  end
83
+ context "when it's session key becomes invalid/expired" do
84
+ before(:each) do
85
+ LimesurveyRails.session_key = 'wrong_session_key'
86
+ end
87
+ its(:connected?) { is_expected.to be true }
88
+ describe ".connected?(true)" do
89
+ specify { expect(LimesurveyRails.connected?(true)).to be false }
90
+ end
91
+ it "raise RemoteControlError claiming Invalid session key" do
92
+ expect { LimesurveyRails.list_surveys }.to raise_error(LimesurveyRails::RemoteControlError, /Invalid session key$/)
93
+ end
94
+ end
83
95
  end
84
96
  context "when it's configurated with continuous connection" do
85
97
  before(:each) do
@@ -88,6 +100,29 @@ describe LimesurveyRails, :main => true do
88
100
  end
89
101
  end
90
102
  its(:connected?) { is_expected.to be true }
103
+ describe ".connected?(true)" do
104
+ specify { expect(LimesurveyRails.connected?(true)).to be true }
105
+ end
106
+ context "when it is connected" do
107
+ before(:each) do
108
+ LimesurveyRails.connect
109
+ end
110
+ context "when it's session key becomes invalid/expired" do
111
+ before(:each) do
112
+ LimesurveyRails.session_key = 'wrong_session_key'
113
+ end
114
+ its(:connected?) { is_expected.to be true }
115
+ describe ".connected?(true)" do
116
+ specify { expect(LimesurveyRails.connected?(true)).to be true }
117
+ end
118
+ describe ".list_surveys" do
119
+ it "returns a correct result and LimesurveyRails gets a new session_key after reconnecting" do
120
+ expect(LimesurveyRails.list_surveys).to be_an(Array) and
121
+ expect(LimesurveyRails.session_key).not_to eq('wrong_session_key')
122
+ end
123
+ end
124
+ end
125
+ end
91
126
  end
92
127
  end
93
128
 
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.4.0
4
+ version: 1.5.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-23 00:00:00.000000000 Z
11
+ date: 2015-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails