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.
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