hammock-ruby 0.0.1.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +132 -0
  3. data/bin/hammock +55 -0
  4. data/lib/clojure/core.clj +6872 -0
  5. data/lib/hammock.rb +0 -0
  6. data/lib/hammock/aref.rb +57 -0
  7. data/lib/hammock/array_chunk.rb +49 -0
  8. data/lib/hammock/atom.rb +50 -0
  9. data/lib/hammock/block.rb +8 -0
  10. data/lib/hammock/chunk_buffer.rb +25 -0
  11. data/lib/hammock/chunked_cons.rb +108 -0
  12. data/lib/hammock/chunked_seq.rb +97 -0
  13. data/lib/hammock/compiler.rb +197 -0
  14. data/lib/hammock/environment.rb +40 -0
  15. data/lib/hammock/errors.rb +14 -0
  16. data/lib/hammock/function.rb +187 -0
  17. data/lib/hammock/ichunked_seq.rb +23 -0
  18. data/lib/hammock/ideref.rb +5 -0
  19. data/lib/hammock/ifn.rb +10 -0
  20. data/lib/hammock/ilookup.rb +6 -0
  21. data/lib/hammock/interfaces.rb +80 -0
  22. data/lib/hammock/ipersistent_collection.rb +15 -0
  23. data/lib/hammock/ireference.rb +15 -0
  24. data/lib/hammock/iseq.rb +12 -0
  25. data/lib/hammock/lazy_sequence.rb +82 -0
  26. data/lib/hammock/lazy_transformer.rb +169 -0
  27. data/lib/hammock/list.rb +232 -0
  28. data/lib/hammock/loop_locals.rb +34 -0
  29. data/lib/hammock/map.rb +205 -0
  30. data/lib/hammock/meta.rb +12 -0
  31. data/lib/hammock/multi_method.rb +52 -0
  32. data/lib/hammock/namespace.rb +185 -0
  33. data/lib/hammock/reader.rb +570 -0
  34. data/lib/hammock/recur_locals.rb +16 -0
  35. data/lib/hammock/reduced.rb +15 -0
  36. data/lib/hammock/repl.rb +29 -0
  37. data/lib/hammock/rt.rb +580 -0
  38. data/lib/hammock/sequence.rb +59 -0
  39. data/lib/hammock/set.rb +144 -0
  40. data/lib/hammock/stream.rb +40 -0
  41. data/lib/hammock/symbol.rb +65 -0
  42. data/lib/hammock/var.rb +186 -0
  43. data/lib/hammock/vector.rb +309 -0
  44. data/lib/hammock/version.rb +3 -0
  45. data/lib/hammock/volatile.rb +19 -0
  46. data/spec/examples/data.hmk +4 -0
  47. data/spec/hammock/reader_spec.rb +242 -0
  48. data/spec/hammock/rt_spec.rb +10 -0
  49. data/spec/hammock/sequence_spec.rb +24 -0
  50. metadata +139 -0
@@ -0,0 +1,10 @@
1
+ require 'hammock/rt'
2
+
3
+ describe Hammock::RT do
4
+ describe ".resolve_path" do
5
+ it "finds this file" do
6
+ path = Hammock::RT.resolve_path("hammock/rt_spec.rb")
7
+ expect(path).to eq(Pathname.new(__FILE__))
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,24 @@
1
+ require 'hammock/sequence'
2
+
3
+ describe Hammock::Sequence do
4
+ describe '::from_array' do
5
+ it 'when empty is empty' do
6
+ empty = described_class.from_array([])
7
+ expect(empty).to eq(Hammock::EmptyList.new)
8
+ expect(empty.count).to eq(0)
9
+ expect(empty.to_a).to eq([])
10
+ end
11
+
12
+ it 'turns array of one into list of one' do
13
+ list = described_class.from_array([1])
14
+ expect(list).to be_a Hammock::Sequence
15
+ expect(list.to_a).to eq([1])
16
+ end
17
+
18
+ it 'turns an array of stuff into a linked list of that stuff' do
19
+ list = described_class.from_array([1, 2, 3])
20
+ expect(list.count).to eq(3)
21
+ expect(list.to_a).to eq [1, 2, 3]
22
+ end
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,139 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hammock-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.alpha
5
+ platform: ruby
6
+ authors:
7
+ - Joshua Davey
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hamster
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.4.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.4.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: atomic
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ description: Kind of like Clojure, but Rubyish
56
+ email:
57
+ - josh@joshuadavey.com
58
+ executables:
59
+ - hammock
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - README.md
64
+ - bin/hammock
65
+ - lib/clojure/core.clj
66
+ - lib/hammock.rb
67
+ - lib/hammock/aref.rb
68
+ - lib/hammock/array_chunk.rb
69
+ - lib/hammock/atom.rb
70
+ - lib/hammock/block.rb
71
+ - lib/hammock/chunk_buffer.rb
72
+ - lib/hammock/chunked_cons.rb
73
+ - lib/hammock/chunked_seq.rb
74
+ - lib/hammock/compiler.rb
75
+ - lib/hammock/environment.rb
76
+ - lib/hammock/errors.rb
77
+ - lib/hammock/function.rb
78
+ - lib/hammock/ichunked_seq.rb
79
+ - lib/hammock/ideref.rb
80
+ - lib/hammock/ifn.rb
81
+ - lib/hammock/ilookup.rb
82
+ - lib/hammock/interfaces.rb
83
+ - lib/hammock/ipersistent_collection.rb
84
+ - lib/hammock/ireference.rb
85
+ - lib/hammock/iseq.rb
86
+ - lib/hammock/lazy_sequence.rb
87
+ - lib/hammock/lazy_transformer.rb
88
+ - lib/hammock/list.rb
89
+ - lib/hammock/loop_locals.rb
90
+ - lib/hammock/map.rb
91
+ - lib/hammock/meta.rb
92
+ - lib/hammock/multi_method.rb
93
+ - lib/hammock/namespace.rb
94
+ - lib/hammock/reader.rb
95
+ - lib/hammock/recur_locals.rb
96
+ - lib/hammock/reduced.rb
97
+ - lib/hammock/repl.rb
98
+ - lib/hammock/rt.rb
99
+ - lib/hammock/sequence.rb
100
+ - lib/hammock/set.rb
101
+ - lib/hammock/stream.rb
102
+ - lib/hammock/symbol.rb
103
+ - lib/hammock/var.rb
104
+ - lib/hammock/vector.rb
105
+ - lib/hammock/version.rb
106
+ - lib/hammock/volatile.rb
107
+ - spec/examples/data.hmk
108
+ - spec/hammock/reader_spec.rb
109
+ - spec/hammock/rt_spec.rb
110
+ - spec/hammock/sequence_spec.rb
111
+ homepage: https://github.com/jgdavey/hammock
112
+ licenses:
113
+ - Eclipse Public License
114
+ metadata: {}
115
+ post_install_message:
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">"
127
+ - !ruby/object:Gem::Version
128
+ version: 1.3.1
129
+ requirements: []
130
+ rubyforge_project:
131
+ rubygems_version: 2.2.2
132
+ signing_key:
133
+ specification_version: 4
134
+ summary: Lisp inspired by Clojure
135
+ test_files:
136
+ - spec/examples/data.hmk
137
+ - spec/hammock/reader_spec.rb
138
+ - spec/hammock/rt_spec.rb
139
+ - spec/hammock/sequence_spec.rb