Module: Erlang::ETF
- Defined in:
- lib/erlang/etf.rb,
lib/erlang/etf/fun.rb,
lib/erlang/etf/map.rb,
lib/erlang/etf/nil.rb,
lib/erlang/etf/pid.rb,
lib/erlang/etf/atom.rb,
lib/erlang/etf/list.rb,
lib/erlang/etf/port.rb,
lib/erlang/etf/term.rb,
lib/erlang/etf/float.rb,
lib/erlang/etf/binary.rb,
lib/erlang/etf/export.rb,
lib/erlang/etf/string.rb,
lib/erlang/etf/integer.rb,
lib/erlang/etf/new_fun.rb,
lib/erlang/etf/version.rb,
lib/erlang/etf/atom_utf8.rb,
lib/erlang/etf/large_big.rb,
lib/erlang/etf/new_float.rb,
lib/erlang/etf/reference.rb,
lib/erlang/etf/small_big.rb,
lib/erlang/etf/bit_binary.rb,
lib/erlang/etf/compressed.rb,
lib/erlang/etf/small_atom.rb,
lib/erlang/etf/large_tuple.rb,
lib/erlang/etf/small_tuple.rb,
lib/erlang/etf/new_reference.rb,
lib/erlang/etf/small_integer.rb,
lib/erlang/etf/small_atom_utf8.rb
Defined Under Namespace
Modules: Term
Classes: Atom, AtomUTF8, Binary, BitBinary, Compressed, Export, Float, Fun, Integer, LargeBig, LargeTuple, List, Map, NewFloat, NewFun, NewReference, Nil, Pid, Port, Reference, SmallAtom, SmallAtomUTF8, SmallBig, SmallInteger, SmallTuple, String
Constant Summary
collapse
- VERSION =
"2.0.0"
Class Method Summary
collapse
Class Method Details
.is_atom(term) ⇒ Object
104
105
106
107
108
|
# File 'lib/erlang/etf.rb', line 104
def self.is_atom(term)
return true if term.kind_of?(TYPE[:atom])
return true if Erlang.is_atom(term) and term.size >= 256 and term.utf8 == false
return false
end
|
.is_atom_utf8(term) ⇒ Object
110
111
112
113
114
|
# File 'lib/erlang/etf.rb', line 110
def self.is_atom_utf8(term)
return true if term.kind_of?(TYPE[:atom_utf8])
return true if Erlang.is_atom(term) and term.size >= 256 and term.utf8 == true
return false
end
|
.is_binary(term) ⇒ Object
116
117
118
119
120
|
# File 'lib/erlang/etf.rb', line 116
def self.is_binary(term)
return true if term.kind_of?(TYPE[:binary])
return true if Erlang.is_binary(term)
return false
end
|
.is_bit_binary(term) ⇒ Object
122
123
124
125
126
|
# File 'lib/erlang/etf.rb', line 122
def self.is_bit_binary(term)
return true if term.kind_of?(TYPE[:bit_binary])
return true if not Erlang.is_binary(term) and Erlang.is_bitstring(term)
return false
end
|
.is_export(term) ⇒ Object
128
129
130
131
132
|
# File 'lib/erlang/etf.rb', line 128
def self.is_export(term)
return true if term.kind_of?(TYPE[:export])
return true if Erlang.is_function(term) and term.kind_of?(Erlang::Export)
return false
end
|
.is_float(term) ⇒ Object
134
135
136
137
138
|
# File 'lib/erlang/etf.rb', line 134
def self.is_float(term)
return true if term.kind_of?(TYPE[:float])
return true if Erlang.is_float(term) and term.old == true
return false
end
|
.is_fun(term) ⇒ Object
140
141
142
143
144
|
# File 'lib/erlang/etf.rb', line 140
def self.is_fun(term)
return true if term.kind_of?(TYPE[:fun])
return true if Erlang.is_function(term) and not is_export(term) and not term.new_function?
return false
end
|
.is_integer(term) ⇒ Object
146
147
148
149
150
|
# File 'lib/erlang/etf.rb', line 146
def self.is_integer(term)
return true if term.kind_of?(TYPE[:integer])
return true if Erlang.is_integer(term) and not is_small_integer(term) and term >= (-(1 << 31) + 1) and term <= (+(1 << 31) - 1)
return false
end
|
.is_large_big(term) ⇒ Object
152
153
154
155
156
|
# File 'lib/erlang/etf.rb', line 152
def self.is_large_big(term)
return true if term.kind_of?(TYPE[:large_big])
return true if Erlang.is_integer(term) and not is_small_integer(term) and not is_integer(term) and not is_small_big(term)
return false
end
|
.is_large_tuple(term) ⇒ Object
158
159
160
161
162
|
# File 'lib/erlang/etf.rb', line 158
def self.is_large_tuple(term)
return true if term.kind_of?(TYPE[:large_tuple])
return true if Erlang.is_tuple(term) and not is_small_tuple(term)
return false
end
|
.is_list(term) ⇒ Object
164
165
166
167
168
|
# File 'lib/erlang/etf.rb', line 164
def self.is_list(term)
return true if term.kind_of?(TYPE[:list])
return true if Erlang.is_list(term) and not is_nil(term) and not is_string(term)
return false
end
|
.is_map(term) ⇒ Object
170
171
172
173
174
|
# File 'lib/erlang/etf.rb', line 170
def self.is_map(term)
return true if term.kind_of?(TYPE[:map])
return true if Erlang.is_map(term)
return false
end
|
.is_new_float(term) ⇒ Object
176
177
178
179
180
|
# File 'lib/erlang/etf.rb', line 176
def self.is_new_float(term)
return true if term.kind_of?(TYPE[:new_float])
return true if Erlang.is_float(term) and term.old == false
return false
end
|
.is_new_fun(term) ⇒ Object
182
183
184
185
186
|
# File 'lib/erlang/etf.rb', line 182
def self.is_new_fun(term)
return true if term.kind_of?(TYPE[:new_fun])
return true if Erlang.is_function(term) and not is_export(term) and term.new_function?
return false
end
|
.is_new_reference(term) ⇒ Object
188
189
190
191
192
|
# File 'lib/erlang/etf.rb', line 188
def self.is_new_reference(term)
return true if term.kind_of?(TYPE[:new_reference])
return true if Erlang.is_reference(term) and term.new_reference?
return false
end
|
.is_nil(term) ⇒ Object
194
195
196
197
198
|
# File 'lib/erlang/etf.rb', line 194
def self.is_nil(term)
return true if term.kind_of?(TYPE[:nil])
return true if Erlang.is_list(term) and term.empty?
return false
end
|
.is_pid(term) ⇒ Object
200
201
202
203
204
|
# File 'lib/erlang/etf.rb', line 200
def self.is_pid(term)
return true if term.kind_of?(TYPE[:pid])
return true if Erlang.is_pid(term)
return false
end
|
.is_port(term) ⇒ Object
206
207
208
209
210
|
# File 'lib/erlang/etf.rb', line 206
def self.is_port(term)
return true if term.kind_of?(TYPE[:port])
return true if Erlang.is_port(term)
return false
end
|
.is_reference(term) ⇒ Object
212
213
214
215
216
|
# File 'lib/erlang/etf.rb', line 212
def self.is_reference(term)
return true if term.kind_of?(TYPE[:reference])
return true if Erlang.is_reference(term) and not term.new_reference?
return false
end
|
.is_small_atom(term) ⇒ Object
218
219
220
221
222
|
# File 'lib/erlang/etf.rb', line 218
def self.is_small_atom(term)
return true if term.kind_of?(TYPE[:small_atom])
return true if Erlang.is_atom(term) and term.size < 256 and term.utf8 == false
return false
end
|
.is_small_atom_utf8(term) ⇒ Object
224
225
226
227
228
|
# File 'lib/erlang/etf.rb', line 224
def self.is_small_atom_utf8(term)
return true if term.kind_of?(TYPE[:small_atom_utf8])
return true if Erlang.is_atom(term) and term.size < 256 and term.utf8 == true
return false
end
|
.is_small_big(term) ⇒ Object
230
231
232
233
234
|
# File 'lib/erlang/etf.rb', line 230
def self.is_small_big(term)
return true if term.kind_of?(TYPE[:small_big])
return true if Erlang.is_integer(term) and not is_small_integer(term) and not is_integer(term) and intlog2div8(term) < 256
return false
end
|
.is_small_integer(term) ⇒ Object
236
237
238
239
240
|
# File 'lib/erlang/etf.rb', line 236
def self.is_small_integer(term)
return true if term.kind_of?(TYPE[:small_integer])
return true if Erlang.is_integer(term) and term >= 0 and term <= (+(1 << 8) - 1)
return false
end
|
.is_small_tuple(term) ⇒ Object
242
243
244
245
246
|
# File 'lib/erlang/etf.rb', line 242
def self.is_small_tuple(term)
return true if term.kind_of?(TYPE[:small_tuple])
return true if Erlang.is_tuple(term) and term.arity < 256
return false
end
|
.is_string(term) ⇒ Object
248
249
250
251
252
|
# File 'lib/erlang/etf.rb', line 248
def self.is_string(term)
return true if term.kind_of?(TYPE[:string])
return true if Erlang.is_list(term) and not is_nil(term) and term.kind_of?(Erlang::String) and term.length < (+(1 << 16) - 1)
return false
end
|