class CaptainHoog::Test::Sandbox
Attributes
configuration[R]
plugin[R]
Public Class Methods
new(raw_plugin, config = {})
click to toggle source
# File lib/captain_hoog/test/sandbox.rb, line 61 def initialize(raw_plugin, config = {}) @raw_plugin = guess_plugin(raw_plugin) @configuration = config init_plugin end
Public Instance Methods
result()
click to toggle source
# File lib/captain_hoog/test/sandbox.rb, line 70 def result eigenplugin = self.send(:eigenplugin) git = eigenplugin.instance_variable_get(:@git) { test: git.instance_variable_get(:@test_result), message: git.instance_variable_get(:@message).call } end
run()
click to toggle source
# File lib/captain_hoog/test/sandbox.rb, line 67 def run @plugin = @pre_git.fake_plugin mod = Module.new do def result eigenplugin = self.send(:eigenplugin) git = eigenplugin.instance_variable_get(:@git) { test: git.instance_variable_get(:@test_result), message: git.instance_variable_get(:@message).call } end end @plugin.extend(mod) end
Private Instance Methods
guess_plugin(plugin_code)
click to toggle source
# File lib/captain_hoog/test/sandbox.rb, line 91 def guess_plugin(plugin_code) prefix = 'CaptainHoog::Test::PluginStrategies' types = %w(File String NullObject) strategies = types.inject([]) do |result, strategy| result << Module.const_get("#{prefix}::#{strategy}").new(plugin_code) result end strategies.detect(&:match?).to_s end
init_plugin()
click to toggle source
# File lib/captain_hoog/test/sandbox.rb, line 84 def init_plugin @pre_git = CaptainHoog::PreGit.new @pre_git.extend(CaptainHoog::Test::Sandbox::FakePlugin) @pre_git.fake(with_plugin: @raw_plugin, config: configuration) @pre_git.plugins_eval end