hyper-mesh 0.5.3 → 0.5.4

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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/Gemfile +7 -2
  4. data/README.md +112 -87
  5. data/Rakefile +6 -1
  6. data/docs/action_cable_quickstart.md +20 -16
  7. data/docs/activerecord_api.md +23 -17
  8. data/docs/authorization-policies.md +45 -35
  9. data/docs/client_side_scoping.md +5 -5
  10. data/docs/configuration_details.md +6 -46
  11. data/docs/pusher_faker_quickstart.md +7 -68
  12. data/docs/pusher_quickstart.md +7 -68
  13. data/docs/simple_poller_quickstart.md +6 -67
  14. data/docs/todo-example.md +2 -2
  15. data/docs/word_game.md +3 -1
  16. data/docs/words-example.md +2 -3
  17. data/examples/action-cable/Gemfile +2 -1
  18. data/examples/action-cable/Gemfile.lock +73 -54
  19. data/examples/action-cable/config/initializers/{hyper_mesh.rb → hyperloop.rb} +1 -1
  20. data/examples/action-cable/config/routes.rb +1 -1
  21. data/hyper-mesh.gemspec +10 -4
  22. data/lib/active_record_base.rb +3 -3
  23. data/{examples/action-cable-production-mode/log/.keep → lib/acts_as_string.rb} +0 -0
  24. data/lib/hyper-mesh.rb +11 -19
  25. data/lib/hyper_mesh/version.rb +3 -0
  26. data/lib/hypermesh/version.rb +1 -1
  27. data/lib/reactive_record/active_record/class_methods.rb +10 -3
  28. data/lib/reactive_record/active_record/instance_methods.rb +8 -0
  29. data/lib/reactive_record/active_record/public_columns_hash.rb +8 -2
  30. data/lib/reactive_record/active_record/reactive_record/collection.rb +0 -1
  31. data/lib/reactive_record/active_record/reactive_record/dummy_value.rb +2 -1
  32. data/lib/reactive_record/active_record/reactive_record/isomorphic_base.rb +55 -63
  33. data/lib/reactive_record/active_record/reactive_record/operations.rb +51 -0
  34. data/lib/reactive_record/active_record/reactive_record/reactive_set_relationship_helpers.rb +3 -3
  35. data/lib/reactive_record/active_record/reactive_record/while_loading.rb +93 -84
  36. data/lib/reactive_record/broadcast.rb +183 -0
  37. data/lib/reactive_record/permissions.rb +2 -2
  38. data/reactive_record_test_app/Gemfile +6 -2
  39. data/reactive_record_test_app/Gemfile.lock +120 -60
  40. data/reactive_record_test_app/app/assets/javascripts/application.rb +3 -5
  41. data/reactive_record_test_app/app/assets/javascripts/bigdecimal.rb +1 -0
  42. data/reactive_record_test_app/app/assets/javascripts/reactive_record_config.js +2 -2
  43. data/reactive_record_test_app/app/controllers/application_controller.rb +3 -3
  44. data/reactive_record_test_app/app/controllers/home_controller.rb +1 -1
  45. data/reactive_record_test_app/app/models/models.rb.erb +6 -0
  46. data/reactive_record_test_app/config/application.rb +2 -0
  47. data/reactive_record_test_app/config/environments/development.rb +1 -1
  48. data/reactive_record_test_app/config/routes.rb +1 -2
  49. data/reactive_record_test_app/db/seeds.rb +6 -0
  50. data/reactive_record_test_app/script/rails +0 -0
  51. data/reactive_record_test_app/spec-opal/active-record/rendering_spec.rb +11 -2
  52. data/reactive_record_test_app/spec-opal/active-record/save_spec.rb +3 -4
  53. data/reactive_record_test_app/spec-opal/spec_helper.js.rb +1 -1
  54. data/reactive_record_test_app/spec-opal/test_spec.rb +7 -0
  55. data/reactive_record_test_app/spec_dont_run/README.md +7 -0
  56. data/reactive_record_test_app/{spec-opal/active-record → spec_dont_run/active_record_broken}/permissions_spec.rb +0 -0
  57. data/reactive_record_test_app/{spec-opal/active-record → spec_dont_run/active_record_broken}/prerendering_spec.rb +1 -0
  58. data/spec/{synchromesh/aaa-unit_tests/connection_spec.rb → batch1/aaa-unit_tests/connection_movedspec.rb} +0 -0
  59. data/spec/{synchromesh → batch1}/aaa-unit_tests/dummy_value_spec.rb +2 -2
  60. data/spec/{synchromesh → batch1}/column_types/column_type_spec.rb +2 -2
  61. data/spec/{synchromesh → batch1}/crud_access_regulation/broadcast_controls_access_spec.rb +1 -1
  62. data/spec/{synchromesh → batch1}/crud_access_regulation/model_policies_spec.rb +6 -6
  63. data/spec/batch1/misc/access_like_hash_spec.rb +43 -0
  64. data/spec/batch1/misc/while_loading_spec.rb +196 -0
  65. data/spec/{synchromesh → batch1}/policies/regulate_all_broadcasts_spec.rb +12 -12
  66. data/spec/{synchromesh → batch1}/policies/regulate_broadcast_spec.rb +25 -25
  67. data/spec/{synchromesh/integration → batch2}/authorization_spec.rb +8 -7
  68. data/spec/{synchromesh/integration → batch2}/default_scope_spec.rb +2 -2
  69. data/spec/{synchromesh/integration → batch2}/has_many_through_spec.rb +2 -2
  70. data/spec/{synchromesh/integration → batch2}/relationships_spec.rb +3 -3
  71. data/spec/{reactive_record → batch3}/auto_load_itself_spec.rb +1 -1
  72. data/spec/{reactive_record → batch3}/edge_cases_spec.rb +1 -1
  73. data/spec/{reactive_record → batch3}/finder_method_spec.rb +1 -1
  74. data/spec/{reactive_record → batch3}/many_to_many_spec.rb +2 -2
  75. data/spec/{reactive_record → batch3}/pry_rescue_xspec.rb +0 -0
  76. data/{examples/action-cable-production-mode/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css → spec/batch3/readme.txt} +0 -0
  77. data/spec/{reactive_record → batch3}/revert_spec.rb +2 -2
  78. data/spec/{reactive_record → batch3}/save_while_loading_spec.rb +1 -1
  79. data/spec/{reactive_record → batch3}/update_associations_spec.rb +2 -2
  80. data/spec/{reactive_record → batch3}/update_scopes_spec.rb +2 -2
  81. data/spec/{synchromesh/integration → batch4}/saving_during_commit_spec.rb +2 -2
  82. data/spec/{synchromesh/integration → batch4}/scope_spec.rb +30 -2
  83. data/spec/{synchromesh/examples → batch4}/scoped_todos_spec.rb +3 -3
  84. data/spec/{synchromesh/integration → batch4}/synchromesh_spec.rb +2 -2
  85. data/spec/{synchromesh/examples → examples}/dictionary.rb +2 -2
  86. data/spec/{synchromesh/examples → examples}/dictionary_with_client_scopes.rb +2 -2
  87. data/spec/{synchromesh/examples → examples}/random_examples.rb +1 -1
  88. data/spec/{reactive_record/play.rb → play_ground.rb} +0 -0
  89. data/spec/{reactive_record/factory.rb → reactive_record_factory.rb} +0 -0
  90. data/spec/spec_helper.rb +3 -2
  91. data/spec/test_app/Gemfile +8 -3
  92. data/spec/test_app/Gemfile.lock +114 -64
  93. data/spec/test_app/app/views/components.rb +1 -2
  94. data/spec/test_app/config/application.rb +2 -0
  95. data/spec/test_app/config/routes.rb +1 -1
  96. data/spec/{synchromesh/integration/test_components.rb → test_components.rb} +0 -0
  97. metadata +144 -137
  98. data/app/controllers/reactive_record/application_controller.rb +0 -4
  99. data/app/controllers/reactive_record/reactive_record_controller.rb +0 -49
  100. data/config/routes.rb +0 -7
  101. data/examples/action-cable-production-mode/public/assets/application-90043e04e9e784054fd08159fa7aafe5e23d3ffb31584b1bea1e47043c9cfb5a.js +0 -50
  102. data/examples/action-cable-production-mode/public/assets/application-90043e04e9e784054fd08159fa7aafe5e23d3ffb31584b1bea1e47043c9cfb5a.js.gz +0 -0
  103. data/examples/action-cable-production-mode/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css.gz +0 -0
  104. data/examples/action-cable-production-mode/tmp/.keep +0 -0
  105. data/examples/action-cable/log/.keep +0 -0
  106. data/examples/action-cable/tmp/.keep +0 -0
  107. data/examples/pusher-fake/log/.keep +0 -0
  108. data/examples/pusher-fake/tmp/.keep +0 -0
  109. data/examples/pusher/log/.keep +0 -0
  110. data/examples/pusher/tmp/.keep +0 -0
  111. data/examples/simple-poller/log/.keep +0 -0
  112. data/examples/simple-poller/tmp/.keep +0 -0
  113. data/examples/word-game/log/.keep +0 -0
  114. data/examples/word-game/tmp/.keep +0 -0
  115. data/examples/words/log/.keep +0 -0
  116. data/examples/words/tmp/.keep +0 -0
  117. data/lib/reactive_record/version.rb +0 -3
  118. data/lib/sources/hyper-mesh/pusher.js +0 -98
  119. data/lib/synchromesh/action_cable.rb +0 -39
  120. data/lib/synchromesh/client_drivers.rb +0 -357
  121. data/lib/synchromesh/configuration.rb +0 -40
  122. data/lib/synchromesh/connection.rb +0 -170
  123. data/lib/synchromesh/policy.rb +0 -504
  124. data/lib/synchromesh/synchromesh.rb +0 -159
  125. data/lib/synchromesh/synchromesh_controller.rb +0 -162
  126. data/reactive_record_test_app/README.rdoc +0 -261
  127. data/reactive_record_test_app/app/assets/javascripts/components/another_component.rb +0 -24
  128. data/reactive_record_test_app/app/assets/javascripts/components/empty_component.rb +0 -6
  129. data/reactive_record_test_app/app/assets/javascripts/components/todo_item_component.js.rb +0 -16
  130. data/reactive_record_test_app/app/assets/javascripts/components/todos_component.js.rb +0 -42
  131. data/reactive_record_test_app/app/assets/javascripts/components/todos_main_component.rb +0 -49
  132. data/reactive_record_test_app/app/assets/javascripts/react_js_test_only.js +0 -21618
  133. data/reactive_record_test_app/app/assets/javascripts/spec/reactive_record_xspec.js.rb +0 -42
  134. data/reactive_record_test_app/app/controllers/test_controller.rb +0 -7
  135. data/reactive_record_test_app/app/mailers/.gitkeep +0 -0
  136. data/reactive_record_test_app/app/models/models.rb +0 -1
  137. data/reactive_record_test_app/app/policies/application_policy.rb +0 -5
  138. data/reactive_record_test_app/app/views/components.rb +0 -4
  139. data/reactive_record_test_app/app/views/components/test.rb +0 -18
  140. data/reactive_record_test_app/app/views/home/index.html.erb +0 -1
  141. data/reactive_record_test_app/app/views/layouts/application.html.erb +0 -17
  142. data/reactive_record_test_app/config/environments/production.rb +0 -70
  143. data/reactive_record_test_app/config/environments/test.rb +0 -41
  144. data/spec/synchromesh/integration/transports_spec.rb +0 -308
  145. data/spec/synchromesh/policies/auto_connect_spec.rb +0 -60
  146. data/spec/synchromesh/policies/auto_loader_spec.rb +0 -34
  147. data/spec/synchromesh/policies/policy_methods_spec.rb +0 -85
  148. data/spec/synchromesh/policies/regulate_class_connection_spec.rb +0 -50
  149. data/spec/synchromesh/policies/regulate_instance_connection_spec.rb +0 -66
  150. data/spec/test_app/log/.keep +0 -0
