Class: EasyInstaller::Sandbox
- Inherits:
-
Object
- Object
- EasyInstaller::Sandbox
- 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
-
#errors ⇒ Object
Returns the value of attribute errors.
-
#helpers ⇒ Object
Returns the value of attribute helpers.
-
#inputs ⇒ Object
Returns the value of attribute inputs.
-
#modules ⇒ Object
Returns the value of attribute modules.
Instance Method Summary collapse
- #add_helper(helper) ⇒ Object
- #add_module(mod) ⇒ Object
- #eval ⇒ Object
-
#initialize(code, params = {}) ⇒ Sandbox
constructor
A new instance of Sandbox.
- #returned ⇒ Object
- #returned_raw ⇒ Object
- #success? ⇒ Boolean
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
#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 |
#inputs ⇒ Object
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 #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 |
#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 |