nydp 0.1.15 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lisp/core-015-documentation.nydp +11 -4
- data/lib/lisp/core-040-utils.nydp +3 -0
- data/lib/lisp/tests/builtin-tests.nydp +1 -1
- data/lib/lisp/tests/foundation-test.nydp +40 -0
- data/lib/lisp/tests/time-examples.nydp +21 -0
- data/lib/nydp.rb +10 -8
- data/lib/nydp/builtin.rb +3 -2
- data/lib/nydp/builtin/apply.rb +2 -2
- data/lib/nydp/builtin/car.rb +1 -1
- data/lib/nydp/builtin/cdr.rb +1 -1
- data/lib/nydp/builtin/cdr_set.rb +1 -1
- data/lib/nydp/builtin/comment.rb +2 -2
- data/lib/nydp/builtin/cons.rb +1 -1
- data/lib/nydp/builtin/date.rb +20 -0
- data/lib/nydp/builtin/divide.rb +2 -2
- data/lib/nydp/builtin/ensuring.rb +3 -3
- data/lib/nydp/builtin/error.rb +1 -1
- data/lib/nydp/builtin/eval.rb +2 -6
- data/lib/nydp/builtin/greater_than.rb +3 -3
- data/lib/nydp/builtin/handle_error.rb +2 -2
- data/lib/nydp/builtin/hash.rb +14 -20
- data/lib/nydp/builtin/inspect.rb +1 -1
- data/lib/nydp/builtin/is_equal.rb +10 -5
- data/lib/nydp/builtin/less_than.rb +3 -3
- data/lib/nydp/builtin/load_tests.rb +3 -7
- data/lib/nydp/builtin/millisecs.rb +1 -1
- data/lib/nydp/builtin/minus.rb +2 -2
- data/lib/nydp/builtin/modulo.rb +1 -1
- data/lib/nydp/builtin/parse.rb +3 -6
- data/lib/nydp/builtin/parse_in_string.rb +3 -6
- data/lib/nydp/builtin/plus.rb +3 -3
- data/lib/nydp/builtin/pre_compile.rb +2 -2
- data/lib/nydp/builtin/puts.rb +2 -2
- data/lib/nydp/builtin/random_string.rb +4 -4
- data/lib/nydp/builtin/sort.rb +1 -1
- data/lib/nydp/builtin/sqrt.rb +1 -1
- data/lib/nydp/builtin/string_match.rb +7 -10
- data/lib/nydp/builtin/string_replace.rb +1 -1
- data/lib/nydp/builtin/string_split.rb +1 -1
- data/lib/nydp/builtin/sym.rb +2 -6
- data/lib/nydp/builtin/thread_locals.rb +1 -1
- data/lib/nydp/builtin/time.rb +52 -0
- data/lib/nydp/builtin/times.rb +2 -2
- data/lib/nydp/builtin/to_string.rb +2 -2
- data/lib/nydp/builtin/type_of.rb +3 -7
- data/lib/nydp/builtin/vm_info.rb +1 -1
- data/lib/nydp/compiler.rb +2 -2
- data/lib/nydp/cond.rb +1 -1
- data/lib/nydp/core.rb +48 -48
- data/lib/nydp/function_invocation.rb +1 -1
- data/lib/nydp/helper.rb +5 -5
- data/lib/nydp/interpreted_function.rb +3 -3
- data/lib/nydp/lexical_context.rb +4 -4
- data/lib/nydp/lexical_context_builder.rb +2 -2
- data/lib/nydp/pair.rb +11 -11
- data/lib/nydp/runner.rb +2 -2
- data/lib/nydp/symbol.rb +2 -2
- data/lib/nydp/symbol_lookup.rb +1 -1
- data/lib/nydp/truth.rb +8 -11
- data/lib/nydp/version.rb +1 -1
- data/lib/nydp/vm.rb +4 -3
- data/spec/date_spec.rb +28 -20
- data/spec/error_spec.rb +1 -1
- data/spec/foreign_hash_spec.rb +12 -12
- data/spec/hash_non_hash_behaviour_spec.rb +8 -8
- data/spec/hash_spec.rb +14 -14
- data/spec/literal_spec.rb +2 -2
- data/spec/nydp_spec.rb +6 -6
- data/spec/pair_spec.rb +8 -8
- data/spec/parser_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/string_atom_spec.rb +9 -9
- data/spec/string_token_spec.rb +1 -1
- data/spec/symbol_spec.rb +9 -9
- data/spec/thread_local_spec.rb +2 -6
- data/spec/time_spec.rb +48 -0
- metadata +7 -3
- data/lib/nydp/builtin/today.rb +0 -18
data/spec/thread_local_spec.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Nydp do
|
4
|
-
let(:parser) { Nydp::Parser.new(ns) }
|
5
|
-
|
6
4
|
def run vm, txt
|
7
5
|
Nydp::Runner.new(vm, ns, Nydp::StringReader.new(txt)).run
|
8
6
|
end
|
@@ -10,9 +8,8 @@ describe Nydp do
|
|
10
8
|
it "should isolate threadlocal values" do
|
11
9
|
Nydp.setup ns
|
12
10
|
|
13
|
-
vm0 = Nydp::VM.new
|
14
|
-
vm1 = Nydp::VM.new
|
15
|
-
|
11
|
+
vm0 = Nydp::VM.new ns
|
12
|
+
vm1 = Nydp::VM.new ns
|
16
13
|
|
17
14
|
run vm0, "(hash-set (thread-locals) 'testing (+ 1 2 3))"
|
18
15
|
run vm1, "(hash-set (thread-locals) 'testing (+ 6 7 8))"
|
@@ -23,5 +20,4 @@ describe Nydp do
|
|
23
20
|
expect(val0).to eq 6
|
24
21
|
expect(val1).to eq 21
|
25
22
|
end
|
26
|
-
|
27
23
|
end
|
data/spec/time_spec.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Nydp::Date do
|
4
|
+
|
5
|
+
let(:ns) { { } }
|
6
|
+
let(:vm) { Nydp::VM.new(ns) }
|
7
|
+
let(:timef) { Nydp::Builtin::Time.instance }
|
8
|
+
|
9
|
+
it "r2n does not convert ruby Time" do
|
10
|
+
rd = Time.now
|
11
|
+
nd = Nydp.r2n rd, ns
|
12
|
+
|
13
|
+
expect(nd).to be_a Time
|
14
|
+
expect(nd).to eq rd
|
15
|
+
end
|
16
|
+
|
17
|
+
it "creates a new Time instance" do
|
18
|
+
timef.invoke vm, Nydp::Pair.from_list([2015, 11, 18, 18, 30, 17])
|
19
|
+
nd = vm.args.pop
|
20
|
+
expect(nd).to be_a Time
|
21
|
+
expect(nd).to eq Time.new(2015, 11, 18, 18, 30, 17)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "creates a new Time instance for #now" do
|
25
|
+
t0 = Time.now
|
26
|
+
timef.invoke_1 vm
|
27
|
+
nd = vm.args.pop
|
28
|
+
t1 = Time.now
|
29
|
+
expect(nd).to be_a Time
|
30
|
+
expect(nd).to be_between(t0, t1)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "creates a new Time instance for #now plus offset" do
|
34
|
+
t0 = Time.now
|
35
|
+
timef.invoke_2 vm, 3.14
|
36
|
+
nd = vm.args.pop
|
37
|
+
t1 = Time.now
|
38
|
+
expect(nd).to be_a Time
|
39
|
+
expect(nd).to be_between((t0 + 3.14), (t1 + 3.14))
|
40
|
+
end
|
41
|
+
|
42
|
+
it "creates a new Time instance for a given Date" do
|
43
|
+
timef.invoke_2 vm, Nydp::Date.new(Date.parse "2006-06-21")
|
44
|
+
nd = vm.args.pop
|
45
|
+
expect(nd).to be_a Time
|
46
|
+
expect(nd).to eq Time.new(2006, 6, 21)
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nydp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Conan Dalton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- lib/lisp/tests/sort-examples.nydp
|
144
144
|
- lib/lisp/tests/string-tests.nydp
|
145
145
|
- lib/lisp/tests/syntax-tests.nydp
|
146
|
+
- lib/lisp/tests/time-examples.nydp
|
146
147
|
- lib/lisp/tests/tuples-examples.nydp
|
147
148
|
- lib/lisp/tests/type-of-examples.nydp
|
148
149
|
- lib/lisp/tests/unparse-tests.nydp
|
@@ -155,6 +156,7 @@ files:
|
|
155
156
|
- lib/nydp/builtin/cdr_set.rb
|
156
157
|
- lib/nydp/builtin/comment.rb
|
157
158
|
- lib/nydp/builtin/cons.rb
|
159
|
+
- lib/nydp/builtin/date.rb
|
158
160
|
- lib/nydp/builtin/divide.rb
|
159
161
|
- lib/nydp/builtin/ensuring.rb
|
160
162
|
- lib/nydp/builtin/error.rb
|
@@ -183,9 +185,9 @@ files:
|
|
183
185
|
- lib/nydp/builtin/string_split.rb
|
184
186
|
- lib/nydp/builtin/sym.rb
|
185
187
|
- lib/nydp/builtin/thread_locals.rb
|
188
|
+
- lib/nydp/builtin/time.rb
|
186
189
|
- lib/nydp/builtin/times.rb
|
187
190
|
- lib/nydp/builtin/to_string.rb
|
188
|
-
- lib/nydp/builtin/today.rb
|
189
191
|
- lib/nydp/builtin/type_of.rb
|
190
192
|
- lib/nydp/builtin/vm_info.rb
|
191
193
|
- lib/nydp/closure.rb
|
@@ -231,6 +233,7 @@ files:
|
|
231
233
|
- spec/string_token_spec.rb
|
232
234
|
- spec/symbol_spec.rb
|
233
235
|
- spec/thread_local_spec.rb
|
236
|
+
- spec/time_spec.rb
|
234
237
|
homepage: http://github.com/conanite/nydp
|
235
238
|
licenses:
|
236
239
|
- MIT
|
@@ -271,3 +274,4 @@ test_files:
|
|
271
274
|
- spec/string_token_spec.rb
|
272
275
|
- spec/symbol_spec.rb
|
273
276
|
- spec/thread_local_spec.rb
|
277
|
+
- spec/time_spec.rb
|
data/lib/nydp/builtin/today.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
class Nydp::Builtin::Today
|
2
|
-
include Nydp::Helper, Nydp::Builtin::Base
|
3
|
-
|
4
|
-
def builtin_invoke vm, args
|
5
|
-
vm.push_arg(Nydp::Date.new Date.today)
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
class Nydp::Builtin::Date
|
10
|
-
include Nydp::Helper, Nydp::Builtin::Base
|
11
|
-
|
12
|
-
def builtin_invoke vm, args
|
13
|
-
y = args.car
|
14
|
-
m = args.cdr.car
|
15
|
-
d = args.cdr.cdr.car
|
16
|
-
vm.push_arg(Nydp::Date.new Date.new(y,m,d))
|
17
|
-
end
|
18
|
-
end
|