module AsFoo::AsHtml
Public Class Methods
available_pager()
click to toggle source
# File lib/as_foo/as_html.rb, line 7 def available_pager @@_as_foo_html_pager ||= %i(w3m elinks lynx links).find {|command| system("which #{command}", out: "/dev/null", err: "/dev/null") } end
Public Instance Methods
as_html(with: nil, options: nil)
click to toggle source
@return [String] converted string
# File lib/as_foo/as_html.rb, line 15 def as_html(with: nil, options: nil) pager = with || AsHtml.available_pager raise "could not find available pager command" unless pager case pager when :w3m Open3.popen3("w3m -dump -T text/html") do |stdin, stdout, stderr| stdin.puts self.to_s stdin.close stdout.read end when :lynx Open3.popen3("lynx -dump -nonumbers -nolist -stdin") do |stdin, stdout, stderr| stdin.puts self.to_s stdin.close stdout.read end when :links Tempfile.open ["as_foo", ".html"] do |src| src.puts self.to_s src.flush `links -dump #{src.path}` end when :elinks Open3.popen3("elinks -dump -no-numbering -no-references") do |stdin, stdout, stderr| stdin.puts self.to_s stdin.close stdout.read end else raise ArgumentError.new("unexpected method #{pager}") end end