class Thes
Constants
- BASE_URL
- VERSION
Public Class Methods
new(query)
click to toggle source
# File lib/thes.rb, line 12 def initialize(query) @query = query end
Public Instance Methods
call()
click to toggle source
# File lib/thes.rb, line 16 def call url = URI.join(BASE_URL, CGI.escape(@query)) html = Nokogiri::HTML.parse(open(url)) filters = html.search('.filters') tables = filters.map do |filter| type = filter.search('em.txt').text desc = filter.search('em.txt ~ strong').text groups = filter.search('.relevancy-block ul > li > a').group_by do |el| el.attr('data-category').match(/relevant-(\d+)/)[1].to_i end columns = groups.values.map do |els| els.map { |el| el.search('span.text').text } end columns.each(&:sort!) max_size = columns.max_by(&:size).size columns.each { |group| group.fill('', group.size, max_size - group.size) } rows = columns.transpose Terminal::Table.new( title: "#{type}: #{desc}", rows: rows, style: { width: 80 } ) end tables.join("\n") end