class NHKore::DictScraper

@author Jonathan Bradley Whited @since 0.2.0

Attributes

missingno[RW]

Public Class Methods

new(url,missingno: nil,parse_url: true,**kargs) click to toggle source
Calls superclass method
# File lib/nhkore/dict_scraper.rb, line 26
def initialize(url,missingno: nil,parse_url: true,**kargs)
  url = self.class.parse_url(url) if parse_url

  super(url,**kargs)

  @missingno = missingno
end
parse_url(url,basename: nil) click to toggle source
# File lib/nhkore/dict_scraper.rb, line 34
def self.parse_url(url,basename: nil)
  url = Util.strip_web_str(url.to_s)

  raise ParseError,"cannot parse dictionary URL from URL[#{url}]" if url.empty?

  i = url.rindex(%r{[/\\]}) # Can be a URL or a file
  i = i.nil? ? 0 : (i + 1) # If no match found, no path

  basename = File.basename(url[i..-1],'.*') if basename.nil?
  path = url[0...i]

  return "#{path}#{basename}.out.dic"
end

Public Instance Methods

scrape() click to toggle source
# File lib/nhkore/dict_scraper.rb, line 48
def scrape
  require 'json'

  str = read # Make sure it has all been read.
  str = str.string if str.respond_to?(:string) # For StringIO.

  json = JSON.parse(str)

  return Dict.new if json.nil?

  hash = json['reikai']

  return Dict.new if hash.nil?

  hash = hash['entries']

  return Dict.new if hash.nil?
  return Dict.scrape(hash,missingno: @missingno,url: @url)
end