delorean_lang 0.0.40 → 0.0.42
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/delorean/base.rb +2 -0
- data/lib/delorean/error.rb +3 -0
- data/lib/delorean/functions.rb +4 -2
- data/lib/delorean/version.rb +1 -1
- data/spec/func_spec.rb +11 -0
- metadata +2 -2
data/lib/delorean/base.rb
CHANGED
data/lib/delorean/error.rb
CHANGED
data/lib/delorean/functions.rb
CHANGED
@@ -82,7 +82,8 @@ module Delorean
|
|
82
82
|
raise "Can only access date part of Infinity"
|
83
83
|
end
|
84
84
|
|
85
|
-
raise "non-time arg to TIMEPART" unless
|
85
|
+
raise "non-time arg to TIMEPART" unless
|
86
|
+
time.is_a?(DateTime) || time.is_a?(Time)
|
86
87
|
|
87
88
|
case part
|
88
89
|
when "h" then time.hour
|
@@ -159,6 +160,7 @@ module Delorean
|
|
159
160
|
uniq: [Array],
|
160
161
|
length: [[Array, String]],
|
161
162
|
flatten: [Array, [Fixnum, nil]],
|
163
|
+
slice: [Array, Fixnum, Fixnum],
|
162
164
|
}
|
163
165
|
|
164
166
|
def RUBY(_e, method, *args)
|
@@ -186,7 +188,7 @@ module Delorean
|
|
186
188
|
|
187
189
|
args[0].send(msg, *args[1, args.length])
|
188
190
|
end
|
189
|
-
|
191
|
+
|
190
192
|
RUBY_SIG = [ 1, Float::INFINITY ]
|
191
193
|
|
192
194
|
######################################################################
|
data/lib/delorean/version.rb
CHANGED
data/spec/func_spec.rb
CHANGED
@@ -217,6 +217,7 @@ describe "Delorean" do
|
|
217
217
|
" e = RUBY('sort', dd)",
|
218
218
|
" f = RUBY('uniq', e)",
|
219
219
|
" g = RUBY('length', e)",
|
220
|
+
" gg = RUBY('length', a)",
|
220
221
|
)
|
221
222
|
|
222
223
|
engine.evaluate("A", "c").should == x.flatten(1)
|
@@ -225,6 +226,16 @@ describe "Delorean" do
|
|
225
226
|
engine.evaluate("A", "e").should == dd.sort
|
226
227
|
engine.evaluate("A", "f").should == dd.sort.uniq
|
227
228
|
engine.evaluate("A", "g").should == dd.length
|
229
|
+
engine.evaluate("A", "gg").should == x.length
|
228
230
|
end
|
229
231
|
|
232
|
+
it "should handle RUBY slice function" do
|
233
|
+
x = [[1, 2, [-3]], 4, [5, 6], -3, 4, 5, 0]
|
234
|
+
|
235
|
+
engine.parse defn("A:",
|
236
|
+
" a = #{x}",
|
237
|
+
" b = RUBY('slice',a,0,4)",
|
238
|
+
)
|
239
|
+
engine.evaluate("A", "b").should == x.slice(0,4)
|
240
|
+
end
|
230
241
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delorean_lang
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.42
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: treetop
|