Module: Syobocalite
- Defined in:
- lib/syobocalite.rb,
lib/syobocalite/program.rb,
lib/syobocalite/version.rb,
lib/syobocalite/db_client.rb
Defined Under Namespace
Classes: DbClient, Program
Constant Summary
collapse
- MAX_RETRY_COUNT =
10
- VERSION =
"1.2.0"
Class Method Summary
collapse
Class Method Details
.search(start_at:, end_at:) ⇒ Array<Program>
Search programs between start_at
and end_at
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/syobocalite.rb', line 17
def self.search(start_at:, end_at:)
xml = fetch(start_at: start_at, end_at: end_at)
response = MultiXml.parse(xml)
prog_items = response["syobocal"]["ProgItems"]["ProgItem"]
programs = prog_items.map { |prog_item| Syobocalite::Program.from_prog_item(prog_item) }
programs.select do |program|
(start_at...end_at).cover?(program.st_time)
end
end
|
.user_agent ⇒ String
30
31
32
|
# File 'lib/syobocalite.rb', line 30
def self.user_agent
"Syobocalite v#{Syobocalite::VERSION} (+https://github.com/sue445/syobocalite)"
end
|
.with_retry ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/syobocalite.rb', line 58
def self.with_retry
retry_count ||= 0
yield
rescue OpenURI::HTTPError => error
status_code = error.io.status[0].to_i
raise error unless status_code == 429
retry_count += 1
raise error if retry_count > MAX_RETRY_COUNT
sleep_time = 2 ** (retry_count - 1)
sleep sleep_time
retry
end
|