Class: EasyInstaller::Sandbox
- Inherits:
-
Object
- Object
- EasyInstaller::Sandbox
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
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
#errors ⇒ Object
Returns the value of attribute errors.
11
12
13
|
# File 'lib/easy_installer/sandbox.rb', line 11
def errors
@errors
end
|
#helpers ⇒ Object
Returns the value of attribute helpers.
9
10
11
|
# File 'lib/easy_installer/sandbox.rb', line 9
def helpers
@helpers
end
|
Returns the value of attribute inputs.
10
11
12
|
# File 'lib/easy_installer/sandbox.rb', line 10
def inputs
@inputs
end
|
#modules ⇒ Object
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
|
#eval ⇒ Object
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
@modules.each do |mod|
extend mod::EvalInstanceMethods
@code = "#{mod.beforecode}
#{@code}
#{mod.aftercode}"
run.extend(mod::IncludedCode)
end
@code = "result = []
#{@code}
return result"
@helpers.each do |single_module|
run.extend single_module
end
@code = CoffeeScript.compile @code if @params[:coffee_script] == true
V8::Context.new(:with => run) do |cxt|
@returned = cxt.eval(@code)
end
return true
end
|
#returned ⇒ Object
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_raw ⇒ Object
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
68
69
70
|
# File 'lib/easy_installer/sandbox.rb', line 68
def success?
@success
end
|