class NcodeSyosetu::Client
Public Class Methods
new(logger: Logger.new(STDOUT), sleep: 0.5)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 15 def initialize(logger: Logger.new(STDOUT), sleep: 0.5) @mechanize = Mechanize.new @logger = logger @sleep = sleep end
Public Instance Methods
episode_url(ncode, number)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 49 def episode_url(ncode, number) "http://#{NcodeSyosetu::NCODE_HOST_NAME}/#{ncode}/#{number}" end
get(ncode)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 21 def get(ncode) toc = get_toc(ncode) episodes = toc.episodes.map do |episode| if episode[:number] get_episode(ncode, episode[:text], episode[:number]) else NcodeSyosetu::Model::Heading.new(episode[:text]) end end NcodeSyosetu::Model::Novel.new(toc, episodes) end
get_episode(ncode, title, number)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 40 def get_episode(ncode, title, number) sleep(@sleep) NcodeSyosetu::Model::Episode.new(title, number, get_content(episode_url(ncode, number))) end
get_toc(ncode)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 35 def get_toc(ncode) url = toc_url(ncode) NcodeSyosetu::Model::Toc.new(get_content(toc_url(ncode))) end
toc_url(ncode)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 45 def toc_url(ncode) "http://#{NcodeSyosetu::NCODE_HOST_NAME}/#{ncode}" end
Private Instance Methods
get_content(url)
click to toggle source
# File lib/ncode_syosetu/client.rb, line 55 def get_content(url) @logger.info("GET #{url}...") @mechanize.get(url) end