module Kernel
Public Instance Methods
dynamo_context(context_name) { || ... }
click to toggle source
# File lib/dyna_mo/environment.rb, line 41 def dynamo_context(context_name, &block) raise "block is not given for dynamo_context" unless block_given? # get context, apply context and yield block ::DynaMo::Environment.synchronize do ::DynaMo::Environment.apply_environment end Thread.current[:dynamo_contexts] ||= {} Thread.current[:dynamo_contexts][context_name] = true begin yield ensure Thread.current[:dynamo_contexts].delete(context_name) end end
dynamo_define(target_name_or_instance, default_context_name, &block)
click to toggle source
# File lib/dyna_mo/environment.rb, line 30 def dynamo_define(target_name_or_instance, default_context_name, &block) raise "block is not given for dynamo_define" unless block_given? # target_name_or_instance accepts module instance, to help programmer to avoid typo target = target_name_or_instance.is_a?(Module) ? target_name_or_instance.name : target_name_or_instance.to_s ::DynaMo::Environment.synchronize do # get/create context object and evaluate block with it context = ::DynaMo::Environment.contexts(target, default_context_name) context.instance_exec(&block) end end
dynamo_super(*args)
click to toggle source
# File lib/dyna_mo/environment.rb, line 56 def dynamo_super(*args) Thread.current[:dynamo_stack].last.call(*args) end