nydp 0.1.15 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lisp/core-015-documentation.nydp +11 -4
  3. data/lib/lisp/core-040-utils.nydp +3 -0
  4. data/lib/lisp/tests/builtin-tests.nydp +1 -1
  5. data/lib/lisp/tests/foundation-test.nydp +40 -0
  6. data/lib/lisp/tests/time-examples.nydp +21 -0
  7. data/lib/nydp.rb +10 -8
  8. data/lib/nydp/builtin.rb +3 -2
  9. data/lib/nydp/builtin/apply.rb +2 -2
  10. data/lib/nydp/builtin/car.rb +1 -1
  11. data/lib/nydp/builtin/cdr.rb +1 -1
  12. data/lib/nydp/builtin/cdr_set.rb +1 -1
  13. data/lib/nydp/builtin/comment.rb +2 -2
  14. data/lib/nydp/builtin/cons.rb +1 -1
  15. data/lib/nydp/builtin/date.rb +20 -0
  16. data/lib/nydp/builtin/divide.rb +2 -2
  17. data/lib/nydp/builtin/ensuring.rb +3 -3
  18. data/lib/nydp/builtin/error.rb +1 -1
  19. data/lib/nydp/builtin/eval.rb +2 -6
  20. data/lib/nydp/builtin/greater_than.rb +3 -3
  21. data/lib/nydp/builtin/handle_error.rb +2 -2
  22. data/lib/nydp/builtin/hash.rb +14 -20
  23. data/lib/nydp/builtin/inspect.rb +1 -1
  24. data/lib/nydp/builtin/is_equal.rb +10 -5
  25. data/lib/nydp/builtin/less_than.rb +3 -3
  26. data/lib/nydp/builtin/load_tests.rb +3 -7
  27. data/lib/nydp/builtin/millisecs.rb +1 -1
  28. data/lib/nydp/builtin/minus.rb +2 -2
  29. data/lib/nydp/builtin/modulo.rb +1 -1
  30. data/lib/nydp/builtin/parse.rb +3 -6
  31. data/lib/nydp/builtin/parse_in_string.rb +3 -6
  32. data/lib/nydp/builtin/plus.rb +3 -3
  33. data/lib/nydp/builtin/pre_compile.rb +2 -2
  34. data/lib/nydp/builtin/puts.rb +2 -2
  35. data/lib/nydp/builtin/random_string.rb +4 -4
  36. data/lib/nydp/builtin/sort.rb +1 -1
  37. data/lib/nydp/builtin/sqrt.rb +1 -1
  38. data/lib/nydp/builtin/string_match.rb +7 -10
  39. data/lib/nydp/builtin/string_replace.rb +1 -1
  40. data/lib/nydp/builtin/string_split.rb +1 -1
  41. data/lib/nydp/builtin/sym.rb +2 -6
  42. data/lib/nydp/builtin/thread_locals.rb +1 -1
  43. data/lib/nydp/builtin/time.rb +52 -0
  44. data/lib/nydp/builtin/times.rb +2 -2
  45. data/lib/nydp/builtin/to_string.rb +2 -2
  46. data/lib/nydp/builtin/type_of.rb +3 -7
  47. data/lib/nydp/builtin/vm_info.rb +1 -1
  48. data/lib/nydp/compiler.rb +2 -2
  49. data/lib/nydp/cond.rb +1 -1
  50. data/lib/nydp/core.rb +48 -48
  51. data/lib/nydp/function_invocation.rb +1 -1
  52. data/lib/nydp/helper.rb +5 -5
  53. data/lib/nydp/interpreted_function.rb +3 -3
  54. data/lib/nydp/lexical_context.rb +4 -4
  55. data/lib/nydp/lexical_context_builder.rb +2 -2
  56. data/lib/nydp/pair.rb +11 -11
  57. data/lib/nydp/runner.rb +2 -2
  58. data/lib/nydp/symbol.rb +2 -2
  59. data/lib/nydp/symbol_lookup.rb +1 -1
  60. data/lib/nydp/truth.rb +8 -11
  61. data/lib/nydp/version.rb +1 -1
  62. data/lib/nydp/vm.rb +4 -3
  63. data/spec/date_spec.rb +28 -20
  64. data/spec/error_spec.rb +1 -1
  65. data/spec/foreign_hash_spec.rb +12 -12
  66. data/spec/hash_non_hash_behaviour_spec.rb +8 -8
  67. data/spec/hash_spec.rb +14 -14
  68. data/spec/literal_spec.rb +2 -2
  69. data/spec/nydp_spec.rb +6 -6
  70. data/spec/pair_spec.rb +8 -8
  71. data/spec/parser_spec.rb +1 -1
  72. data/spec/spec_helper.rb +1 -1
  73. data/spec/string_atom_spec.rb +9 -9
  74. data/spec/string_token_spec.rb +1 -1
  75. data/spec/symbol_spec.rb +9 -9
  76. data/spec/thread_local_spec.rb +2 -6
  77. data/spec/time_spec.rb +48 -0
  78. metadata +7 -3
  79. data/lib/nydp/builtin/today.rb +0 -18
@@ -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.1.15
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-04-23 00:00:00.000000000 Z
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
@@ -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