Class: NcodeSyosetu::Client
- Inherits:
-
Object
- Object
- NcodeSyosetu::Client
- Defined in:
- lib/ncode_syosetu/client.rb
Instance Method Summary collapse
- #episode_url(ncode, number) ⇒ Object
- #get(ncode) ⇒ Object
- #get_episode(ncode, title, number) ⇒ Object
- #get_toc(ncode) ⇒ Object
-
#initialize(logger: Logger.new(STDOUT), sleep: 0.5) ⇒ Client
constructor
A new instance of Client.
- #toc_url(ncode) ⇒ Object
Constructor Details
#initialize(logger: Logger.new(STDOUT), sleep: 0.5) ⇒ Client
Returns a new instance of Client.
6 7 8 9 10 |
# File 'lib/ncode_syosetu/client.rb', line 6 def initialize(logger: Logger.new(STDOUT), sleep: 0.5) @mechanize = Mechanize.new @logger = logger @sleep = sleep end |
Instance Method Details
#episode_url(ncode, number) ⇒ Object
43 44 45 |
# File 'lib/ncode_syosetu/client.rb', line 43 def episode_url(ncode, number) "http://#{NcodeSyosetu::NCODE_HOST_NAME}/#{ncode}/#{number}" end |
#get(ncode) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/ncode_syosetu/client.rb', line 12 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) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/ncode_syosetu/client.rb', line 32 def get_episode(ncode, title, number) sleep(@sleep) url = episode_url(ncode, number) @logger.info("GET #{url}...") NcodeSyosetu::Model::Episode.new(title, number, @mechanize.get(url)) end |
#get_toc(ncode) ⇒ Object
26 27 28 29 30 |
# File 'lib/ncode_syosetu/client.rb', line 26 def get_toc(ncode) url = toc_url(ncode) @logger.info("GET #{url}...") NcodeSyosetu::Model::Toc.new(@mechanize.get(url)) end |
#toc_url(ncode) ⇒ Object
39 40 41 |
# File 'lib/ncode_syosetu/client.rb', line 39 def toc_url(ncode) "http://#{NcodeSyosetu::NCODE_HOST_NAME}/#{ncode}" end |