Module: Semian::NetHTTP
- Includes:
- Adapter
- Defined in:
- lib/semian/net_http.rb
Constant Summary collapse
- ResourceBusyError =
::Net::ResourceBusyError
- CircuitOpenError =
::Net::CircuitOpenError
- DEFAULT_ERRORS =
[ ::Timeout::Error, # includes ::Net::ReadTimeout and ::Net::OpenTimeout ::TimeoutError, # alias for above ::SocketError, ::Net::HTTPBadResponse, ::Net::HTTPHeaderSyntaxError, ::Net::ProtocolError, ::EOFError, ::IOError, ::SystemCallError, # includes ::Errno::EINVAL, ::Errno::ECONNRESET, ::Errno::ECONNREFUSED, ::Errno::ETIMEDOUT, and more ].freeze
Class Attribute Summary collapse
-
.exceptions ⇒ Object
Returns the value of attribute exceptions.
-
.semian_configuration ⇒ Object
Returns the value of attribute semian_configuration.
Class Method Summary collapse
-
.included(base) ⇒ Object
The naked methods are exposed as ‘raw_query` and `raw_connect` for instrumentation purpose.
- .reset_exceptions ⇒ Object
- .retrieve_semian_configuration(host, port) ⇒ Object
Instance Method Summary collapse
- #connect ⇒ Object
- #disabled? ⇒ Boolean
- #raw_semian_options ⇒ Object
- #request(req, body = nil, &block) ⇒ Object
- #resource_exceptions ⇒ Object
- #semian_configuration ⇒ Object
- #semian_identifier ⇒ Object
Methods included from Adapter
Class Attribute Details
.exceptions ⇒ Object
Returns the value of attribute exceptions.
56 57 58 |
# File 'lib/semian/net_http.rb', line 56 def exceptions @exceptions end |
.semian_configuration ⇒ Object
Returns the value of attribute semian_configuration.
55 56 57 |
# File 'lib/semian/net_http.rb', line 55 def semian_configuration @semian_configuration end |
Class Method Details
.included(base) ⇒ Object
The naked methods are exposed as ‘raw_query` and `raw_connect` for instrumentation purpose
46 47 48 49 50 51 52 |
# File 'lib/semian/net_http.rb', line 46 def self.included(base) base.send(:alias_method, :raw_request, :request) base.send(:remove_method, :request) base.send(:alias_method, :raw_connect, :connect) base.send(:remove_method, :connect) end |
.reset_exceptions ⇒ Object
62 63 64 |
# File 'lib/semian/net_http.rb', line 62 def reset_exceptions self.exceptions = Semian::NetHTTP::DEFAULT_ERRORS.dup end |
.retrieve_semian_configuration(host, port) ⇒ Object
58 59 60 |
# File 'lib/semian/net_http.rb', line 58 def retrieve_semian_configuration(host, port) @semian_configuration.call(host, port) if @semian_configuration.respond_to?(:call) end |
Instance Method Details
#connect ⇒ Object
83 84 85 86 |
# File 'lib/semian/net_http.rb', line 83 def connect return raw_connect if disabled? acquire_semian_resource(adapter: :http, scope: :connection) { raw_connect } end |
#disabled? ⇒ Boolean
79 80 81 |
# File 'lib/semian/net_http.rb', line 79 def disabled? semian_configuration.nil? end |
#raw_semian_options ⇒ Object
69 70 71 72 73 |
# File 'lib/semian/net_http.rb', line 69 def = semian_configuration = .dup unless .nil? end |
#request(req, body = nil, &block) ⇒ Object
88 89 90 91 |
# File 'lib/semian/net_http.rb', line 88 def request(req, body = nil, &block) return raw_request(req, body, &block) if disabled? acquire_semian_resource(adapter: :http, scope: :query) { raw_request(req, body, &block) } end |
#resource_exceptions ⇒ Object
75 76 77 |
# File 'lib/semian/net_http.rb', line 75 def resource_exceptions Semian::NetHTTP.exceptions end |
#semian_configuration ⇒ Object
25 26 27 |
# File 'lib/semian/net_http.rb', line 25 def semian_configuration Semian::NetHTTP.retrieve_semian_configuration(address, port) end |
#semian_identifier ⇒ Object
29 30 31 |
# File 'lib/semian/net_http.rb', line 29 def semian_identifier "nethttp_#{semian_configuration[:name]}" end |