Methods

WebRobots::RobotsTxt::AccessControlLine

Public Instance Methods

compile() click to toggle source
     # File lib/webrobots/robotstxt.rb, line 676
676:       def compile
677:         @empty = @value.empty?
678:         re_src = '\A'
679:         s = StringScanner.new(@value)
680:         until s.eos?
681:           if t = s.scan(/[^%*$]+/)
682:             re_src << Regexp.quote(t)
683:           elsif t = s.scan(/%([0-9a-f]{2})/)
684:             c = s[1].to_i(16)
685:             if c == 0x2f
686:               re_src << '%2[fF]'
687:             else
688:               re_src << Regexp.quote('%c' % c)
689:             end
690:           elsif t = s.scan(/\*/)
691:             re_src << '.*'
692:           elsif t = s.scan(/\$/)
693:             re_src << '\z'
694:             break
695:           else
696:             re_src << Regexp.quote(s.scan(/./))
697:           end
698:         end
699:         @pattern = Regexp.new(re_src, Regexp::MULTILINE)
700:         self
701:       end
match?(request_uri) click to toggle source
     # File lib/webrobots/robotstxt.rb, line 703
703:       def match?(request_uri)
704:         return false if @empty
705:         transformed = request_uri.gsub(/(%2[fF])|%([0-9a-f]{2})/) { $1 || '%c' % $2.to_i(16) }
706:         !!@pattern.match(transformed)
707:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.