Class: Cuboid::RPC::Server::ApplicationWrapper
- Extended by:
- Forwardable
- Includes:
- Utilities
- Defined in:
- lib/cuboid/rpc/server/application_wrapper.rb
Overview
Defined Under Namespace
Classes: Error
Instance Attribute Summary collapse
-
#application ⇒ Object
readonly
Returns the value of attribute application.
Instance Method Summary collapse
-
#busy? ⇒ Bool
‘true` If the system is scanning, `false` if #run hasn’t been called yet or if the scan has finished.
- #clean_up ⇒ Object
- #error_test(str) ⇒ Object
- #errors(starting_line = 0) ⇒ Array<String>
-
#initialize(application) ⇒ ApplicationWrapper
constructor
A new instance of ApplicationWrapper.
-
#progress(opts = {}) ⇒ Hash
Provides aggregated progress data.
-
#run ⇒ Bool
‘false` if already running, `true` otherwise.
- #valid_options?(options) ⇒ Boolean
Methods included from Utilities
#available_port, available_port_mutex, #bytes_to_kilobytes, #bytes_to_megabytes, #caller_name, #caller_path, #exception_jail, #generate_token, #hms_to_seconds, #port_available?, #rand_port, #random_seed, #regexp_array_match, #remove_constants, #seconds_to_hms
Constructor Details
#initialize(application) ⇒ ApplicationWrapper
Returns a new instance of ApplicationWrapper.
32 33 34 35 36 37 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 32 def initialize( application ) super() @application = application.instance @extended_running = false end |
Instance Attribute Details
#application ⇒ Object (readonly)
Returns the value of attribute application.
16 17 18 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 16 def application @application end |
Instance Method Details
#busy? ⇒ Bool
Returns ‘true` If the system is scanning, `false` if #run hasn’t been called yet or if the scan has finished.
46 47 48 49 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 46 def busy? ![:ready, :done, :suspended, :aborted].include?( @application.status ) && !!@extended_running end |
#clean_up ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 67 def clean_up return false if @rpc_cleaned_up @application.clean_up @rpc_cleaned_up = true @extended_running = false end |
#error_test(str) ⇒ Object
133 134 135 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 133 def error_test( str ) @application.print_error str.to_s end |
#errors(starting_line = 0) ⇒ Array<String>
80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 80 def errors( starting_line = 0 ) return [] if UI::Output.error_buffer.empty? error_strings = UI::Output.error_buffer if starting_line != 0 error_strings = error_strings[starting_line..-1] end error_strings end |
#progress(opts = {}) ⇒ Hash
Provides aggregated progress data.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 104 def progress( opts = {} ) opts = opts.my_symbolize_keys include_statistics = opts[:statistics].nil? ? true : opts[:statistics] include_errors = opts.include?( :errors ) ? (opts[:errors] || 0) : false data = { status: status, busy: @extended_running, application: @application.class.to_s, seed: Utilities.random_seed, agent_url: Cuboid::Options.agent.url, scheduler_url: Cuboid::Options.scheduler.url } if include_statistics data[:statistics] = @application.statistics end if include_errors data[:errors] = errors( include_errors.is_a?( Integer ) ? include_errors : 0 ) end data.merge( messages: ) end |
#run ⇒ Bool
Returns ‘false` if already running, `true` otherwise.
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 53 def run # Return if we're already running. return false if busy? @extended_running = true # Start the scan -- we can't block the RPC server so we're using a Thread. Thread.new do @application.run @extended_running = false end true end |
#valid_options?(options) ⇒ Boolean
39 40 41 |
# File 'lib/cuboid/rpc/server/application_wrapper.rb', line 39 def ( ) @application.class.( ) end |