Class: MacawFramework::Macaw
- Inherits:
-
Object
- Object
- MacawFramework::Macaw
- Defined in:
- lib/macaw_framework/macaw.rb,
sig/macaw_framework/macaw.rbs
Overview
Class responsible for creating endpoints and starting the web server.
Instance Attribute Summary collapse
-
#bind ⇒ String
Returns the value of attribute bind.
-
#cached_methods ⇒ Object
readonly
Returns the value of attribute cached_methods.
-
#config ⇒ Hash[String, untyped]
readonly
Returns the value of attribute config.
-
#jobs ⇒ Array[String]
readonly
Returns the value of attribute jobs.
-
#keep_alive_timeout ⇒ Object
readonly
Returns the value of attribute keep_alive_timeout.
-
#macaw_log ⇒ Logger?
readonly
Returns the value of attribute macaw_log.
-
#max_body_size ⇒ Object
readonly
Returns the value of attribute max_body_size.
-
#port ⇒ Integer
Returns the value of attribute port.
-
#routes ⇒ Array[String]
readonly
Returns the value of attribute routes.
-
#threads ⇒ Integer
Returns the value of attribute threads.
Instance Method Summary collapse
-
#delete(path, cache: [], &block) ⇒ nil
Creates a DELETE endpoint associated with the respective path.
- #extract_body ⇒ string
- #extract_client_info ⇒ nil
- #extract_headers ⇒ string
-
#get(path, cache: [], &block) ⇒ nil
Creates a GET endpoint associated with the respective path.
-
#initialize(custom_log: Logger.new($stdout), server: ThreadServer, dir: nil) ⇒ Macaw
constructor
Initialize Macaw Class.
-
#patch(path, cache: [], &block) ⇒ nil
Creates a PATCH endpoint associated with the respective path.
-
#post(path, cache: [], &block) ⇒ nil
Creates a POST endpoint associated with the respective path.
-
#put(path, cache: [], &block) ⇒ nil
Creates a PUT endpoint associated with the respective path.
- #setup_job ⇒ nil
-
#start! ⇒ nil
Starts the web server.
Constructor Details
#initialize(custom_log: Logger.new($stdout), server: ThreadServer, dir: nil) ⇒ Macaw
Initialize Macaw Class
31 32 33 34 35 36 |
# File 'lib/macaw_framework/macaw.rb', line 31 def initialize(custom_log: Logger.new($stdout), server: ThreadServer, dir: nil) (custom_log) create_endpoint_public_files(dir) setup_default_configs @server_class = server end |
Instance Attribute Details
#bind ⇒ String
Returns the value of attribute bind.
24 25 26 |
# File 'lib/macaw_framework/macaw.rb', line 24 def bind @bind end |
#cached_methods ⇒ Object (readonly)
Returns the value of attribute cached_methods.
23 24 25 |
# File 'lib/macaw_framework/macaw.rb', line 23 def cached_methods @cached_methods end |
#config ⇒ Hash[String, untyped] (readonly)
Returns the value of attribute config.
23 24 25 |
# File 'lib/macaw_framework/macaw.rb', line 23 def config @config end |
#jobs ⇒ Array[String] (readonly)
Returns the value of attribute jobs.
22 23 24 |
# File 'sig/macaw_framework/macaw.rbs', line 22 def jobs @jobs end |
#keep_alive_timeout ⇒ Object (readonly)
Returns the value of attribute keep_alive_timeout.
23 24 25 |
# File 'lib/macaw_framework/macaw.rb', line 23 def keep_alive_timeout @keep_alive_timeout end |
#macaw_log ⇒ Logger? (readonly)
Returns the value of attribute macaw_log.
23 24 25 |
# File 'lib/macaw_framework/macaw.rb', line 23 def macaw_log @macaw_log end |
#max_body_size ⇒ Object (readonly)
Returns the value of attribute max_body_size.
23 24 25 |
# File 'lib/macaw_framework/macaw.rb', line 23 def max_body_size @max_body_size end |
#port ⇒ Integer
Returns the value of attribute port.
24 25 26 |
# File 'lib/macaw_framework/macaw.rb', line 24 def port @port end |
#routes ⇒ Array[String] (readonly)
Returns the value of attribute routes.
23 24 25 |
# File 'lib/macaw_framework/macaw.rb', line 23 def routes @routes end |
#threads ⇒ Integer
Returns the value of attribute threads.
24 25 26 |
# File 'lib/macaw_framework/macaw.rb', line 24 def threads @threads end |
Instance Method Details
#delete(path, cache: [], &block) ⇒ nil
Creates a DELETE endpoint associated with the respective path.
115 116 117 |
# File 'lib/macaw_framework/macaw.rb', line 115 def delete(path, cache: [], &block) map_new_endpoint('delete', cache, path, &block) end |
#extract_body ⇒ string
44 |
# File 'sig/macaw_framework/macaw.rbs', line 44 def extract_body: -> string |
#extract_client_info ⇒ nil
46 |
# File 'sig/macaw_framework/macaw.rbs', line 46 def extract_client_info: -> nil |
#extract_headers ⇒ string
48 |
# File 'sig/macaw_framework/macaw.rbs', line 48 def extract_headers: -> string |
#get(path, cache: [], &block) ⇒ nil
Creates a GET endpoint associated with the respective path.
50 51 52 |
# File 'lib/macaw_framework/macaw.rb', line 50 def get(path, cache: [], &block) map_new_endpoint('get', cache, path, &block) end |
#patch(path, cache: [], &block) ⇒ nil
Creates a PATCH endpoint associated with the respective path.
99 100 101 |
# File 'lib/macaw_framework/macaw.rb', line 99 def patch(path, cache: [], &block) map_new_endpoint('patch', cache, path, &block) end |
#post(path, cache: [], &block) ⇒ nil
Creates a POST endpoint associated with the respective path.
67 68 69 |
# File 'lib/macaw_framework/macaw.rb', line 67 def post(path, cache: [], &block) map_new_endpoint('post', cache, path, &block) end |
#put(path, cache: [], &block) ⇒ nil
Creates a PUT endpoint associated with the respective path.
83 84 85 |
# File 'lib/macaw_framework/macaw.rb', line 83 def put(path, cache: [], &block) map_new_endpoint('put', cache, path, &block) end |
#setup_job ⇒ nil
38 |
# File 'sig/macaw_framework/macaw.rbs', line 38 def setup_job: -> nil |
#start! ⇒ nil
Starts the web server
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/macaw_framework/macaw.rb', line 121 def start! if @macaw_log.nil? puts('---------------------------------') puts("Starting server at port #{@port}") puts("Number of threads: #{@threads}") puts('---------------------------------') else @macaw_log.info('---------------------------------') @macaw_log.info("Starting server at port #{@port}") @macaw_log.info("Number of threads: #{@threads}") @macaw_log.info('---------------------------------') end @server = @server_class.new(self, @endpoints_to_cache, @cache) Signal.trap('TERM') { raise Interrupt } server_loop(@server) rescue Interrupt if @macaw_log.nil? puts('Stopping server') @server.shutdown puts('Macaw stop flying for some seeds...') else @macaw_log.info('Stopping server') @server.shutdown @macaw_log.info('Macaw stop flying for some seeds...') end end |