rhoconnect 6.0.11 → 6.2.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 +4 -4
- data/Gemfile +14 -11
- data/Gemfile.lock +120 -87
- data/Rakefile +4 -3
- data/bin/rhoconnect +0 -0
- data/bin/rhoconnect-benchmark +0 -0
- data/commands/dtach/dtach_install.rb +29 -24
- data/commands/rhoconnect/start.rb +5 -4
- data/generators/templates/application/rcgemfile +1 -1
- data/lib/rhoconnect/model/helpers/find_duplicates_on_update.rb +1 -1
- data/lib/rhoconnect/store.rb +3 -3
- data/lib/rhoconnect/version.rb +1 -1
- data/rhoconnect.gemspec +11 -11
- data/spec/api/client/get_client_params_spec.rb +4 -0
- data/spec/apps/rhotestapp/models/ruby/sample_adapter.rb +1 -1
- data/spec/client_sync_spec.rb +7 -7
- data/spec/dynamic_adapter_spec.rb +13 -13
- data/spec/generator/generator_spec.rb +7 -7
- data/spec/jobs/ping_job_spec.rb +162 -79
- data/spec/perf/perf_spec_helper.rb +5 -5
- data/spec/ping/apple_spec.rb +24 -26
- data/spec/ping/gcm_spec.rb +26 -28
- data/spec/ping/rhoconnect_push_spec.rb +13 -13
- data/spec/rhoconnect_spec.rb +2 -2
- data/spec/server/cors_spec.rb +22 -22
- data/spec/server/server_spec.rb +308 -310
- data/spec/server/stats_spec.rb +7 -7
- data/spec/server/x_domain_session_wrapper_spec.rb +40 -40
- data/spec/source_adapter_spec.rb +2 -2
- data/spec/source_sync_spec.rb +4 -4
- data/spec/spec_helper.rb +8 -8
- data/spec/stats/record_spec.rb +7 -7
- data/spec/store_orm_spec.rb +97 -94
- data/spec/store_spec.rb +23 -23
- data/spec/user_spec.rb +3 -3
- metadata +32 -26
data/spec/store_spec.rb
CHANGED
@@ -5,22 +5,22 @@ describe "Store" do
|
|
5
5
|
|
6
6
|
describe "store methods" do
|
7
7
|
it "should create proper connection class" do
|
8
|
-
Store.get_store(0).db.class.name.
|
8
|
+
expect(Store.get_store(0).db.class.name).to match(/Redis/)
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should create redis connection based on ENV" do
|
12
12
|
ENV[REDIS_URL] = 'redis://localhost:6379'
|
13
|
-
Redis.
|
13
|
+
expect(Redis).to receive(:new).with(:url => 'redis://localhost:6379', :thread_safe => true, :timeout => Rhoconnect.redis_timeout).exactly(1).times.and_call_original
|
14
14
|
Store.nullify
|
15
|
-
Store.num_stores.
|
15
|
+
expect(Store.num_stores).to eq(0)
|
16
16
|
Store.create
|
17
|
-
Store.get_store(0).db.
|
17
|
+
expect(Store.get_store(0).db).not_to be_nil
|
18
18
|
ENV.delete(REDIS_URL)
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should create redis connection based on REDISTOGO_URL ENV" do
|
22
22
|
ENV[REDISTOGO_URL] = 'redis://localhost:6379'
|
23
|
-
Redis.
|
23
|
+
expect(Redis).to receive(:new).with(:url => 'redis://localhost:6379', :thread_safe => true, :timeout => Rhoconnect.redis_timeout).exactly(1).and_call_original
|
24
24
|
Store.nullify
|
25
25
|
Store.create
|
26
26
|
Store.get_store(0).db.should_not == nil
|
@@ -75,7 +75,7 @@ describe "Store" do
|
|
75
75
|
Store.update_count('mydata', -5)
|
76
76
|
Store.get_value('mydata').to_i.should == 16
|
77
77
|
Store.delete_value('mydata')
|
78
|
-
Store.exists?('mydata').should
|
78
|
+
Store.exists?('mydata').should be false
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should delete_objects with simple data and verify that srem is called only on affected fields" do
|
@@ -288,7 +288,7 @@ describe "Store" do
|
|
288
288
|
doc = "locked_data"
|
289
289
|
lock = Time.now.to_i+3
|
290
290
|
Store.get_store(0).db.set "lock:#{doc}", lock
|
291
|
-
Store.get_store(0).
|
291
|
+
expect(Store.get_store(0)).to receive(:sleep).at_least(:once).with(1) { sleep 1; Store.release_lock(doc,lock); }
|
292
292
|
Store.get_lock(doc,4)
|
293
293
|
end
|
294
294
|
|
@@ -318,7 +318,7 @@ describe "Store" do
|
|
318
318
|
doc = "locked_data"
|
319
319
|
Rhoconnect.lock_duration = 2
|
320
320
|
Store.get_lock(doc)
|
321
|
-
Store.get_store(0).
|
321
|
+
expect(Store.get_store(0)).to receive(:sleep).at_least(1).times.with(1) { sleep 1 }
|
322
322
|
Store.get_lock(doc)
|
323
323
|
Rhoconnect.lock_duration = nil
|
324
324
|
end
|
@@ -345,8 +345,8 @@ describe "Store" do
|
|
345
345
|
|
346
346
|
it "should not fail to rename if key doesn't exist" do
|
347
347
|
Store.rename('key1','key2')
|
348
|
-
Store.exists?('key1').should
|
349
|
-
Store.exists?('key2').should
|
348
|
+
Store.exists?('key1').should be false
|
349
|
+
Store.exists?('key2').should be false
|
350
350
|
end
|
351
351
|
|
352
352
|
it "should raise ArgumentError on put_data with invalid data" do
|
@@ -366,9 +366,9 @@ describe "Store" do
|
|
366
366
|
Store.put_object(:md, key1, data1)
|
367
367
|
Store.put_object(:md, key2, data2)
|
368
368
|
Store.keys(:md).should == []
|
369
|
-
Store.exists?("#{:md}:#{docindex1}").should
|
370
|
-
Store.exists?("#{:md}:#{docindex2}").should
|
371
|
-
Store.exists?("#{:md}:indices").should
|
369
|
+
Store.exists?("#{:md}:#{docindex1}").should be true
|
370
|
+
Store.exists?("#{:md}:#{docindex2}").should be true
|
371
|
+
Store.exists?("#{:md}:indices").should be true
|
372
372
|
Store.get_store(0).db.hkeys("#{:md}:indices").should == ["#{docindex1}", "#{docindex2}"]
|
373
373
|
Store.get_store(0).db.hvals("#{:md}:indices").should == ["#{:md}:#{docindex1}", "#{:md}:#{docindex2}"]
|
374
374
|
end
|
@@ -396,20 +396,20 @@ describe "Store" do
|
|
396
396
|
Store.put_tmp_data(:md, {key1 => data1})
|
397
397
|
Store.put_tmp_data(:md, {key2 => data2}, true)
|
398
398
|
|
399
|
-
Store.exists?("#{:md}:#{docindex1}").should
|
400
|
-
Store.exists?("#{:md}:#{docindex2}").should
|
401
|
-
Store.exists?("#{:md}:indices").should
|
399
|
+
Store.exists?("#{:md}:#{docindex1}").should be true
|
400
|
+
Store.exists?("#{:md}:#{docindex2}").should be true
|
401
|
+
Store.exists?("#{:md}:indices").should be true
|
402
402
|
Store.get_store(0).db.ttl("#{:md}:#{docindex1}").should == Rhoconnect.store_key_ttl
|
403
403
|
Store.get_store(0).db.ttl("#{:md}:#{docindex2}").should == Rhoconnect.store_key_ttl
|
404
404
|
Store.get_store(0).db.ttl("#{:md}:indices").should == Rhoconnect.store_key_ttl
|
405
405
|
|
406
406
|
Store.rename_tmp_data(:md, :md_perm)
|
407
|
-
Store.exists?("#{:md}:#{docindex1}").should
|
408
|
-
Store.exists?("#{:md}:#{docindex2}").should
|
409
|
-
Store.exists?("#{:md}:indices").should
|
410
|
-
Store.exists?("#{:md_perm}:#{docindex1}").should
|
411
|
-
Store.exists?("#{:md_perm}:#{docindex2}").should
|
412
|
-
Store.exists?("#{:md_perm}:indices").should
|
407
|
+
Store.exists?("#{:md}:#{docindex1}").should be false
|
408
|
+
Store.exists?("#{:md}:#{docindex2}").should be false
|
409
|
+
Store.exists?("#{:md}:indices").should be false
|
410
|
+
Store.exists?("#{:md_perm}:#{docindex1}").should be true
|
411
|
+
Store.exists?("#{:md_perm}:#{docindex2}").should be true
|
412
|
+
Store.exists?("#{:md_perm}:indices").should be true
|
413
413
|
Store.get_store(0).db.ttl("#{:md_perm}:#{docindex1}").should == -1
|
414
414
|
Store.get_store(0).db.ttl("#{:md_perm}:#{docindex2}").should == -1
|
415
415
|
Store.get_store(0).db.ttl("#{:md_perm}:indices").should == -1
|
@@ -473,4 +473,4 @@ describe "Store" do
|
|
473
473
|
end
|
474
474
|
end
|
475
475
|
end
|
476
|
-
end
|
476
|
+
end
|
data/spec/user_spec.rb
CHANGED
@@ -90,8 +90,8 @@ describe "User" do
|
|
90
90
|
|
91
91
|
describe "User Stats" do
|
92
92
|
|
93
|
-
before(:
|
94
|
-
Store.
|
93
|
+
before(:each) do
|
94
|
+
allow(Store).to receive(:lock).and_yield
|
95
95
|
end
|
96
96
|
|
97
97
|
it "should increment user stats on create" do
|
@@ -114,4 +114,4 @@ describe "User" do
|
|
114
114
|
Rhoconnect.stats = false
|
115
115
|
end
|
116
116
|
end
|
117
|
-
end
|
117
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhoconnect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0
|
4
|
+
version: 6.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rhomobile
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,154 +16,160 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.17.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.17.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sinatra
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.0.5
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 2.0.5
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 12.3.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 12.3.2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: json
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.8'
|
76
|
+
- - "<"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '2.0'
|
76
79
|
type: :runtime
|
77
80
|
prerelease: false
|
78
81
|
version_requirements: !ruby/object:Gem::Requirement
|
79
82
|
requirements:
|
80
|
-
- - "
|
83
|
+
- - ">="
|
81
84
|
- !ruby/object:Gem::Version
|
82
85
|
version: '1.8'
|
86
|
+
- - "<"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '2.0'
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: rubyzip
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
95
|
+
version: 1.2.2
|
90
96
|
type: :runtime
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
102
|
+
version: 1.2.2
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: connection_pool
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
107
|
- - "~>"
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
109
|
+
version: 2.2.2
|
104
110
|
type: :runtime
|
105
111
|
prerelease: false
|
106
112
|
version_requirements: !ruby/object:Gem::Requirement
|
107
113
|
requirements:
|
108
114
|
- - "~>"
|
109
115
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
116
|
+
version: 2.2.2
|
111
117
|
- !ruby/object:Gem::Dependency
|
112
118
|
name: redis
|
113
119
|
requirement: !ruby/object:Gem::Requirement
|
114
120
|
requirements:
|
115
|
-
- - "
|
121
|
+
- - "~>"
|
116
122
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
123
|
+
version: 4.1.0
|
118
124
|
type: :runtime
|
119
125
|
prerelease: false
|
120
126
|
version_requirements: !ruby/object:Gem::Requirement
|
121
127
|
requirements:
|
122
|
-
- - "
|
128
|
+
- - "~>"
|
123
129
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
130
|
+
version: 4.1.0
|
125
131
|
- !ruby/object:Gem::Dependency
|
126
132
|
name: resque
|
127
133
|
requirement: !ruby/object:Gem::Requirement
|
128
134
|
requirements:
|
129
135
|
- - ">="
|
130
136
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
137
|
+
version: 2.0.0
|
132
138
|
type: :runtime
|
133
139
|
prerelease: false
|
134
140
|
version_requirements: !ruby/object:Gem::Requirement
|
135
141
|
requirements:
|
136
142
|
- - ">="
|
137
143
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
144
|
+
version: 2.0.0
|
139
145
|
- !ruby/object:Gem::Dependency
|
140
146
|
name: rest-client
|
141
147
|
requirement: !ruby/object:Gem::Requirement
|
142
148
|
requirements:
|
143
149
|
- - "~>"
|
144
150
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
151
|
+
version: 2.0.2
|
146
152
|
type: :runtime
|
147
153
|
prerelease: false
|
148
154
|
version_requirements: !ruby/object:Gem::Requirement
|
149
155
|
requirements:
|
150
156
|
- - "~>"
|
151
157
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
158
|
+
version: 2.0.2
|
153
159
|
- !ruby/object:Gem::Dependency
|
154
160
|
name: thor
|
155
161
|
requirement: !ruby/object:Gem::Requirement
|
156
162
|
requirements:
|
157
163
|
- - "~>"
|
158
164
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
165
|
+
version: 0.20.3
|
160
166
|
type: :runtime
|
161
167
|
prerelease: false
|
162
168
|
version_requirements: !ruby/object:Gem::Requirement
|
163
169
|
requirements:
|
164
170
|
- - "~>"
|
165
171
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
172
|
+
version: 0.20.3
|
167
173
|
description: RhoConnect App Integration Server and related command-line utilities
|
168
174
|
email: dev@rhomobile.com
|
169
175
|
executables:
|