Sha256: 661d610cd81a15b32b7aad24c4ce332a105b18c82f2b7d1b0db0f7fbd9e13f9a
Contents?: true
Size: 976 Bytes
Versions: 2
Compression:
Stored size: 976 Bytes
Contents
module Neo module DCI class Context class << self private :new end attr_accessor :callback def self.callbacks(*args) @callbacks ||= [] @callbacks = args unless args.empty? @callbacks end def self.call(*args, &block) context = new(*args) context.callback = result_class.new(*callbacks, &block) context.call raise NoCallbackCalled, callbacks unless context.callback.called? rescue NotImplementedError raise end def self.result_class(klass = :reader) @result_class = klass unless klass == :reader defined?(@result_class) ? @result_class : ContextResult end def call raise NotImplementedError end class NoCallbackCalled < StandardError def initialize(callbacks) super("No callback called. Available callbacks: #{callbacks.join(', ')}") end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
neo-dci-0.5.1 | lib/neo/dci/context.rb |
neo-dci-0.5.0 | lib/neo/dci/context.rb |