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