Module: FDK

Defined in:
lib/fdk/runner.rb,
lib/fdk/call.rb,
lib/fdk/context.rb,
lib/fdk/version.rb,
lib/fdk/function.rb,
lib/fdk/listener.rb,
lib/fdk/support_classes.rb

Overview

Looks for call(context, input) function Executes it with input Responds with output

Defined Under Namespace

Classes: Call, Config, Context, Function, HTTPContext, InHeaders, Listener, OutHeaders, ParsedInput

Constant Summary collapse

FDK_LOG_THRESHOLD =
"FDK_LOG_THRESHOLD".freeze
FDK_LOG_DEBUG =
0
FDK_LOG_DEFAULT =
1
VERSION =
"0.0.18".freeze

Class Method Summary collapse

Class Method Details

.debug(msg) ⇒ Object



29
30
31
# File 'lib/fdk/runner.rb', line 29

def self.debug(msg)
  log(entry: msg, log_level: FDK_LOG_DEBUG)
end

.handle(target:) ⇒ Object



33
34
35
36
37
38
# File 'lib/fdk/runner.rb', line 33

def self.handle(target:)
  func = Function.new(function: target, format: ENV["FN_FORMAT"])
  Listener.new(url: ENV["FN_LISTENER"]).listen do |req, resp|
    func.call(request: req, response: resp)
  end
end

.log(entry:, log_level: FDK_LOG_DEFAULT) ⇒ Object

Writes the entry to STDERR if the log_level >= log_threshold If no log level is specified, 1 is assumed.



20
21
22
# File 'lib/fdk/runner.rb', line 20

def self.log(entry:, log_level: FDK_LOG_DEFAULT)
  STDERR.puts(entry) if log_level >= log_threshold
end

.log_error(error:) ⇒ Object



24
25
26
27
# File 'lib/fdk/runner.rb', line 24

def self.log_error(error:)
  log(entry: error.message)
  log(entry: error.backtrace.join("\n"), log_level: FDK_LOG_DEBUG)
end

.log_thresholdObject



14
15
16
# File 'lib/fdk/runner.rb', line 14

def self.log_threshold
  @log_threshold ||= ENV[FDK_LOG_THRESHOLD] ? ENV[FDK_LOG_THRESHOLD].to_i : FDK_LOG_DEFAULT
end