@@ -1,60 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'channel auto connect' do
4
-
5
- before(:each) do
6
- stub_const 'ApplicationPolicy', Class.new
7
- stub_const 'TestModelPolicy', Class.new
8
- stub_const 'TestModel', Class.new
9
- TestModel.class_eval do
10
- def initialize(id)
11
- @id = id
12
- end
13
- def self.find(id)
14
- new(id)
15
- end
16
- def id
17
- @id
18
- end
19
- end
20
- end
21
-
22
- it 'will autoconnect' do
23
- ApplicationPolicy.always_allow_connection
24
- expect(HyperMesh::AutoConnect.channels(0, nil)).to eq(["Application"])
25
- end
26
-
27
- it 'will autoconnect to multiple channels' do
28
- ApplicationPolicy.regulate_class_connection { true }
29
- ApplicationPolicy.regulate_class_connection('AnotherChannel') { true }
30
- expect(HyperMesh::AutoConnect.channels(0, nil)).to eq(['Application', 'AnotherChannel'])
31
- end
32
-
33
- it 'will not autoconnect a class channel if disabled' do
34
- ApplicationPolicy.regulate_class_connection(auto_connect: false) { true }
35
- ApplicationPolicy.regulate_instance_connections(TestModel) { self }
36
- expect(HyperMesh::AutoConnect.channels(0, TestModel.find(1))).to eq([['TestModel',1]])
37
- end
38
-
39
- it 'will not autoconnect an instance channel if disabled' do
40
- ApplicationPolicy.regulate_class_connection { true }
41
- ApplicationPolicy.regulate_instance_connections(TestModel, auto_connect: false) { self }
42
- expect(HyperMesh::AutoConnect.channels(0, TestModel.find(1))).to eq(['Application'])
43
- end
44
-
45
- it 'can autoconnect to an instance' do
46
- TestModelPolicy.regulate_instance_connections { self }
47
- expect(HyperMesh::AutoConnect.channels(0, TestModel.find(1))).to eq([['TestModel', 1]])
48
- end
49
-
50
- it 'can autoconnect to an instance and class' do
51
- TestModelPolicy.always_allow_connection
52
- TestModelPolicy.regulate_instance_connections { self }
53
- expect(HyperMesh::AutoConnect.channels(0, TestModel.find(1))).to eq(['TestModel', ['TestModel', 1]])
54
- end
55
-
56
- it 'can autoconnect to multiple instances' do
57
- TestModelPolicy.regulate_instance_connections { [TestModel.find(1), TestModel.find(2)] if self == 'acting_user'}
58
- expect(HyperMesh::AutoConnect.channels(0, 'acting_user')).to eq([['TestModel', 1], ['TestModel', 2]])
59
- end
60
- end
@@ -1,34 +0,0 @@
1
-
2
- require 'spec_helper'
3
-
4
- describe 'rails autoloader' do
5
-
6
- # can't figure out how to get rails to dump class cache between tests so
7
- # we define two different class policy pairs...
8
-
9
- context "when using const_set" do
10
-
11
- it 'will find the policy class file if available' do
12
- stub_const "AutoLoaderTestClassa", Class.new
13
- expect(HyperMesh::AutoConnect.channels(0, nil)).to eq(["AutoLoaderTestClassa"])
14
- end
15
-
16
- it 'will raise a load error if file does not define the class' do
17
- expect { stub_const "AutoLoaderTestClassc", Class.new }.to raise_error(LoadError)
18
- end
19
- end
20
-
21
- context "when defining a new class" do
22
-
23
- it 'will find the policy class if available' do
24
- class AutoLoaderTestClassb
25
- end
26
- expect(HyperMesh::AutoConnect.channels(0, nil)).to eq(["AutoLoaderTestClassb"])
27
- end
28
-
29
- it 'will raise a load error if file does not define the class' do
30
- expect { class AutoLoaderTestClassd; end }.to raise_error(LoadError)
31
- end
32
- end
33
-
34
- end
@@ -1,85 +0,0 @@
1
- require 'spec_helper'
2
- #require 'synchromesh/test_components'
3
-
4
- describe "including HyperMesh::PolicyMethods" do
5
-
6
- before(:each) do
7
- stub_const "TestClass", Class.new
8
- TestClass.class_eval do
9
- include HyperMesh::PolicyMethods
10
- end
11
- end
12
-
13
- it "defines the regulate_class_connection method" do
14
- expect(TestClass).to respond_to(:regulate_class_connection)
15
- end
16
-
17
-
18
- it "defines the regulate_instance_connections method" do
19
- expect(TestClass).to respond_to(:regulate_instance_connections)
20
- end
21
-
22
- it "defines the always_allow_connection method" do
23
- expect(TestClass).to respond_to(:always_allow_connection)
24
- end
25
-
26
- it "defines the regulate_all_broadcasts method" do
27
- expect(TestClass).to respond_to(:regulate_all_broadcasts)
28
- end
29
-
30
- it "defines the regulate_broadcast method" do
31
- expect(TestClass).to respond_to(:regulate_broadcast)
32
- end
33
-
34
- it "sets the correct regulated class" do
35
- expect(TestClass.synchromesh_internal_policy_object.instance_variable_get("@regulated_klass")).to eq("TestClass")
36
- end
37
-
38
- it "exposes the underlying regulate_class_connection method" do
39
- expect(TestClass.synchromesh_internal_policy_object).to respond_to(:regulate_class_connection)
40
- end
41
-
42
-
43
- it "exposes the underlying regulate_instance_connections method" do
44
- expect(TestClass.synchromesh_internal_policy_object).to respond_to(:regulate_instance_connections)
45
- end
46
-
47
- it "exposes the underlying always_allow_connection method" do
48
- expect(TestClass.synchromesh_internal_policy_object).to respond_to(:always_allow_connection)
49
- end
50
-
51
- it "exposes the underlying regulate_all_broadcasts method" do
52
- expect(TestClass.synchromesh_internal_policy_object).to respond_to(:regulate_all_broadcasts)
53
- end
54
-
55
- it "exposes the underlying regulate_broadcast method" do
56
- expect(TestClass.synchromesh_internal_policy_object).to respond_to(:regulate_broadcast)
57
- end
58
-
59
- it "defines the send_all instance method" do
60
- expect(TestClass.new).to respond_to(:send_all)
61
- end
62
-
63
- it "defines the send_all_but instance method" do
64
- expect(TestClass.new).to respond_to(:send_all_but)
65
- end
66
-
67
- it "defines the send_only instance method" do
68
- expect(TestClass.new).to respond_to(:send_only)
69
- end
70
-
71
- it "defines the obj instance method" do
72
- expect(TestClass.new).to respond_to(:obj)
73
- end
74
-
75
- it "will automatically create an empty Application class if needed" do
76
- expect(defined? Application).to be_falsy
77
- stub_const 'ApplicationPolicy', Class.new
78
- ApplicationPolicy.class_eval do
79
- regulate_class_connection { true }
80
- end
81
- HyperMesh.configuration {}
82
- expect(Application).to be_a(Class)
83
- end
84
-
85
- end
@@ -1,50 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "regulate class connections" do
4
-
5
- before(:each) do
6
- stub_const "ApplicationPolicy", Class.new
7
- end
8
-
9
- it "will fail if there is no connection policy for a class" do
10
- ApplicationPolicy.regulate_instance_connections { self }
11
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Application") }.to raise_error('connection failed')
12
- end
13
-
14
- it "will succeed if there is a connection policy for a class" do
15
- ApplicationPolicy.regulate_class_connection { true }
16
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Application") }.not_to raise_error
17
- end
18
-
19
- it "the class connection policy ignores the acting_user object" do
20
- ApplicationPolicy.regulate_class_connection { true }
21
- expect { HyperMesh::InternalPolicy.regulate_connection("acting_user", "Application") }.not_to raise_error
22
- end
23
-
24
- it "can be applied to a different class" do
25
- stub_const "Class1", Class.new
26
- stub_const "Class2", Class.new
27
- ApplicationPolicy.regulate_class_connection(Class1, Class2) { true }
28
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Class1") }.not_to raise_error
29
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Class2") }.not_to raise_error
30
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Application") }.to raise_error('connection failed')
31
- end
32
-
33
- it "can be simplified using the always_allow_connection method" do
34
- ApplicationPolicy.always_allow_connection
35
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Application") }.not_to raise_error
36
- end
37
-
38
- it "can conditionally regulate the connection" do
39
- ApplicationPolicy.regulate_class_connection { self }
40
- expect { HyperMesh::InternalPolicy.regulate_connection(true, "Application") }.not_to raise_error
41
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Application") }.to raise_error('connection failed')
42
- end
43
-
44
- it "can conditionally regulate the connection by raising an error" do
45
- ApplicationPolicy.regulate_class_connection { raise "POW" unless self=="okay"; true }
46
- expect { HyperMesh::InternalPolicy.regulate_connection("okay", "Application") }.not_to raise_error
47
- expect { HyperMesh::InternalPolicy.regulate_connection("dokey", "Application") }.to raise_error('connection failed')
48
- end
49
-
50
- end
@@ -1,66 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "regulate_instance_connections" do
4
-
5
- before(:each) do
6
- stub_const "ApplicationPolicy", Class.new
7
- stub_const "Application", Class.new
8
- Application.class_eval do
9
- def initialize(id)
10
- @id = id
11
- end
12
- def ==(other)
13
- id == other.id
14
- end
15
- def self.find(id)
16
- new(id)
17
- end
18
- def id
19
- @id.to_s
20
- end
21
- end
22
- end
23
-
24
- it "will fail for an instance connection if the connection policy does not support instances" do
25
- ApplicationPolicy.always_allow_connection
26
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.find(123), "Application-123") }.to raise_error('connection failed')
27
- end
28
-
29
- it "will succeed for an instance connection if the connection policy does support instances" do
30
- ApplicationPolicy.always_allow_connection
31
- ApplicationPolicy.regulate_instance_connections { self }
32
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.find(123), "Application-123") }.not_to raise_error
33
- end
34
-
35
- it "will succeed only if the user id is correct" do
36
- ApplicationPolicy.regulate_instance_connections { Application.find('baz') }
37
- expect { HyperMesh::InternalPolicy.regulate_connection(nil, "Application-baz") }.not_to raise_error
38
- end
39
-
40
- it "can be applied to a different class" do
41
- stub_const "Class1", Class.new(Application)
42
- stub_const "Class2", Class.new(Application)
43
- ApplicationPolicy.regulate_instance_connections(Class1, Class2) { self }
44
- expect { HyperMesh::InternalPolicy.regulate_connection(Class1.find('baz'), "Class1-baz") }.not_to raise_error
45
- expect { HyperMesh::InternalPolicy.regulate_connection(Class2.find('baz-2'), "Class2-baz-2") }.not_to raise_error
46
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.find('baz'), "Application-baz") }.to raise_error('connection failed')
47
- end
48
-
49
- it "can return an array objects" do
50
- ApplicationPolicy.regulate_instance_connections { [Application.find(1), Application.find(2)] }
51
- expect { HyperMesh::InternalPolicy.regulate_connection("foo", "Application-1") }.not_to raise_error
52
- expect { HyperMesh::InternalPolicy.regulate_connection("foo", "Application-2") }.not_to raise_error
53
- end
54
-
55
- it "can conditionally regulate the connection" do
56
- ApplicationPolicy.regulate_instance_connections { id == '1' && self }
57
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.new(1), "Application-1") }.not_to raise_error
58
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.new(2), "Application-2") }.to raise_error('connection failed')
59
- end
60
-
61
- it "can regulate the connection by raising an error" do
62
- ApplicationPolicy.regulate_instance_connections { raise "POW" unless id == '1'; self}
63
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.new(1), "Application-1") }.not_to raise_error
64
- expect { HyperMesh::InternalPolicy.regulate_connection(Application.new(2), "Application-2") }.to raise_error('connection failed')
65
- end
66
- end
File without changes