hyper-operation 0.5.12 → 0.99.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 +5 -5
- data/.gitignore +4 -1
- data/.travis.yml +33 -0
- data/DOCS-POLICIES.md +93 -0
- data/DOCS.md +1 -1
- data/Gemfile +5 -1
- data/Gemfile.lock +379 -0
- data/README.md +10 -9
- data/Rakefile +10 -2
- data/hyper-operation.gemspec +34 -29
- data/lib/hyper-operation.rb +5 -4
- data/lib/hyper-operation/boot.rb +1 -1
- data/lib/hyper-operation/engine.rb +1 -1
- data/lib/hyper-operation/http.rb +309 -0
- data/lib/hyper-operation/railway/params_wrapper.rb +1 -0
- data/lib/hyper-operation/server_op.rb +83 -18
- data/lib/hyper-operation/transport/client_drivers.rb +71 -28
- data/lib/hyper-operation/transport/connection.rb +22 -20
- data/lib/hyper-operation/transport/hyperloop.rb +1 -1
- data/lib/hyper-operation/transport/hyperloop_controller.rb +6 -1
- data/lib/hyper-operation/transport/policy.rb +78 -13
- data/lib/hyper-operation/version.rb +1 -1
- metadata +95 -319
- data/CODE_OF_CONDUCT.md +0 -49
- data/examples/chat-app/.gitignore +0 -21
- data/examples/chat-app/Gemfile +0 -57
- data/examples/chat-app/Gemfile.lock +0 -283
- data/examples/chat-app/README.md +0 -3
- data/examples/chat-app/Rakefile +0 -6
- data/examples/chat-app/app/assets/config/manifest.js +0 -3
- data/examples/chat-app/app/assets/images/.keep +0 -0
- data/examples/chat-app/app/assets/javascripts/application.js +0 -3
- data/examples/chat-app/app/assets/javascripts/cable.js +0 -13
- data/examples/chat-app/app/assets/javascripts/channels/.keep +0 -0
- data/examples/chat-app/app/assets/stylesheets/application.css +0 -15
- data/examples/chat-app/app/channels/application_cable/channel.rb +0 -4
- data/examples/chat-app/app/channels/application_cable/connection.rb +0 -4
- data/examples/chat-app/app/controllers/application_controller.rb +0 -3
- data/examples/chat-app/app/controllers/concerns/.keep +0 -0
- data/examples/chat-app/app/controllers/home_controller.rb +0 -5
- data/examples/chat-app/app/helpers/application_helper.rb +0 -2
- data/examples/chat-app/app/hyperloop/components/app.rb +0 -11
- data/examples/chat-app/app/hyperloop/components/formatted_div.rb +0 -13
- data/examples/chat-app/app/hyperloop/components/input_box.rb +0 -29
- data/examples/chat-app/app/hyperloop/components/message.rb +0 -29
- data/examples/chat-app/app/hyperloop/components/messages.rb +0 -9
- data/examples/chat-app/app/hyperloop/components/nav.rb +0 -30
- data/examples/chat-app/app/hyperloop/operations/operations.rb +0 -56
- data/examples/chat-app/app/hyperloop/stores/message_store.rb +0 -23
- data/examples/chat-app/app/models/application_record.rb +0 -3
- data/examples/chat-app/app/models/concerns/.keep +0 -0
- data/examples/chat-app/app/models/models.rb +0 -2
- data/examples/chat-app/app/models/public/.keep +0 -0
- data/examples/chat-app/app/models/public/announcement.rb +0 -8
- data/examples/chat-app/app/policies/application_policy.rb +0 -5
- data/examples/chat-app/app/views/layouts/application.html.erb +0 -51
- data/examples/chat-app/bin/bundle +0 -3
- data/examples/chat-app/bin/rails +0 -9
- data/examples/chat-app/bin/rake +0 -9
- data/examples/chat-app/bin/setup +0 -34
- data/examples/chat-app/bin/spring +0 -17
- data/examples/chat-app/bin/update +0 -29
- data/examples/chat-app/config.ru +0 -5
- data/examples/chat-app/config/application.rb +0 -13
- data/examples/chat-app/config/boot.rb +0 -3
- data/examples/chat-app/config/cable.yml +0 -9
- data/examples/chat-app/config/database.yml +0 -25
- data/examples/chat-app/config/environment.rb +0 -5
- data/examples/chat-app/config/environments/development.rb +0 -56
- data/examples/chat-app/config/environments/production.rb +0 -86
- data/examples/chat-app/config/environments/test.rb +0 -42
- data/examples/chat-app/config/initializers/application_controller_renderer.rb +0 -6
- data/examples/chat-app/config/initializers/assets.rb +0 -11
- data/examples/chat-app/config/initializers/backtrace_silencers.rb +0 -7
- data/examples/chat-app/config/initializers/cookies_serializer.rb +0 -5
- data/examples/chat-app/config/initializers/filter_parameter_logging.rb +0 -4
- data/examples/chat-app/config/initializers/hyperloop.rb +0 -4
- data/examples/chat-app/config/initializers/inflections.rb +0 -16
- data/examples/chat-app/config/initializers/mime_types.rb +0 -4
- data/examples/chat-app/config/initializers/new_framework_defaults.rb +0 -24
- data/examples/chat-app/config/initializers/session_store.rb +0 -3
- data/examples/chat-app/config/initializers/wrap_parameters.rb +0 -14
- data/examples/chat-app/config/locales/en.yml +0 -23
- data/examples/chat-app/config/puma.rb +0 -47
- data/examples/chat-app/config/routes.rb +0 -5
- data/examples/chat-app/config/secrets.yml +0 -22
- data/examples/chat-app/config/spring.rb +0 -6
- data/examples/chat-app/db/seeds.rb +0 -7
- data/examples/chat-app/lib/assets/.keep +0 -0
- data/examples/chat-app/lib/tasks/.keep +0 -0
- data/examples/chat-app/log/.keep +0 -0
- data/examples/chat-app/public/404.html +0 -67
- data/examples/chat-app/public/422.html +0 -67
- data/examples/chat-app/public/500.html +0 -66
- data/examples/chat-app/public/apple-touch-icon-precomposed.png +0 -0
- data/examples/chat-app/public/apple-touch-icon.png +0 -0
- data/examples/chat-app/public/favicon.ico +0 -0
- data/examples/chat-app/public/robots.txt +0 -5
- data/examples/chat-app/test/controllers/.keep +0 -0
- data/examples/chat-app/test/fixtures/.keep +0 -0
- data/examples/chat-app/test/fixtures/files/.keep +0 -0
- data/examples/chat-app/test/helpers/.keep +0 -0
- data/examples/chat-app/test/integration/.keep +0 -0
- data/examples/chat-app/test/mailers/.keep +0 -0
- data/examples/chat-app/test/models/.keep +0 -0
- data/examples/chat-app/test/test_helper.rb +0 -10
- data/examples/chat-app/tmp/.keep +0 -0
- data/examples/chat-app/vendor/assets/javascripts/.keep +0 -0
- data/examples/chat-app/vendor/assets/stylesheets/.keep +0 -0
- data/examples/five-letter-word-game/.gitignore +0 -21
- data/examples/five-letter-word-game/Gemfile +0 -62
- data/examples/five-letter-word-game/Gemfile.lock +0 -291
- data/examples/five-letter-word-game/README.md +0 -24
- data/examples/five-letter-word-game/Rakefile +0 -6
- data/examples/five-letter-word-game/app/assets/config/manifest.js +0 -3
- data/examples/five-letter-word-game/app/assets/images/.keep +0 -0
- data/examples/five-letter-word-game/app/assets/javascripts/application.js +0 -4
- data/examples/five-letter-word-game/app/assets/javascripts/cable.js +0 -13
- data/examples/five-letter-word-game/app/assets/javascripts/channels/.keep +0 -0
- data/examples/five-letter-word-game/app/assets/stylesheets/application.css +0 -15
- data/examples/five-letter-word-game/app/channels/application_cable/channel.rb +0 -4
- data/examples/five-letter-word-game/app/channels/application_cable/connection.rb +0 -4
- data/examples/five-letter-word-game/app/controllers/application_controller.rb +0 -14
- data/examples/five-letter-word-game/app/controllers/concerns/.keep +0 -0
- data/examples/five-letter-word-game/app/controllers/home_controller.rb +0 -5
- data/examples/five-letter-word-game/app/helpers/application_helper.rb +0 -2
- data/examples/five-letter-word-game/app/hyperloop/components/app.rb +0 -65
- data/examples/five-letter-word-game/app/hyperloop/components/guesses.rb +0 -8
- data/examples/five-letter-word-game/app/hyperloop/components/input_word.rb +0 -13
- data/examples/five-letter-word-game/app/hyperloop/models/user.rb +0 -27
- data/examples/five-letter-word-game/app/hyperloop/operations/ops.rb +0 -115
- data/examples/five-letter-word-game/app/hyperloop/stores/store.rb +0 -120
- data/examples/five-letter-word-game/app/jobs/application_job.rb +0 -2
- data/examples/five-letter-word-game/app/mailers/application_mailer.rb +0 -4
- data/examples/five-letter-word-game/app/models/application_record.rb +0 -3
- data/examples/five-letter-word-game/app/models/concerns/.keep +0 -0
- data/examples/five-letter-word-game/app/policies/hyperloop/application_policy.rb +0 -3
- data/examples/five-letter-word-game/app/policies/user_policy.rb +0 -4
- data/examples/five-letter-word-game/app/views/layouts/application.html.erb +0 -14
- data/examples/five-letter-word-game/app/views/layouts/mailer.html.erb +0 -13
- data/examples/five-letter-word-game/app/views/layouts/mailer.text.erb +0 -1
- data/examples/five-letter-word-game/bin/bundle +0 -3
- data/examples/five-letter-word-game/bin/rails +0 -9
- data/examples/five-letter-word-game/bin/rake +0 -9
- data/examples/five-letter-word-game/bin/setup +0 -34
- data/examples/five-letter-word-game/bin/spring +0 -17
- data/examples/five-letter-word-game/bin/update +0 -29
- data/examples/five-letter-word-game/config.ru +0 -5
- data/examples/five-letter-word-game/config/application.rb +0 -12
- data/examples/five-letter-word-game/config/boot.rb +0 -3
- data/examples/five-letter-word-game/config/cable.yml +0 -9
- data/examples/five-letter-word-game/config/database.yml +0 -46
- data/examples/five-letter-word-game/config/environment.rb +0 -5
- data/examples/five-letter-word-game/config/environments/development.rb +0 -56
- data/examples/five-letter-word-game/config/environments/production.rb +0 -86
- data/examples/five-letter-word-game/config/environments/test.rb +0 -42
- data/examples/five-letter-word-game/config/initializers/application_controller_renderer.rb +0 -6
- data/examples/five-letter-word-game/config/initializers/assets.rb +0 -15
- data/examples/five-letter-word-game/config/initializers/backtrace_silencers.rb +0 -7
- data/examples/five-letter-word-game/config/initializers/cookies_serializer.rb +0 -5
- data/examples/five-letter-word-game/config/initializers/filter_parameter_logging.rb +0 -4
- data/examples/five-letter-word-game/config/initializers/hyperloop.rb +0 -19
- data/examples/five-letter-word-game/config/initializers/inflections.rb +0 -16
- data/examples/five-letter-word-game/config/initializers/mime_types.rb +0 -4
- data/examples/five-letter-word-game/config/initializers/new_framework_defaults.rb +0 -24
- data/examples/five-letter-word-game/config/initializers/session_store.rb +0 -3
- data/examples/five-letter-word-game/config/initializers/wrap_parameters.rb +0 -14
- data/examples/five-letter-word-game/config/locales/en.yml +0 -23
- data/examples/five-letter-word-game/config/puma.rb +0 -47
- data/examples/five-letter-word-game/config/routes.rb +0 -5
- data/examples/five-letter-word-game/config/secrets.yml +0 -22
- data/examples/five-letter-word-game/config/spring.rb +0 -6
- data/examples/five-letter-word-game/db/schema.rb +0 -28
- data/examples/five-letter-word-game/db/seeds.rb +0 -7
- data/examples/five-letter-word-game/lib/assets/.keep +0 -0
- data/examples/five-letter-word-game/lib/tasks/.keep +0 -0
- data/examples/five-letter-word-game/log/.keep +0 -0
- data/examples/five-letter-word-game/public/404.html +0 -67
- data/examples/five-letter-word-game/public/422.html +0 -67
- data/examples/five-letter-word-game/public/500.html +0 -66
- data/examples/five-letter-word-game/public/apple-touch-icon-precomposed.png +0 -0
- data/examples/five-letter-word-game/public/apple-touch-icon.png +0 -0
- data/examples/five-letter-word-game/public/favicon.ico +0 -0
- data/examples/five-letter-word-game/public/robots.txt +0 -5
- data/examples/five-letter-word-game/test/controllers/.keep +0 -0
- data/examples/five-letter-word-game/test/fixtures/.keep +0 -0
- data/examples/five-letter-word-game/test/fixtures/files/.keep +0 -0
- data/examples/five-letter-word-game/test/helpers/.keep +0 -0
- data/examples/five-letter-word-game/test/integration/.keep +0 -0
- data/examples/five-letter-word-game/test/mailers/.keep +0 -0
- data/examples/five-letter-word-game/test/models/.keep +0 -0
- data/examples/five-letter-word-game/test/test_helper.rb +0 -10
- data/examples/five-letter-word-game/tmp/.keep +0 -0
- data/examples/five-letter-word-game/vendor/assets/javascripts/.keep +0 -0
- data/examples/five-letter-word-game/vendor/assets/stylesheets/.keep +0 -0
- data/examples/smoke_test/.gitignore +0 -21
- data/examples/smoke_test/Gemfile +0 -59
- data/examples/smoke_test/Gemfile.lock +0 -289
- data/examples/smoke_test/README.md +0 -24
- data/examples/smoke_test/Rakefile +0 -6
- data/examples/smoke_test/app/assets/config/manifest.js +0 -3
- data/examples/smoke_test/app/assets/images/.keep +0 -0
- data/examples/smoke_test/app/assets/javascripts/application.js +0 -15
- data/examples/smoke_test/app/assets/javascripts/cable.js +0 -13
- data/examples/smoke_test/app/assets/javascripts/channels/.keep +0 -0
- data/examples/smoke_test/app/assets/stylesheets/application.css +0 -15
- data/examples/smoke_test/app/channels/application_cable/channel.rb +0 -4
- data/examples/smoke_test/app/channels/application_cable/connection.rb +0 -4
- data/examples/smoke_test/app/controllers/app_controller.rb +0 -5
- data/examples/smoke_test/app/controllers/application_controller.rb +0 -3
- data/examples/smoke_test/app/helpers/application_helper.rb +0 -2
- data/examples/smoke_test/app/hyperloop/components/hello.rb +0 -25
- data/examples/smoke_test/app/hyperloop/operations/operations/nested_send_to_all.rb +0 -7
- data/examples/smoke_test/app/hyperloop/operations/send_to_all.rb +0 -6
- data/examples/smoke_test/app/hyperloop/stores/messages.rb +0 -4
- data/examples/smoke_test/app/jobs/application_job.rb +0 -2
- data/examples/smoke_test/app/mailers/application_mailer.rb +0 -4
- data/examples/smoke_test/app/models/application_record.rb +0 -3
- data/examples/smoke_test/app/models/concerns/.keep +0 -0
- data/examples/smoke_test/app/policies/application_policy.rb +0 -8
- data/examples/smoke_test/app/views/layouts/application.html.erb +0 -14
- data/examples/smoke_test/app/views/layouts/mailer.html.erb +0 -13
- data/examples/smoke_test/app/views/layouts/mailer.text.erb +0 -1
- data/examples/smoke_test/bin/bundle +0 -3
- data/examples/smoke_test/bin/rails +0 -9
- data/examples/smoke_test/bin/rake +0 -9
- data/examples/smoke_test/bin/setup +0 -34
- data/examples/smoke_test/bin/spring +0 -17
- data/examples/smoke_test/bin/update +0 -29
- data/examples/smoke_test/config.ru +0 -5
- data/examples/smoke_test/config/application.rb +0 -15
- data/examples/smoke_test/config/boot.rb +0 -3
- data/examples/smoke_test/config/cable.yml +0 -9
- data/examples/smoke_test/config/database.yml +0 -25
- data/examples/smoke_test/config/environment.rb +0 -5
- data/examples/smoke_test/config/environments/development.rb +0 -54
- data/examples/smoke_test/config/environments/production.rb +0 -86
- data/examples/smoke_test/config/environments/test.rb +0 -42
- data/examples/smoke_test/config/initializers/application_controller_renderer.rb +0 -6
- data/examples/smoke_test/config/initializers/assets.rb +0 -11
- data/examples/smoke_test/config/initializers/backtrace_silencers.rb +0 -7
- data/examples/smoke_test/config/initializers/cookies_serializer.rb +0 -5
- data/examples/smoke_test/config/initializers/filter_parameter_logging.rb +0 -4
- data/examples/smoke_test/config/initializers/hyperloop.rb +0 -32
- data/examples/smoke_test/config/initializers/inflections.rb +0 -16
- data/examples/smoke_test/config/initializers/mime_types.rb +0 -4
- data/examples/smoke_test/config/initializers/new_framework_defaults.rb +0 -24
- data/examples/smoke_test/config/initializers/session_store.rb +0 -3
- data/examples/smoke_test/config/initializers/wrap_parameters.rb +0 -14
- data/examples/smoke_test/config/locales/en.yml +0 -23
- data/examples/smoke_test/config/puma.rb +0 -47
- data/examples/smoke_test/config/routes.rb +0 -5
- data/examples/smoke_test/config/secrets.yml +0 -22
- data/examples/smoke_test/config/spring.rb +0 -6
- data/examples/smoke_test/db/seeds.rb +0 -7
- data/examples/smoke_test/lib/assets/.keep +0 -0
- data/examples/smoke_test/lib/tasks/.keep +0 -0
- data/examples/smoke_test/log/.keep +0 -0
- data/examples/smoke_test/public/404.html +0 -67
- data/examples/smoke_test/public/422.html +0 -67
- data/examples/smoke_test/public/500.html +0 -66
- data/examples/smoke_test/public/apple-touch-icon-precomposed.png +0 -0
- data/examples/smoke_test/public/apple-touch-icon.png +0 -0
- data/examples/smoke_test/public/favicon.ico +0 -0
- data/examples/smoke_test/public/robots.txt +0 -5
- data/examples/smoke_test/test/controllers/.keep +0 -0
- data/examples/smoke_test/test/fixtures/.keep +0 -0
- data/examples/smoke_test/test/fixtures/files/.keep +0 -0
- data/examples/smoke_test/test/helpers/.keep +0 -0
- data/examples/smoke_test/test/integration/.keep +0 -0
- data/examples/smoke_test/test/mailers/.keep +0 -0
- data/examples/smoke_test/test/models/.keep +0 -0
- data/examples/smoke_test/test/test_helper.rb +0 -10
- data/examples/smoke_test/tmp/.keep +0 -0
- data/examples/smoke_test/vendor/assets/javascripts/.keep +0 -0
- data/examples/smoke_test/vendor/assets/stylesheets/.keep +0 -0
- data/lib/hyper-operation/call_by_class_name.rb +0 -60
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<title>We're sorry, but something went wrong (500)</title>
|
|
5
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
-
<style>
|
|
7
|
-
body {
|
|
8
|
-
background-color: #EFEFEF;
|
|
9
|
-
color: #2E2F30;
|
|
10
|
-
text-align: center;
|
|
11
|
-
font-family: arial, sans-serif;
|
|
12
|
-
margin: 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
div.dialog {
|
|
16
|
-
width: 95%;
|
|
17
|
-
max-width: 33em;
|
|
18
|
-
margin: 4em auto 0;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
div.dialog > div {
|
|
22
|
-
border: 1px solid #CCC;
|
|
23
|
-
border-right-color: #999;
|
|
24
|
-
border-left-color: #999;
|
|
25
|
-
border-bottom-color: #BBB;
|
|
26
|
-
border-top: #B00100 solid 4px;
|
|
27
|
-
border-top-left-radius: 9px;
|
|
28
|
-
border-top-right-radius: 9px;
|
|
29
|
-
background-color: white;
|
|
30
|
-
padding: 7px 12% 0;
|
|
31
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
h1 {
|
|
35
|
-
font-size: 100%;
|
|
36
|
-
color: #730E15;
|
|
37
|
-
line-height: 1.5em;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
div.dialog > p {
|
|
41
|
-
margin: 0 0 1em;
|
|
42
|
-
padding: 1em;
|
|
43
|
-
background-color: #F7F7F7;
|
|
44
|
-
border: 1px solid #CCC;
|
|
45
|
-
border-right-color: #999;
|
|
46
|
-
border-left-color: #999;
|
|
47
|
-
border-bottom-color: #999;
|
|
48
|
-
border-bottom-left-radius: 4px;
|
|
49
|
-
border-bottom-right-radius: 4px;
|
|
50
|
-
border-top-color: #DADADA;
|
|
51
|
-
color: #666;
|
|
52
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
|
53
|
-
}
|
|
54
|
-
</style>
|
|
55
|
-
</head>
|
|
56
|
-
|
|
57
|
-
<body>
|
|
58
|
-
<!-- This file lives in public/500.html -->
|
|
59
|
-
<div class="dialog">
|
|
60
|
-
<div>
|
|
61
|
-
<h1>We're sorry, but something went wrong.</h1>
|
|
62
|
-
</div>
|
|
63
|
-
<p>If you are the application owner check the logs for more information.</p>
|
|
64
|
-
</div>
|
|
65
|
-
</body>
|
|
66
|
-
</html>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
ENV['RAILS_ENV'] ||= 'test'
|
|
2
|
-
require File.expand_path('../../config/environment', __FILE__)
|
|
3
|
-
require 'rails/test_help'
|
|
4
|
-
|
|
5
|
-
class ActiveSupport::TestCase
|
|
6
|
-
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
|
|
7
|
-
fixtures :all
|
|
8
|
-
|
|
9
|
-
# Add more helper methods to be used by all tests here...
|
|
10
|
-
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
module Hyperloop
|
|
2
|
-
class Operation
|
|
3
|
-
end
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
# patch so that we recognize Foo(...) as an operation inside a React Component
|
|
7
|
-
module React
|
|
8
|
-
module Component
|
|
9
|
-
module Tags
|
|
10
|
-
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
# redefine find_component so if its a HyperOperation we return nil which will
|
|
14
|
-
# let Object.method_missing (see below) handle the method call to run.
|
|
15
|
-
def find_component(name)
|
|
16
|
-
component = lookup_const(name)
|
|
17
|
-
return nil if component && component < Hyperloop::Operation
|
|
18
|
-
if component && !component.method_defined?(:render)
|
|
19
|
-
raise "#{name} does not appear to be a react component."
|
|
20
|
-
end
|
|
21
|
-
component
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
class Object
|
|
28
|
-
class << self
|
|
29
|
-
alias _hyper_operation_original_method_missing method_missing
|
|
30
|
-
|
|
31
|
-
def method_missing(name, *args, &block)
|
|
32
|
-
if name =~ /^[A-Z]/
|
|
33
|
-
scopes = self.name.to_s.split('::').inject([Module]) do |nesting, next_const|
|
|
34
|
-
nesting + [nesting.last.const_get(next_const)]
|
|
35
|
-
end.reverse
|
|
36
|
-
#cant use const_defined? on server because it wont invoke rails auto loading
|
|
37
|
-
scope = scopes.detect { |s| s.const_get(name) rescue nil }
|
|
38
|
-
const = scope.const_get(name) if scope
|
|
39
|
-
end
|
|
40
|
-
_hyper_operation_original_method_missing(name, *args, &block) unless const.is_a?(Class) && const < Hyperloop::Operation
|
|
41
|
-
const.send(:run, *args)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
alias _hyper_operation_original_method_missing method_missing
|
|
46
|
-
|
|
47
|
-
def method_missing(name, *args, &block)
|
|
48
|
-
if name =~ /^[A-Z]/
|
|
49
|
-
first = self.is_a?(Module) || self.is_a?(Class) ? self.name : self.class.name
|
|
50
|
-
scopes = first.to_s.split('::').inject([Module]) do |nesting, next_const|
|
|
51
|
-
nesting + [nesting.last.const_get(next_const)]
|
|
52
|
-
end.reverse
|
|
53
|
-
#cant use const_defined? on server because it wont invoke rails auto loading
|
|
54
|
-
scope = scopes.detect { |s| s.const_get(name) rescue nil }
|
|
55
|
-
const = scope.const_get(name) if scope
|
|
56
|
-
end
|
|
57
|
-
_hyper_operation_original_method_missing(name, *args, &block) unless const.is_a?(Class) && const < Hyperloop::Operation
|
|
58
|
-
const.send(:run, *args)
|
|
59
|
-
end
|
|
60
|
-
end
|