rVM 0.0.14 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +4 -4
- data/bin/rvm +229 -0
- data/lib/rvm.rb +6 -6
- data/lib/rvm/acts_as_rvm_type.rb +26 -3
- data/lib/rvm/classes.rb +9 -15
- data/lib/rvm/classes/block.rb +8 -3
- data/lib/rvm/classes/class.rb +2 -2
- data/lib/rvm/classes/list.rb +1 -1
- data/lib/rvm/classes/null.rb +31 -0
- data/lib/rvm/classes/number.rb +4 -0
- data/lib/rvm/classes/object.rb +1 -1
- data/lib/rvm/classes/string.rb +6 -1
- data/lib/rvm/environment.rb +256 -0
- data/lib/rvm/functions.rb +9 -4
- data/lib/rvm/functions/array.rb +26 -2
- data/lib/rvm/functions/array/append.rb +31 -1
- data/lib/rvm/functions/array/at.rb +29 -1
- data/lib/rvm/functions/array/set_at.rb +29 -0
- data/lib/rvm/functions/association/assoc_get.rb +34 -0
- data/lib/rvm/functions/association/assoc_set.rb +32 -0
- data/lib/rvm/functions/bitwise.rb +3 -0
- data/lib/rvm/functions/bitwise/bitwise_and.rb +41 -0
- data/lib/rvm/functions/bitwise/bitwise_or.rb +41 -0
- data/lib/rvm/functions/bitwise/bitwise_xor.rb +41 -0
- data/lib/rvm/functions/collection/get.rb +37 -4
- data/lib/rvm/functions/collection/set.rb +37 -3
- data/lib/rvm/functions/collection/size.rb +33 -1
- data/lib/rvm/functions/general/cmp.rb +35 -7
- data/lib/rvm/functions/general/eq.rb +29 -0
- data/lib/rvm/functions/general/gt.rb +29 -0
- data/lib/rvm/functions/general/gte.rb +29 -0
- data/lib/rvm/functions/general/lt.rb +29 -0
- data/lib/rvm/functions/general/lte.rb +29 -0
- data/lib/rvm/functions/general/neq.rb +5 -0
- data/lib/rvm/functions/io/print.rb +38 -8
- data/lib/rvm/functions/list/align.rb +25 -1
- data/lib/rvm/functions/list/join.rb +27 -0
- data/lib/rvm/functions/list/map.rb +34 -0
- data/lib/rvm/functions/list/split.rb +31 -0
- data/lib/rvm/functions/logic/and.rb +36 -2
- data/lib/rvm/functions/logic/not.rb +27 -0
- data/lib/rvm/functions/logic/or.rb +32 -2
- data/lib/rvm/functions/math/add.rb +25 -0
- data/lib/rvm/functions/math/cos.rb +39 -0
- data/lib/rvm/functions/math/div.rb +25 -0
- data/lib/rvm/functions/math/mod.rb +41 -0
- data/lib/rvm/functions/math/mul.rb +25 -0
- data/lib/rvm/functions/math/neg.rb +25 -0
- data/lib/rvm/functions/math/power.rb +25 -0
- data/lib/rvm/functions/math/shl.rb +41 -0
- data/lib/rvm/functions/math/shr.rb +41 -0
- data/lib/rvm/functions/math/sin.rb +39 -0
- data/lib/rvm/functions/math/sub.rb +25 -0
- data/lib/rvm/functions/math/tan.rb +39 -0
- data/lib/rvm/functions/rails/print.rb +33 -3
- data/lib/rvm/interpreter.rb +405 -272
- data/lib/rvm/languages.rb +45 -11
- data/lib/rvm/languages/brainfuck.rb +15 -16
- data/lib/rvm/languages/ecma.rb +4 -1257
- data/lib/rvm/languages/ecma/compiler.rb +1353 -0
- data/lib/rvm/languages/ecma/core-math.js +84 -0
- data/lib/rvm/languages/math.rb +9 -16
- data/lib/rvm/languages/math/compiler.rb +9 -9
- data/lib/rvm/languages/math/tokenizer.rb +1 -1
- data/lib/rvm/languages/math/tree.rb +14 -14
- data/lib/rvm/library.rb +26 -18
- data/lib/rvm/optimisation.rb +109 -0
- data/lib/rvm/plugin.rb +109 -45
- data/lib/rvm/rails.rb +79 -54
- data/spec/classes/atom/association_spec.rb +8 -8
- data/spec/classes/atom/block_spec.rb +8 -5
- data/spec/classes/atom/boolean_spec.rb +1 -1
- data/spec/classes/atom/error_spec.rb +1 -1
- data/spec/classes/atom/list_spec.rb +1 -1
- data/spec/classes/atom/number_spec.rb +2 -2
- data/spec/classes/atom/string_spec.rb +1 -1
- data/spec/languages/ecma/ecma_spec.rb +94 -38
- data/spec/languages/ecma/json_spec.rb +4 -4
- data/spec/languages/math/compiler_spec.rb +5 -5
- data/spec/languages/math/tokenizer_spec.rb +1 -1
- data/spec/languages/math/tree_spec.rb +1 -1
- data/spec/{base → rvm}/class_spec.rb +2 -2
- data/spec/{base/interpreter → rvm}/enviroment_spec.rb +19 -9
- data/spec/{base → rvm}/function_spec.rb +2 -2
- data/spec/{functions → rvm/functions}/association/assoc_get_spec.rb +2 -2
- data/spec/{functions → rvm/functions}/association/assoc_set_spec.rb +2 -2
- data/spec/rvm/functions/collection/get_spec.rb +12 -0
- data/spec/rvm/functions/collection/set_spec.rb +10 -0
- data/spec/rvm/functions/collection/size_spec.rb +10 -0
- data/spec/{functions → rvm/functions}/list/split_spec.rb +3 -3
- data/spec/{functions → rvm/functions}/string/ansi_spec.rb +3 -3
- data/spec/{functions → rvm/functions}/string/capstr_spec.rb +3 -3
- data/spec/{functions → rvm/functions}/string/center_spec.rb +3 -3
- data/spec/{functions → rvm/functions}/string/ljust_spec.rb +3 -3
- data/spec/{functions → rvm/functions}/string/regmatch_spec.rb +3 -3
- data/spec/{functions → rvm/functions}/string/rjust_spec.rb +3 -3
- data/spec/{base → rvm}/interpreter/assignment_spec.rb +1 -1
- data/spec/rvm/interpreter/condition_spec.rb +103 -0
- data/spec/{base → rvm}/interpreter/constant_spec.rb +1 -1
- data/spec/rvm/interpreter/core_call_spec.rb +72 -0
- data/spec/{base → rvm}/interpreter/interpreter_spec.rb +1 -1
- data/spec/{base → rvm}/interpreter/parameter_spec.rb +1 -1
- data/spec/rvm/interpreter/sequence_spec.rb +47 -0
- data/spec/{base → rvm}/interpreter/variable_spec.rb +1 -1
- data/spec/{base → rvm}/plugin_spec.rb +2 -2
- metadata +66 -35
- data/lib/rake/helpers/code_statistics.rb +0 -167
- data/spec/base/interpreter/condition_spec.rb +0 -47
- data/spec/base/interpreter/function_call_spec.rb +0 -72
- data/spec/base/interpreter/sequence_spec.rb +0 -20
- data/spec/functions/collection/get_spec.rb +0 -12
- data/spec/functions/collection/set_spec.rb +0 -10
- data/spec/functions/collection/size_spec.rb +0 -10
@@ -1,72 +0,0 @@
|
|
1
|
-
require 'lib/rvm/interpreter'
|
2
|
-
require 'lib/rvm/classes/block'
|
3
|
-
|
4
|
-
class FunctionMock < RVM::Functions::Function
|
5
|
-
register_for :mock
|
6
|
-
class << self
|
7
|
-
def call *args
|
8
|
-
'result'
|
9
|
-
end
|
10
|
-
def execargs
|
11
|
-
@execargs
|
12
|
-
end
|
13
|
-
def execargs=v
|
14
|
-
@execargs = v
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class RVM::Interpreter::FunctionCall
|
20
|
-
def fun
|
21
|
-
@function
|
22
|
-
end
|
23
|
-
def fun= f
|
24
|
-
@function = f
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe RVM::Interpreter::FunctionCall do
|
29
|
-
before do
|
30
|
-
@param1 = mock('param 1 mock')
|
31
|
-
@param2 = mock('param 2 mock')
|
32
|
-
@function = mock('function mock')
|
33
|
-
@env = mock('env mock')
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
describe "(execution)" do
|
38
|
-
before do
|
39
|
-
@object = RVM::Interpreter::FunctionCall.new(@function, [@param1,@param2])
|
40
|
-
end
|
41
|
-
|
42
|
-
it "shold execute it's params when the function.execargs returns true" do
|
43
|
-
FunctionMock.execargs = true
|
44
|
-
@object = RVM::Interpreter::FunctionCall.new('mock', [@param1,@param2])
|
45
|
-
@env.should_receive(:function).once.with('mock').and_return(nil)
|
46
|
-
@param1.should_receive(:execute).once.with(@env).and_return('param 1')
|
47
|
-
@param2.should_receive(:execute).once.with(@env).and_return('param 2')
|
48
|
-
@object.execute(@env).should == 'result'
|
49
|
-
end
|
50
|
-
|
51
|
-
it "shold not execute it's params when the function.execargs returns false" do
|
52
|
-
FunctionMock.execargs = false
|
53
|
-
@object = RVM::Interpreter::FunctionCall.new('mock', [@param1,@param2])
|
54
|
-
@env.should_receive(:function).once.with('mock').and_return(nil)
|
55
|
-
@object.execute(@env).should == 'result'
|
56
|
-
end
|
57
|
-
|
58
|
-
it "should return the data type of the function" do
|
59
|
-
@function.should_receive(:data_type).once.with(no_args).and_return(:type)
|
60
|
-
@object.data_type.should == :type
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should not compare with random objects" do
|
64
|
-
@object.==(1).should be_false
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should compare with other function if args and params are true it is the same" do
|
68
|
-
@object = RVM::Interpreter::FunctionCall.new(:mock, [@param1,@param2])
|
69
|
-
@object.==(@object).should be_true
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'lib/rvm/interpreter'
|
2
|
-
|
3
|
-
describe RVM::Interpreter::Sequence do
|
4
|
-
before do
|
5
|
-
@part1 = mock('part1 mock')
|
6
|
-
@part2 = mock('part2 mock')
|
7
|
-
@env = mock('env mock')
|
8
|
-
@object = RVM::Interpreter::Sequence.new([@part1,@part2])
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should execute each part after another" do
|
12
|
-
@part1.should_receive(:execute).with(@env).once
|
13
|
-
@part2.should_receive(:execute).with(@env).once
|
14
|
-
@object.execute(@env)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should have a data_type of :any" do
|
18
|
-
@object.data_type.should == :any
|
19
|
-
end
|
20
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions'
|
2
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions/association/assoc_get'
|
3
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions/array/at'
|
4
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions/collection/get'
|
5
|
-
|
6
|
-
describe RVM::Functions::Get do
|
7
|
-
before(:each) do
|
8
|
-
@env = mock('env mock')
|
9
|
-
@function = RVM::Functions[:get]
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions'
|
2
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions/collection/set'
|
3
|
-
|
4
|
-
describe RVM::Functions::Set do
|
5
|
-
before(:each) do
|
6
|
-
@env = mock('env mock')
|
7
|
-
@function = RVM::Functions[:set]
|
8
|
-
end
|
9
|
-
|
10
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions'
|
2
|
-
require File.dirname(__FILE__) +'/../../../lib/rvm/functions/collection/size'
|
3
|
-
|
4
|
-
describe RVM::Functions::Set do
|
5
|
-
before(:each) do
|
6
|
-
@env = mock('env mock')
|
7
|
-
@function = RVM::Functions[:set]
|
8
|
-
end
|
9
|
-
|
10
|
-
end
|