nydp 0.1.15 → 0.2.0
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.
- 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
|