seapig-rails 0.0.7 → 0.1.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: 42061dcf4ac1f6917849a446a9c7c172d32410ab
4
- data.tar.gz: 9e4b9e713cfe8beb6c219b488bb561df4e8a0af2
3
+ metadata.gz: 5d6f5e647751d27bf07533c2319f678b1b045d74
4
+ data.tar.gz: ea105ac562cbc3d5b783d2f58bdb7ae20c1fc989
5
5
  SHA512:
6
- metadata.gz: 00424c408f4db3d6a4ff1b9e609b70bc44518578013ac1af18cb363439f1462621b67f7e6527536e7ded8314dd40ce6fc4b4bc6231fddf2910e6d5db6113a6b7
7
- data.tar.gz: b905c978f13c69f34395b5b80dca458a59424140370f54c57866f911a9bc9f95518fa72a2427b23e5a10e14d6c217c7726ea71a6209eab563b8151f69223c591
6
+ metadata.gz: ed0c1ef77405cb7946ad1fabe77c91636508c7b6c4cd2d01f440b4239028a4254b23190718cb755c8a384b7eabef56db1bbf730267c632c70ae870f46e92c3fd
7
+ data.tar.gz: 6c2dd492ec10cc68f48d728848983be87d5b181b6a6b9909daef40ceeb282690bb699252ecbe5a1ee52b127e775db4c46cc7af79318d02e811c3c9a9436cc082
@@ -80,11 +80,15 @@ class SeapigObject
80
80
 
81
81
 
82
82
  patch: (data) ->
83
- if data.old_version == 0
83
+ if data.old_version == 0 or data.value?
84
84
  delete @object[key] for key, value of @object
85
85
  else if not _.isEqual(@version, data.old_version)
86
86
  console.log("Seapig lost some updates, this shouldn't ever happen. object:",@id," version:", @version, " old_version:", data.old_version)
87
- jsonpatch.apply(@object, data.patch)
87
+ if data.value?
88
+ for key,value of data.value
89
+ @object[key] = value
90
+ else
91
+ jsonpatch.apply(@object, data.patch)
88
92
  @version = data.new_version
89
93
  @valid = true
90
94
  @onchange() if @onchange?
@@ -2,57 +2,58 @@
2
2
 
3
3
  require './config/environment.rb'
4
4
 
5
- require 'websocket-eventmachine-client'
6
- require 'json'
5
+ require 'seapig-client'
7
6
 
8
7
 
8
+ STDOUT.sync = true
9
9
  #ActiveRecord::Base.logger = Logger.new(STDERR)
10
10
 
