Sha256: 591780f8823e05418d55d724ae33f5fe6283134c29db83ba6d85217cbf152b2e
Contents?: true
Size: 1.69 KB
Versions: 116
Compression:
Stored size: 1.69 KB
Contents
#!/usr/bin/env ruby require 'optparse' require 'open-uri' require 'irb' require 'uri' require 'rubygems' require 'nokogiri' parse_class = Nokogiri encoding = nil opts = OptionParser.new do |opts| opts.banner = "Nokogiri: an HTML, XML, SAX, and Reader parser" opts.define_head "Usage: nokogiri <uri|path> [options]" opts.separator "" opts.separator "Examples:" opts.separator " nokogiri http://www.ruby-lang.org/" opts.separator " nokogiri ./public/index.html" opts.separator " curl -s http://nokogiri.org | nokogiri -e'p $_.css(\"h1\").length'" opts.separator "" opts.separator "Options:" opts.on("--type [TYPE]", [:xml, :html]) do |v| parse_class = {:xml => Nokogiri::XML, :html => Nokogiri::HTML}[v] end opts.on("-E", "--encoding encoding", "Read as encoding (default #{encoding})") do |v| encoding = v end opts.on("-e command", "Specifies script from command-line.") do |v| @script = v end opts.on("--rng <uri|path>", "Validate using this rng file.") do |v| @rng = open(v) {|f| Nokogiri::XML::RelaxNG(f)} end opts.on_tail("-?", "--help", "Show this message") do puts opts exit end opts.on_tail("-v", "--version", "Show version") do puts Nokogiri::VersionInfo.instance.to_markdown exit end end opts.parse! uri = ARGV.shift if uri.to_s.strip.empty? && $stdin.tty? puts opts exit 1 end if $stdin.tty? @doc = parse_class.parse(open(uri).read, nil, encoding) else @doc = parse_class.parse($stdin, nil, encoding) end $_ = @doc if @rng @rng.validate(@doc).each do |error| puts error.message end else if @script eval @script, binding, '<main>' else puts "Your document is stored in @doc..." IRB.start end end
Version data entries
116 entries across 116 versions & 10 rubygems