| Class | ActiveLdap::Ldif::Scanner |
| In: |
lib/active_ldap/ldif.rb
|
| Parent: | Object |
| SEPARATOR | = | /(?:\r\n|\n)/u |
# File lib/active_ldap/ldif.rb, line 479
479: def initialize(source)
480: @source = source
481: @scanner = StringScanner.new(@source)
482: @sub_scanner = nil
483: @sub_scanner = next_segment || StringScanner.new("")
484: end
# File lib/active_ldap/ldif.rb, line 491
491: def check(regexp)
492: @sub_scanner = next_segment if @sub_scanner.eos?
493: @sub_scanner.check(regexp)
494: end
# File lib/active_ldap/ldif.rb, line 502
502: def check_separator
503: return @scanner.check(SEPARATOR) if @sub_scanner.eos?
504:
505: check(SEPARATOR)
506: end
# File lib/active_ldap/ldif.rb, line 539
539: def column
540: _consumed_source = consumed_source
541: return 1 if _consumed_source.empty?
542:
543: position - (_consumed_source.rindex("\n") || -1)
544: end
# File lib/active_ldap/ldif.rb, line 525
525: def eos?
526: @sub_scanner = next_segment if @sub_scanner.eos?
527: @sub_scanner.eos? and @scanner.eos?
528: end
# File lib/active_ldap/ldif.rb, line 530
530: def line
531: _consumed_source = consumed_source
532: return 1 if _consumed_source.empty?
533:
534: n = _consumed_source.to_a.size
535: n += 1 if _consumed_source[-1, 1] == "\n"
536: n
537: end
# File lib/active_ldap/ldif.rb, line 546
546: def position
547: @scanner.pos - (@sub_scanner.string.length - @sub_scanner.pos)
548: end
# File lib/active_ldap/ldif.rb, line 486
486: def scan(regexp)
487: @sub_scanner = next_segment if @sub_scanner.eos?
488: @sub_scanner.scan(regexp)
489: end
# File lib/active_ldap/ldif.rb, line 496
496: def scan_separator
497: return @scanner.scan(SEPARATOR) if @sub_scanner.eos?
498:
499: scan(SEPARATOR)
500: end
# File lib/active_ldap/ldif.rb, line 508
508: def scan_separators
509: return @scanner.scan(/#{SEPARATOR}+/u) if @sub_scanner.eos?
510:
511: sub_result = scan(/#{SEPARATOR}+/u)
512: return nil if sub_result.nil?
513: return sub_result unless @sub_scanner.eos?
514:
515: result = @scanner.scan(/#{SEPARATOR}+/u)
516: return sub_result if result.nil?
517:
518: sub_result + result
519: end
# File lib/active_ldap/ldif.rb, line 560
560: def consumed_source
561: @source[0, position]
562: end