11
+
11
12
  EM.run {
12
13
 
13
- socket = WebSocket::EventMachine::Client.connect(uri: ARGV[0])
14
- connected = false
15
-
14
+ server = SeapigServer.new(ARGV[0], name: 'notifier')
15
+ seapigs = Hash.new { |h,k| h[k] = server.notifier(k) }
16
+
16
17
  on_database_change = Proc.new {
17
- next if not connected
18
+ next if not server.connected
18
19
  SeapigDependency.where("current_version != reported_version").each { |seapig_dependency|
19
20
  puts "Dependency version changed: %30s:%-10s"%[seapig_dependency.name,seapig_dependency.current_version]
20
- socket.send(JSON.dump(action: 'object-patch', id: seapig_dependency.name, new_version: seapig_dependency.current_version, old_version: 0))
21
+ seapigs[seapig_dependency.name].changed(seapig_dependency.current_version)
21
22
  seapig_dependency.reported_version = seapig_dependency.current_version
22
23
  seapig_dependency.save!
23
24
  }
24
25
  }
25
26
 
26
-
27
- socket.onopen {
28
- socket.send(JSON.dump(action: 'client-options-set', options: {name: 'notifier'}))
29
- Thread.new {
27
+ Thread.new {
28
+ begin
30
29
  ActiveRecord::Base.connection_pool.with_connection { |connection|
31
30
  connection = connection.instance_variable_get(:@connection)
32
31
  connection.exec("LISTEN seapig_dependency_changed")
33
32
  loop {
34
33
  connection.wait_for_notify { |channel, pid, payloads|
35
- #puts "Got notification: channel="+channel+", pid="+pid.inspect+", payload="+payloads.inspect
36
34
  EM.schedule(on_database_change)
37
35
  }
38
36
  }
39
37
  }
40
- }
41
- connected = true
42
- EM.schedule on_database_change
43
- }
44
-
45
-
46
- socket.onclose { |code, reason|
47
- EM.stop
38
+ rescue Exception => e
39
+ puts "Exception in database thread"
40
+ p e
41
+ EM.schedule {
42
+ server.disconnect
43
+ EM.stop
44
+ }
45
+ end
48
46
  }
49
47
 
50
48
 
51
49
  (ARGV[1] or "").split(',').each { |interval|
52
50
  EM.add_periodic_timer(interval.to_i) {
53
- socket.send(JSON.dump(action: 'object-patch', id: 'Seconds#'+interval, new_version: Time.new.to_i/interval.to_i, old_version: 0))
51
+ seapigs['Seconds#'+interval].changed(Time.new.to_i/interval.to_i)
54
52
  }
55
53
  }
54
+
55
+ EM.schedule on_database_change
56
+
56
57
  }
57
58
 
58
-
59
+
@@ -1,3 +1,3 @@
1
1
  module Seapig
2
- VERSION = "0.0.7"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seapig-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yunta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-13 00:00:00.000000000 Z
11
+ date: 2016-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -25,53 +25,25 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.2.4
27
27
  - !ruby/object:Gem::Dependency
28
- name: websocket-eventmachine-client
28
+ name: seapig-client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: jsondiff
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: hana
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
31
+ - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: '0'
33
+ version: 0.1.0
62
34
  type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
- - - ">="
38
+ - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: '0'
40
+ version: 0.1.0
69
41
  description: meh
70
42
  email:
71
43
  - maciej.blomberg@mikoton.com
72
44
  executables:
73
- - seapig-notifier
74
- - seapig-session-saver
45
+ - seapig-rails-notifier
46
+ - seapig-rails-session-saver
75
47
  extensions: []
76
48
  extra_rdoc_files: []
77
49
  files:
@@ -84,8 +56,8 @@ files:
84
56
  - app/models/seapig_dependency.rb
85
57
  - app/models/seapig_router_session.rb
86
58
  - app/models/seapig_router_session_state.rb
87
- - bin/seapig-notifier
88
- - bin/seapig-session-saver
59
+ - bin/seapig-rails-notifier
60
+ - bin/seapig-rails-session-saver
89
61
  - config/routes.rb
90
62
  - db/migrate/20151221110834_create_seapig_router_sessions.rb
91
63
  - db/migrate/20151221111628_create_seapig_router_session_states.rb
@@ -207,99 +179,99 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
179
  version: '0'
208
180
  requirements: []
209
181
  rubyforge_project:
210
- rubygems_version: 2.4.8
182
+ rubygems_version: 2.5.1
211
183
  signing_key:
212
184
  specification_version: 4
213
185
  summary: Transient object synchronization lib - rails
214
186
  test_files:
215
- - test/integration/navigation_test.rb
187
+ - test/seapig_test.rb
216
188
  - test/dummy/config.ru
189
+ - test/dummy/bin/rake
190
+ - test/dummy/bin/setup
191
+ - test/dummy/bin/rails
192
+ - test/dummy/bin/bundle
217
193
  - test/dummy/lib/seapigs/random.rb
194
+ - test/dummy/app/controllers/application_controller.rb
195
+ - test/dummy/app/assets/stylesheets/application.css
218
196
  - test/dummy/app/assets/javascripts/json-patch.js
219
197
  - test/dummy/app/assets/javascripts/application.js
220
- - test/dummy/app/assets/stylesheets/application.css
221
198
  - test/dummy/app/helpers/application_helper.rb
222
- - test/dummy/app/controllers/application_controller.rb
223
- - test/dummy/app/views/layouts/application.html.erb
224
199
  - test/dummy/app/views/application/index.html.slim
200
+ - test/dummy/app/views/layouts/application.html.erb
201
+ - test/dummy/log/development.log
202
+ - test/dummy/public/500.html
203
+ - test/dummy/public/404.html
204
+ - test/dummy/public/favicon.ico
205
+ - test/dummy/public/422.html
206
+ - test/dummy/Rakefile
207
+ - test/dummy/config/database.yml
208
+ - test/dummy/config/environments/production.rb
209
+ - test/dummy/config/environments/development.rb
210
+ - test/dummy/config/environments/test.rb
211
+ - test/dummy/config/environment.rb
212
+ - test/dummy/config/application.rb
213
+ - test/dummy/config/secrets.yml
214
+ - test/dummy/config/locales/en.yml
215
+ - test/dummy/config/routes.rb
216
+ - test/dummy/config/initializers/mime_types.rb
217
+ - test/dummy/config/initializers/session_store.rb
218
+ - test/dummy/config/initializers/assets.rb
219
+ - test/dummy/config/initializers/wrap_parameters.rb
220
+ - test/dummy/config/initializers/cookies_serializer.rb
221
+ - test/dummy/config/initializers/inflections.rb
222
+ - test/dummy/config/initializers/backtrace_silencers.rb
223
+ - test/dummy/config/initializers/filter_parameter_logging.rb
224
+ - test/dummy/config/boot.rb
225
225
  - test/dummy/README.rdoc
226
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/j4VcbkSejSElTiJk3ehlEcJE9HRTG7T14-wVhUDocaA.cache
227
226
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/9Kel6H2jL5qJlsGHIcYRbxGaV-rMj_teA3CD1eaUVmk.cache
228
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/sX4-Kn9knBu7plHg7gUT-ryVktGvmZfacNm1cUysjWs.cache
229
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/9T1WawqT-S8RLLgLI4J-o5mcGyy-wwU2mYMBwTuTl4o.cache
230
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/_mxi_K1gl7n32DYq8bFfbWrIRQrU3QQiuukc63_UBb4.cache
231
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/beCZt_nFEyk5iX6v4bgC3qrdFMgSM0IgrwxaBTFEFA0.cache
232
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/Lgka3bEq-I8Y6xz-LVIYNVeNIWkmW1NKDnOHOkYcxtE.cache
233
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/98GLSy3KoIvHccw_zbxLg3FpmPEUKmGUr5oL7YZmvOU.cache
234
227
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/BXgyeZH3I-u535wy4F0jP3wmfV8m8WIWtXqHJKdBC2Q.cache
235
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/X5QxTUYFP4VOH_7p2Qh34msJtFA6fOnJ0mM7Zip7dRU.cache
236
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/66l7LMqenzmlIoboeeCMFEZ6J_6zFdXmqNs-gu79P94.cache
237
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/h2XCtwcdt21JcAtjhfoOuIjifaMeMaYwPcFGnmNc2ng.cache
228
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/PgVoTat4a0VNolKPJS5RtDX7XcbAGbsqhquIWgWBBWE.cache
229
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/9T1WawqT-S8RLLgLI4J-o5mcGyy-wwU2mYMBwTuTl4o.cache
230
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/vn6FA8BrDkisPSH4VFlc7tgmkzpx1DsOtDp5C3cdaRU.cache
231
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/3eEw6ayC9zVKEVm7sgtqdiFFsi-0w4VyeWxR-hk72xg.cache
232
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/sX4-Kn9knBu7plHg7gUT-ryVktGvmZfacNm1cUysjWs.cache
233
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/ETKdv5blZ86XWjAQcmxAQq2wK6RT9QvGqd7uV7DK1Iw.cache
238
234
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/VqL7bJxBiq13xYePLO71Spa6RfD5dFCeRRLGYb5jEqw.cache
239
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/KS-8mb2c29Zj9YWoyTAojF-sqg-aKMYQr6FkxGuoBWQ.cache
235
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
236
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/z9KVC85iQuroh2hLYTGZhgZHDlh7183qTlfed3Uhtnw.cache
237
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/j3q-1jQzykD1sMeX9INl7jygCKtC0XJ8JkWkFQkL6qg.cache
238
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/X5QxTUYFP4VOH_7p2Qh34msJtFA6fOnJ0mM7Zip7dRU.cache
240
239
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/-o-ZYYvENmbyGnbDFt6qAW7obI2QzsO9rM9EA7XlUHg.cache
241
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/Tq5PhgpHymowY-e-a3airP7Q2OwxNuNC0792hdlAJRc.cache
242
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/bkclf1HVUxdntd8cKLvWGX5Pq-E12kwCwakqLo8RoN4.cache
243
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/zxZcbwt4p6Q1Z7yZfuWYKTXjetmNZI8MgkKazd4PjoA.cache
240
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/KS-8mb2c29Zj9YWoyTAojF-sqg-aKMYQr6FkxGuoBWQ.cache
241
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/umxcUEQeoCOqF0ZwXlNqJEOyT_vhMK8iGO4--jduIDU.cache
242
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/66l7LMqenzmlIoboeeCMFEZ6J_6zFdXmqNs-gu79P94.cache
243
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/VegRto_fFjOSBWQRgNRnnOiV3yByrpUI9b5IEhRvrDI.cache
244
244
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/_2P0GKBCbJ61e8RdTBx4rJr8TsUYKFJYd7N0ZhA7o6k.cache
245
245
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/6vXjezhMg67rV3BDCPOxLeOVbgCHn0aDwBXCA-N7_To.cache
246
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/jU_8gMY9eZiN785s1lakKFjnK5ox1EA-Na1fKxuYcjs.cache
247
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/a1-5JrPXbtVr0ytoeAR0GzDsG_rlYUHm_sKEC1VHrrM.cache
248
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/urzLHu3R3qKeFqygSDL0NVDcyw8BFEA6i9jFeweVZQ4.cache
249
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/aShHx921rUO4rZzH4135LWkt4TSWfqhpQMN8JsV2OqE.cache
246
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/csrXH9BNqM8JCRjroMFCt2hluEvIvM0neY_ZQySl58A.cache
247
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/vCljKmhe1Sy9j9TDIB9DrQRa8dYlkPg8nyvsZfqfCmw.cache
248
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/fsxRcZUqoELh6-D0RWowwDKHYmUkGzh5HMFuwMMWk1g.cache
250
249
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/wtuO4JuGsyO8emVQL7t1bm1fvl6YzGfBHc3tJJ49uvs.cache
250
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/zxZcbwt4p6Q1Z7yZfuWYKTXjetmNZI8MgkKazd4PjoA.cache
251
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/a1-5JrPXbtVr0ytoeAR0GzDsG_rlYUHm_sKEC1VHrrM.cache
252
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
253
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/Lgka3bEq-I8Y6xz-LVIYNVeNIWkmW1NKDnOHOkYcxtE.cache
254
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/h2XCtwcdt21JcAtjhfoOuIjifaMeMaYwPcFGnmNc2ng.cache
255
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/BsW5E247kS632hUZ5-NHcjkfprM3AwsB8dksndomUAY.cache
256
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/b9Ac87wpHRTGZL-mBacNdb343KQ1426WdjSu03OVlz8.cache
257
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/beCZt_nFEyk5iX6v4bgC3qrdFMgSM0IgrwxaBTFEFA0.cache
251
258
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/HCc1doOYzZaBpAX7ozNMpo1ErZFli_aaKFQ73oRipH0.cache
252
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/Duqe6Cf2ThStcjIWL29RZnPilo1v6Vi7p86VOEBKqCs.cache
253
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/j3q-1jQzykD1sMeX9INl7jygCKtC0XJ8JkWkFQkL6qg.cache
254
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/fsxRcZUqoELh6-D0RWowwDKHYmUkGzh5HMFuwMMWk1g.cache
255
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/3eEw6ayC9zVKEVm7sgtqdiFFsi-0w4VyeWxR-hk72xg.cache
259
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/98GLSy3KoIvHccw_zbxLg3FpmPEUKmGUr5oL7YZmvOU.cache
260
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
261
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/Tq5PhgpHymowY-e-a3airP7Q2OwxNuNC0792hdlAJRc.cache
262
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/urzLHu3R3qKeFqygSDL0NVDcyw8BFEA6i9jFeweVZQ4.cache
256
263
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/1PVg-zJVu7--eXgp92_OEGf9YMjumXrwhnEbNQdV4h8.cache
257
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/PgVoTat4a0VNolKPJS5RtDX7XcbAGbsqhquIWgWBBWE.cache
258
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/VegRto_fFjOSBWQRgNRnnOiV3yByrpUI9b5IEhRvrDI.cache
259
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/umxcUEQeoCOqF0ZwXlNqJEOyT_vhMK8iGO4--jduIDU.cache
260
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
261
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/vCljKmhe1Sy9j9TDIB9DrQRa8dYlkPg8nyvsZfqfCmw.cache
262
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/2R9FCEwuVplMI7I5GoTBtw2Er_ap6H5s2otDK-m5XCk.cache
263
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/q3UrpsuPTq0hMrkTWoYoYEZL4u05PdVc4L5NXKuFDgQ.cache
264
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/BsW5E247kS632hUZ5-NHcjkfprM3AwsB8dksndomUAY.cache
264
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/CW1ly2CbYhIQ3PoOCrGTUOxS8a03kI-4spp4REHx6mc.cache
265
265
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/znvRewDLwMSRAUjlQozzMBQ_IGWvw9fVVOh9aeaXxTA.cache
266
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/z9KVC85iQuroh2hLYTGZhgZHDlh7183qTlfed3Uhtnw.cache
267
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/b9Ac87wpHRTGZL-mBacNdb343KQ1426WdjSu03OVlz8.cache
266
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/q3UrpsuPTq0hMrkTWoYoYEZL4u05PdVc4L5NXKuFDgQ.cache
268
267
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/7SWrjVR_xhTD9BCS4ifXzZIDn6dp3guSJjF8v5pYDRc.cache
269
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/vn6FA8BrDkisPSH4VFlc7tgmkzpx1DsOtDp5C3cdaRU.cache
268
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/j4VcbkSejSElTiJk3ehlEcJE9HRTG7T14-wVhUDocaA.cache
269
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/2R9FCEwuVplMI7I5GoTBtw2Er_ap6H5s2otDK-m5XCk.cache
270
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/aShHx921rUO4rZzH4135LWkt4TSWfqhpQMN8JsV2OqE.cache
271
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/bkclf1HVUxdntd8cKLvWGX5Pq-E12kwCwakqLo8RoN4.cache
272
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/Duqe6Cf2ThStcjIWL29RZnPilo1v6Vi7p86VOEBKqCs.cache
273
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/jU_8gMY9eZiN785s1lakKFjnK5ox1EA-Na1fKxuYcjs.cache
274
+ - test/dummy/tmp/cache/assets/development/sprockets/v3.0/_mxi_K1gl7n32DYq8bFfbWrIRQrU3QQiuukc63_UBb4.cache
270
275
  - test/dummy/tmp/cache/assets/development/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
271
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
272
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/ETKdv5blZ86XWjAQcmxAQq2wK6RT9QvGqd7uV7DK1Iw.cache
273
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/CW1ly2CbYhIQ3PoOCrGTUOxS8a03kI-4spp4REHx6mc.cache
274
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
275
- - test/dummy/tmp/cache/assets/development/sprockets/v3.0/csrXH9BNqM8JCRjroMFCt2hluEvIvM0neY_ZQySl58A.cache
276
- - test/dummy/config/environments/production.rb
277
- - test/dummy/config/environments/development.rb
278
- - test/dummy/config/environments/test.rb
279
- - test/dummy/config/initializers/wrap_parameters.rb
280
- - test/dummy/config/initializers/backtrace_silencers.rb
281
- - test/dummy/config/initializers/cookies_serializer.rb
282
- - test/dummy/config/initializers/inflections.rb
283
- - test/dummy/config/initializers/filter_parameter_logging.rb
284
- - test/dummy/config/initializers/session_store.rb
285
- - test/dummy/config/initializers/assets.rb
286
- - test/dummy/config/initializers/mime_types.rb
287
- - test/dummy/config/secrets.yml
288
- - test/dummy/config/routes.rb
289
- - test/dummy/config/environment.rb
290
- - test/dummy/config/boot.rb
291
- - test/dummy/config/database.yml
292
- - test/dummy/config/application.rb
293
- - test/dummy/config/locales/en.yml
294
- - test/dummy/bin/rake
295
- - test/dummy/bin/setup
296
- - test/dummy/bin/bundle
297
- - test/dummy/bin/rails
298
- - test/dummy/Rakefile
299
- - test/dummy/log/development.log
300
- - test/dummy/public/500.html
301
- - test/dummy/public/favicon.ico
302
- - test/dummy/public/422.html
303
- - test/dummy/public/404.html
276
+ - test/integration/navigation_test.rb
304
277
  - test/test_helper.rb
305
- - test/seapig_test.rb