Class: Arkaan::Utils::MicroService
- Inherits:
-
Object
- Object
- Arkaan::Utils::MicroService
- Includes:
- Singleton
- Defined in:
- lib/arkaan/utils/micro_service.rb
Overview
This class is a singleton to load and save parameters for the whole application.
Instance Attribute Summary collapse
-
#instance ⇒ Object
readonly
Returns the value of attribute instance.
-
#location ⇒ Object
readonly
Returns the value of attribute location.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#service ⇒ Object
readonly
Returns the value of attribute service.
Instance Method Summary collapse
-
#deactivate ⇒ Object
Deactivates the current instance and the associated service if no more instances are available.
-
#from_location(filename) ⇒ Arkaan::utils::MicroService
Sets the location of the file calling the micro service and initializing it so that it’s used as root.
-
#in_standard_mode ⇒ Arkaan::utils::MicroService
Loads the application in standard (production/development) mode, without the test files.
-
#in_test_mode ⇒ Arkaan::utils::MicroService
Loads the application in test mode, by adding the needed files to run the test suite to the standard loading process.
-
#in_websocket_mode ⇒ Arkaan::utils::MicroService
Loads the application as a websockets service.
-
#initialize ⇒ MicroService
constructor
A new instance of MicroService.
-
#loadable? ⇒ Boolean
Determines if the application can be loaded (all the parameters have been correctly set).
-
#path ⇒ String, Boolean
Getter for the path on which the service is mapped.
-
#register_as(service_name) ⇒ Arkaan::utils::MicroService
Look for the service and sets it if it’s found in the database, or set it to nil if not found.
Constructor Details
#initialize ⇒ MicroService
Returns a new instance of MicroService.
21 22 23 24 25 |
# File 'lib/arkaan/utils/micro_service.rb', line 21 def initialize @location = false @service = false @name = false end |
Instance Attribute Details
#instance ⇒ Object (readonly)
Returns the value of attribute instance.
19 20 21 |
# File 'lib/arkaan/utils/micro_service.rb', line 19 def instance @instance end |
#location ⇒ Object (readonly)
Returns the value of attribute location.
13 14 15 |
# File 'lib/arkaan/utils/micro_service.rb', line 13 def location @location end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
10 |
# File 'lib/arkaan/utils/micro_service.rb', line 10 attr_reader :service |
#service ⇒ Object (readonly)
Returns the value of attribute service.
10 11 12 |
# File 'lib/arkaan/utils/micro_service.rb', line 10 def service @service end |
Instance Method Details
#deactivate ⇒ Object
Deactivates the current instance and the associated service if no more instances are available.
79 80 81 82 83 84 85 |
# File 'lib/arkaan/utils/micro_service.rb', line 79 def deactivate instance.update_attribute(:running, false) service.reload if service.instances.where(running: true).count == 0 service.update_attribute(:active, false) end end |
#from_location(filename) ⇒ Arkaan::utils::MicroService
Sets the location of the file calling the micro service and initializing it so that it’s used as root.
50 51 52 53 |
# File 'lib/arkaan/utils/micro_service.rb', line 50 def from_location(filename) @location = File.dirname(filename) return self end |
#in_standard_mode ⇒ Arkaan::utils::MicroService
Loads the application in standard (production/development) mode, without the test files.
57 58 59 |
# File 'lib/arkaan/utils/micro_service.rb', line 57 def in_standard_mode return load_application(test_mode: false) end |
#in_test_mode ⇒ Arkaan::utils::MicroService
Loads the application in test mode, by adding the needed files to run the test suite to the standard loading process.
63 64 65 66 |
# File 'lib/arkaan/utils/micro_service.rb', line 63 def in_test_mode @location = File.join(location, '..') return load_application(test_mode: true) end |
#in_websocket_mode ⇒ Arkaan::utils::MicroService
Loads the application as a websockets service. Only the websockets application should use that.
70 71 72 73 74 75 76 |
# File 'lib/arkaan/utils/micro_service.rb', line 70 def in_websocket_mode load_mongoid_configuration load_standard_files Arkaan::Monitoring::Websocket.find_or_create_by(url: ENV['WEBSOCKET_URL']).save return self end |
#loadable? ⇒ Boolean
Determines if the application can be loaded (all the parameters have been correctly set)
29 30 31 |
# File 'lib/arkaan/utils/micro_service.rb', line 29 def loadable? return !!(service && location) end |
#path ⇒ String, Boolean
Getter for the path on which the service is mapped.
35 36 37 |
# File 'lib/arkaan/utils/micro_service.rb', line 35 def path return service ? service.path : false end |
#register_as(service_name) ⇒ Arkaan::utils::MicroService
Look for the service and sets it if it’s found in the database, or set it to nil if not found.
42 43 44 45 |
# File 'lib/arkaan/utils/micro_service.rb', line 42 def register_as(service_name) @name = service_name return self end |