erlang-terms 1.1.0 → 2.0.1
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/.coveralls.yml +1 -0
- data/.editorconfig +20 -0
- data/.gitignore +10 -18
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +15 -3
- data/.yardopts +6 -0
- data/CHANGELOG.md +9 -0
- data/Gemfile +21 -1
- data/LICENSE.txt +1 -1
- data/README.md +95 -17
- data/Rakefile +8 -3
- data/erlang-terms.gemspec +14 -11
- data/lib/erlang-terms.rb +1 -0
- data/lib/erlang/associable.rb +98 -0
- data/lib/erlang/atom.rb +257 -0
- data/lib/erlang/binary.rb +425 -0
- data/lib/erlang/bitstring.rb +464 -0
- data/lib/erlang/cons.rb +122 -0
- data/lib/erlang/enumerable.rb +160 -0
- data/lib/erlang/error.rb +4 -0
- data/lib/erlang/export.rb +110 -12
- data/lib/erlang/float.rb +201 -0
- data/lib/erlang/function.rb +259 -0
- data/lib/erlang/immutable.rb +101 -0
- data/lib/erlang/list.rb +1685 -24
- data/lib/erlang/map.rb +935 -21
- data/lib/erlang/nil.rb +73 -10
- data/lib/erlang/pid.rb +120 -18
- data/lib/erlang/port.rb +123 -0
- data/lib/erlang/reference.rb +161 -0
- data/lib/erlang/string.rb +175 -3
- data/lib/erlang/term.rb +24 -0
- data/lib/erlang/terms.rb +324 -8
- data/lib/erlang/terms/version.rb +1 -1
- data/lib/erlang/trie.rb +364 -0
- data/lib/erlang/tuple.rb +1582 -14
- data/lib/erlang/undefined.rb +32 -0
- metadata +49 -71
- data/spec/erlang/export_spec.rb +0 -17
- data/spec/erlang/list_spec.rb +0 -39
- data/spec/erlang/map_spec.rb +0 -24
- data/spec/erlang/nil_spec.rb +0 -18
- data/spec/erlang/pid_spec.rb +0 -21
- data/spec/erlang/string_spec.rb +0 -11
- data/spec/erlang/terms_spec.rb +0 -7
- data/spec/erlang/tuple_spec.rb +0 -20
- data/spec/spec_helper.rb +0 -7
@@ -0,0 +1,32 @@
|
|
1
|
+
module Erlang
|
2
|
+
# Licensing
|
3
|
+
# =========
|
4
|
+
#
|
5
|
+
# Portions taken and modified from https://github.com/hamstergem/hamster
|
6
|
+
#
|
7
|
+
# Copyright (c) 2009-2014 Simon Harris
|
8
|
+
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
23
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
24
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
25
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
26
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
# @private
|
29
|
+
module Undefined
|
30
|
+
end
|
31
|
+
Undefined.freeze
|
32
|
+
end
|
metadata
CHANGED
@@ -1,120 +1,107 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erlang-terms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Bennett
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.15'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: pry
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
26
|
+
version: '1.15'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rake
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
31
|
+
- - "~>"
|
60
32
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
33
|
+
version: '12.0'
|
62
34
|
type: :development
|
63
35
|
prerelease: false
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
65
37
|
requirements:
|
66
|
-
- -
|
38
|
+
- - "~>"
|
67
39
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
40
|
+
version: '12.0'
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
42
|
+
name: minitest
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
|
-
- -
|
45
|
+
- - ">="
|
74
46
|
- !ruby/object:Gem::Version
|
75
47
|
version: '0'
|
76
48
|
type: :development
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
|
-
- -
|
52
|
+
- - ">="
|
81
53
|
- !ruby/object:Gem::Version
|
82
54
|
version: '0'
|
83
|
-
description:
|
84
|
-
|
55
|
+
description: |2
|
56
|
+
Includes simple classes that represent Erlang's atom, binary, bitstring,
|
57
|
+
compressed, export, function, list, map, nil, pid, port, reference,
|
58
|
+
string, and tuple.
|
85
59
|
email:
|
86
|
-
- andrew@
|
60
|
+
- andrew@pixid.com
|
87
61
|
executables: []
|
88
62
|
extensions: []
|
89
63
|
extra_rdoc_files: []
|
90
64
|
files:
|
91
|
-
- .
|
92
|
-
- .
|
93
|
-
- .
|
65
|
+
- ".coveralls.yml"
|
66
|
+
- ".editorconfig"
|
67
|
+
- ".gitignore"
|
68
|
+
- ".rspec"
|
69
|
+
- ".ruby-gemset"
|
70
|
+
- ".ruby-version"
|
71
|
+
- ".travis.yml"
|
72
|
+
- ".yardopts"
|
73
|
+
- CHANGELOG.md
|
94
74
|
- Gemfile
|
95
75
|
- LICENSE.txt
|
96
76
|
- README.md
|
97
77
|
- Rakefile
|
98
78
|
- erlang-terms.gemspec
|
79
|
+
- lib/erlang-terms.rb
|
80
|
+
- lib/erlang/associable.rb
|
81
|
+
- lib/erlang/atom.rb
|
82
|
+
- lib/erlang/binary.rb
|
83
|
+
- lib/erlang/bitstring.rb
|
84
|
+
- lib/erlang/cons.rb
|
85
|
+
- lib/erlang/enumerable.rb
|
86
|
+
- lib/erlang/error.rb
|
99
87
|
- lib/erlang/export.rb
|
88
|
+
- lib/erlang/float.rb
|
89
|
+
- lib/erlang/function.rb
|
90
|
+
- lib/erlang/immutable.rb
|
100
91
|
- lib/erlang/list.rb
|
101
92
|
- lib/erlang/map.rb
|
102
93
|
- lib/erlang/nil.rb
|
103
94
|
- lib/erlang/pid.rb
|
95
|
+
- lib/erlang/port.rb
|
96
|
+
- lib/erlang/reference.rb
|
104
97
|
- lib/erlang/string.rb
|
98
|
+
- lib/erlang/term.rb
|
105
99
|
- lib/erlang/terms.rb
|
106
100
|
- lib/erlang/terms/version.rb
|
101
|
+
- lib/erlang/trie.rb
|
107
102
|
- lib/erlang/tuple.rb
|
108
|
-
-
|
109
|
-
|
110
|
-
- spec/erlang/map_spec.rb
|
111
|
-
- spec/erlang/nil_spec.rb
|
112
|
-
- spec/erlang/pid_spec.rb
|
113
|
-
- spec/erlang/string_spec.rb
|
114
|
-
- spec/erlang/terms_spec.rb
|
115
|
-
- spec/erlang/tuple_spec.rb
|
116
|
-
- spec/spec_helper.rb
|
117
|
-
homepage: https://github.com/potatosalad/erlang-terms
|
103
|
+
- lib/erlang/undefined.rb
|
104
|
+
homepage: https://github.com/potatosalad/ruby-erlang-terms
|
118
105
|
licenses:
|
119
106
|
- MIT
|
120
107
|
metadata: {}
|
@@ -124,27 +111,18 @@ require_paths:
|
|
124
111
|
- lib
|
125
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
113
|
requirements:
|
127
|
-
- -
|
114
|
+
- - ">="
|
128
115
|
- !ruby/object:Gem::Version
|
129
116
|
version: '0'
|
130
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
118
|
requirements:
|
132
|
-
- -
|
119
|
+
- - ">="
|
133
120
|
- !ruby/object:Gem::Version
|
134
121
|
version: '0'
|
135
122
|
requirements: []
|
136
123
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.6.11
|
138
125
|
signing_key:
|
139
126
|
specification_version: 4
|
140
127
|
summary: Erlang terms represented in Ruby
|
141
|
-
test_files:
|
142
|
-
- spec/erlang/export_spec.rb
|
143
|
-
- spec/erlang/list_spec.rb
|
144
|
-
- spec/erlang/map_spec.rb
|
145
|
-
- spec/erlang/nil_spec.rb
|
146
|
-
- spec/erlang/pid_spec.rb
|
147
|
-
- spec/erlang/string_spec.rb
|
148
|
-
- spec/erlang/terms_spec.rb
|
149
|
-
- spec/erlang/tuple_spec.rb
|
150
|
-
- spec/spec_helper.rb
|
128
|
+
test_files: []
|
data/spec/erlang/export_spec.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Erlang::Export do
|
4
|
-
describe '#inspect' do
|
5
|
-
subject { Erlang::Export.new(:module, :function, 1) }
|
6
|
-
|
7
|
-
it 'formats as #<Erlang::Export fun module:function/arity>' do
|
8
|
-
expect(subject.inspect).to eq("#<Erlang::Export fun module:function/1>")
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'compares with other exports' do
|
12
|
-
expect(subject).to eq(subject)
|
13
|
-
expect(subject).to eq(Erlang::Export.new('module', 'function', 1))
|
14
|
-
expect(subject).to_not eq(Erlang::Export.new('module', 'function', 0))
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
data/spec/erlang/list_spec.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Erlang::List do
|
4
|
-
describe '#inspect' do
|
5
|
-
context 'improper list' do
|
6
|
-
subject { Erlang::List[:a].tail(:b) }
|
7
|
-
|
8
|
-
it { should be_improper }
|
9
|
-
it 'formats as #<Erlang::List [:a | :b]>' do
|
10
|
-
expect(subject.inspect).to eq("#<Erlang::List [:a | :b]>")
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
context 'proper list' do
|
15
|
-
subject { Erlang::List[:a, :b] }
|
16
|
-
|
17
|
-
it { should_not be_improper }
|
18
|
-
it 'formats as #<Erlang::List [:a, :b | []]>' do
|
19
|
-
expect(subject.inspect).to eq("#<Erlang::List [:a, :b | []]>")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'has | [] in pretty_inspect' do
|
25
|
-
expect(Erlang::List[:a].pretty_inspect).to include("| []")
|
26
|
-
end
|
27
|
-
|
28
|
-
context '#==' do
|
29
|
-
subject { Erlang::List[:a, :b] }
|
30
|
-
|
31
|
-
it 'compares with other lists' do
|
32
|
-
expect(subject).to eq(subject)
|
33
|
-
expect(subject).to eq(Erlang::List[:a, :b])
|
34
|
-
expect(subject).to_not eq(Erlang::List[:a, :b].tail(:c))
|
35
|
-
expect(subject).to eq([:a, :b])
|
36
|
-
expect(Erlang::List[:a].tail(:c)).to_not eq([:a])
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
data/spec/erlang/map_spec.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Erlang::Map do
|
4
|
-
describe '#inspect' do
|
5
|
-
subject { Erlang::Map[:a, 1, "one", 1.0] }
|
6
|
-
|
7
|
-
it 'formats as #<Erlang::Map #{:a=>1, "one"=>1.0}>' do
|
8
|
-
expect(subject.inspect).to eq('#<Erlang::Map #{:a=>1, "one"=>1.0}>')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'has #{} in pretty_inspect' do
|
12
|
-
expect(Erlang::Map[].pretty_inspect).to include('#{}')
|
13
|
-
expect(Erlang::Map[Erlang::Map[], 1].pretty_inspect).to include('#{#{} => 1}')
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe '#to_s' do
|
18
|
-
subject { Erlang::Map[:a, 1, "one", 1.0] }
|
19
|
-
|
20
|
-
it 'formats as #{:a=>1, "one"=>1.0}' do
|
21
|
-
expect(subject.to_s).to eq('#{:a=>1, "one"=>1.0}')
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/spec/erlang/nil_spec.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Erlang::Nil do
|
4
|
-
describe '#inspect' do
|
5
|
-
subject { Erlang::Nil.new }
|
6
|
-
|
7
|
-
it 'formats as #<Erlang::Nil []>' do
|
8
|
-
expect(subject.inspect).to eq("#<Erlang::Nil []>")
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'compares with other nil (and [])' do
|
12
|
-
expect(subject).to eq(subject)
|
13
|
-
expect(subject).to eq(Erlang::Nil.new)
|
14
|
-
expect(subject).to eq([])
|
15
|
-
expect(subject).to_not eq([:a])
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/spec/erlang/pid_spec.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Erlang::Pid do
|
4
|
-
describe '#inspect' do
|
5
|
-
subject { Erlang::Pid.new('nonode@nohost', 100, 5, 1) }
|
6
|
-
|
7
|
-
it 'formats as #<Erlang::Pid <0.100.5> @node="nonode@nohost" @creation=1>' do
|
8
|
-
expect(subject.inspect).to eq('#<Erlang::Pid <0.100.5> @node="nonode@nohost" @creation=1>')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'has <0.100.5> in the pretty_inspect' do
|
12
|
-
expect(subject.pretty_inspect).to include("<0.100.5>")
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'compares with other pids' do
|
16
|
-
expect(subject).to eq(subject)
|
17
|
-
expect(subject).to eq(Erlang::Pid.new(:'nonode@nohost', 100, 5, 1))
|
18
|
-
expect(subject).to_not eq(Erlang::Pid.new('nonode@nohost', 100, 5, 0))
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/spec/erlang/string_spec.rb
DELETED
data/spec/erlang/terms_spec.rb
DELETED
data/spec/erlang/tuple_spec.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Erlang::Tuple do
|
4
|
-
describe '#inspect' do
|
5
|
-
subject { Erlang::Tuple[:a, 1, "one"] }
|
6
|
-
|
7
|
-
it 'formats as #<Erlang::Tuple {:a, 1, "one"}>' do
|
8
|
-
expect(subject.inspect).to eq('#<Erlang::Tuple {:a, 1, "one"}>')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'has {} in pretty_inspect' do
|
12
|
-
expect(Erlang::Tuple[].pretty_inspect).to include("{}")
|
13
|
-
expect(Erlang::Tuple[Erlang::Tuple[]].pretty_inspect).to include("{{}}")
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'arity equals length' do
|
17
|
-
expect(subject.arity).to eq(subject.length)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|