Sha256: 8e7a6ac29456842e2caa55029052346ec7bfeaea19fb1a2a1d187e50ed625e02
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
require "contextuality/version" require "contextuality/defaults" require "contextuality/context" module Contextuality def self.included klass klass.class_eval do extend ContextualityMethods include ContextualityMethods end end def self.method_missing method, *args, &block ::Thread.current.contextuality[method] end def self.defaults ::Thread.main[:contextuality_defaults] ||= Contextuality::Defaults.new end def self.logger= logger @logger = logger end def self.log message @logger.info message if @logger end module ContextualityMethods def contextuality ::Thread.current.contextuality end end module ObjectMethods def contextualize variables = {}, &block ::Thread.current.contextuality.push variables result = block.call ::Thread.current.contextuality.pop result end end module ThreadMethods def contextuality self[:contextuality] ||= (Thread.main != self) ? Thread.main.contextuality.dup : Contextuality::Context.new end end end Object.send :include, Contextuality::ObjectMethods Thread.send :include, Contextuality::ThreadMethods
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
contextuality-1.0.3 | lib/contextuality.rb |