class Balmora::Contexts
Public Class Methods
factory(state)
click to toggle source
# File lib/balmora/contexts.rb, line 3 def self.factory(state) return self.new(state.logger, state.extension, state.variables, state) end
new(logger, extension, variables, state)
click to toggle source
# File lib/balmora/contexts.rb, line 7 def initialize(logger, extension, variables, state) @state = state @logger = logger @extension = extension @variables = variables end
Public Instance Methods
_check_array(contexts)
click to toggle source
# File lib/balmora/contexts.rb, line 45 def _check_array(contexts) operator = :and result = true contexts.each() { |context| if context == 'or' operator = :or next end if operator == :or result = result || check(context) operator = :and else if !result next end result = result && check(context) end } return result end
check(context)
click to toggle source
# File lib/balmora/contexts.rb, line 14 def check(context) if context.nil?() return true end if context.instance_of?(::Array) return _check_array(context) end if context.instance_of?(::String) context = { context: 'exec-result', exec: context, operator: 'equal', operand: 0, } end context_class = @extension.get(Balmora::Context, context[:context]) context_instance = context_class.new(@state, context) context_instance.init() if !(context_class < Balmora::Context) raise Error.new("Context #{context_class} should be subclass of context") end context_instance.verify() result = context_instance.execute() return result end