Method: Origami::Object.typeof
- Defined in:
- lib/origami/object.rb
.typeof(stream) ⇒ Object
:nodoc:
595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 |
# File 'lib/origami/object.rb', line 595 def typeof(stream) #:nodoc: scanner = Parser.init_scanner(stream) scanner.skip(REGEXP_WHITESPACES) case scanner.peek(1) when '/' then return Name when '<' return (scanner.peek(2) == '<<') ? Stream : HexaString when '(' then return LiteralString when '[' then return Origami::Array when 'n' then return Null if scanner.peek(4) == 'null' when 't' then return Boolean if scanner.peek(4) == 'true' when 'f' then return Boolean if scanner.peek(5) == 'false' else if scanner.check(Reference::REGEXP_TOKEN) then return Reference elsif scanner.check(Real::REGEXP_TOKEN) then return Real elsif scanner.check(Integer::REGEXP_TOKEN) then return Integer else nil end end nil end |