Class: EasyInstaller::Sandbox

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_installer/sandbox.rb,
lib/easy_installer/autoload.rb,
lib/easy_installer/sandbox_modules/message.rb

Defined Under Namespace

Modules: Message Classes: Result, Runner

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code, params = {}) ⇒ Sandbox

Returns a new instance of Sandbox.



13
14
15
16
17
18
19
20
21
22
# File 'lib/easy_installer/sandbox.rb', line 13

def initialize(code, params = {})
  @code = code
  @helpers = []
  @inputs = {}
			@modules = []
			@params = {
:coffee_script => true
			}
			@params.merge!(params)
end

Instance Attribute Details

#errorsObject

Returns the value of attribute errors.



11
12
13
# File 'lib/easy_installer/sandbox.rb', line 11

def errors
  @errors
end

#helpersObject

Returns the value of attribute helpers.



9
10
11
# File 'lib/easy_installer/sandbox.rb', line 9

def helpers
  @helpers
end

#inputsObject

Returns the value of attribute inputs.



10
11
12
# File 'lib/easy_installer/sandbox.rb', line 10

def inputs
  @inputs
end

#modulesObject

Returns the value of attribute modules.



8
9
10
# File 'lib/easy_installer/sandbox.rb', line 8

def modules
  @modules
end

Instance Method Details

#add_helper(helper) ⇒ Object



28
29
30
# File 'lib/easy_installer/sandbox.rb', line 28

def add_helper(helper)
	@helpers << helper
end

#add_module(mod) ⇒ Object



24
25
26
# File 'lib/easy_installer/sandbox.rb', line 24

def add_module(mod)
	@modules << mod
end

#evalObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/easy_installer/sandbox.rb', line 32

def eval
  run = Runner.new
  run.inputs = @inputs
			#include modules
			@modules.each do |mod|
extend mod::EvalInstanceMethods
@code = "#{mod.beforecode}
#{@code}
#{mod.aftercode}"
run.extend(mod::IncludedCode)
			end
			#include return code
@code = "result = []
#{@code}
return result"			
			#include helpers      
			@helpers.each do |single_module|
    run.extend single_module
  end
			#compile to coffeescript
			@code = CoffeeScript.compile @code if @params[:coffee_script] == true
			#eval code
			V8::Context.new(:with => run) do |cxt|
@returned = cxt.eval(@code)
			end
			return true
end

#returnedObject



60
61
62
63
64
65
66
# File 'lib/easy_installer/sandbox.rb', line 60

def returned
	unless @returned
		raise "First eval Code"
	end
	@returned_packed =  Result.new(@returned, @modules) 
	@returned_packed
end

#returned_rawObject



71
72
73
74
75
76
# File 'lib/easy_installer/sandbox.rb', line 71

def returned_raw
	unless @returned
		raise "First eval Code"
	end
	@returned
end

#success?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/easy_installer/sandbox.rb', line 68

def success?
	@success
end