module Ety
Constants
- VERSION
Public Instance Methods
entry(args)
click to toggle source
# File lib/ety.rb, line 10 def entry(args) if !(args & %w[--help -h]).empty? or args.empty? help end @word=args.pop etymology, related_words=fetch_site puts "\e[1;4mEtymology of \"#{word}\":\e[m\n#{etymology}" puts "\n\e[1;4mRelated words:\e[m\n#{related(related_words).join(', ')}" end
fetch_site()
click to toggle source
# File lib/ety.rb, line 28 def fetch_site html=Nokogiri::HTML(open(url,headers)) pattern='//section[starts-with(@class,"word__defination")]' content=html.xpath(pattern) etymology=content[0].css('p').text related_words=content.map {|s| s.css('span').map(&:text)}.flatten! [etymology,related_words] end
headers()
click to toggle source
# File lib/ety.rb, line 57 def headers {'User-Agent' => 'ety-rubygem', 'accept' => 'text/html'} end
help()
click to toggle source
# File lib/ety.rb, line 21 def help puts <<~eof Usage: ety <word> eof exit end
url()
click to toggle source
# File lib/ety.rb, line 53 def url "https://www.etymonline.com/search?q=#{word}" end
word()
click to toggle source
# File lib/ety.rb, line 49 def word @word end