Class: BERT::Encoder
- Inherits:
-
Object
- Object
- BERT::Encoder
- Defined in:
- lib/bert/encoder.rb
Class Method Summary collapse
-
.convert(item) ⇒ Object
Convert complex Ruby form in simple Ruby form.
-
.encode(ruby) ⇒ Object
Encode a Ruby object into a BERT.
Class Method Details
.convert(item) ⇒ Object
Convert complex Ruby form in simple Ruby form.
+item+ is the Ruby object to convert
Returns the converted Ruby object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/bert/encoder.rb', line 16 def self.convert(item) case item when Hash pairs = [] item.each_pair { |k, v| pairs << t[convert(k), convert(v)] } t[:bert, :dict, pairs] when Tuple Tuple.new(item.map { |x| convert(x) }) when Array item.map { |x| convert(x) } when nil t[:bert, :nil] when TrueClass t[:bert, :true] when FalseClass t[:bert, :false] when Time t[:bert, :time, item.to_i / 1_000_000, item.to_i % 1_000_000, item.usec] when Regexp = [] << :caseless if item. & Regexp::IGNORECASE > 0 << :extended if item. & Regexp::EXTENDED > 0 << :multiline if item. & Regexp::MULTILINE > 0 t[:bert, :regex, item.source, ] else item end end |