12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/engine/values.rb', line 12
def to_eleet_value(ruby_obj, engine, options = {})
memory = if engine.kind_of?(Memory)
engine
else
engine.memory
end
if ruby_obj.kind_of?(EleetToRubyWrapper)
ruby_obj.instance_variable_get("@eleet_obj")
elsif ruby_obj.kind_of?(String)
memory.root_namespace["String"].new_with_value(ruby_obj, memory.root_namespace)
elsif ruby_obj.kind_of?(Symbol)
memory.root_namespace["Symbol"].new_with_value(ruby_obj, memory.root_namespace)
elsif ruby_obj.kind_of?(Fixnum)
memory.root_namespace["Integer"].new_with_value(ruby_obj, memory.root_namespace)
elsif ruby_obj.kind_of?(Float)
memory.root_namespace["Float"].new_with_value(ruby_obj, memory.root_namespace)
elsif ruby_obj.kind_of?(BigDecimal)
memory.root_namespace["Integer"].new_with_value(ruby_obj.to_i, memory.root_namespace)
elsif ruby_obj.kind_of?(Proc)
memory.root_namespace["Lambda"].new_with_value(ESProc.new(ruby_obj, engine), memory.root_namespace)
elsif ruby_obj.kind_of?(RubyLambda)
ruby_obj.es_lambda
elsif ruby_obj.kind_of?(Regexp)
memory.root_namespace["Regex"].new_with_value(ESRegex.from_regex(ruby_obj), memory.root_namespace)
elsif ruby_obj.kind_of?(ESRegex)
memory.root_namespace["Regex"].new_with_value(ruby_obj, memory.root_namespace)
elsif ruby_obj.nil?
memory.root_namespace["nil"]
elsif ruby_obj == true
memory.root_namespace["true"]
elsif ruby_obj == false
memory.root_namespace["false"]
else
RubyToEleetWrapper.new(ruby_obj, engine, options)
end
end
|