class Eventify::Provider::Piletilevi
Constants
- URL
Public Class Methods
fetch()
click to toggle source
# File lib/eventify/provider/piletilevi.rb, line 9 def fetch first_page_json = fetch_page(1) list_info = first_page_json["responseData"]["listInfo"] total_pages = list_info["total"] / list_info["pageSize"] + 1 result = events(first_page_json) + (2..total_pages).flat_map { |page_number| events(fetch_page(page_number)) } result end
Private Class Methods
events(json)
click to toggle source
# File lib/eventify/provider/piletilevi.rb, line 23 def events(json) entries = json["responseData"]["event"] entries.map do |entry| link = URI.parse(entry["link"]) link.scheme = "https" unless link.scheme new id: entry["id"], title: entry["title"], link: link.to_s, date: Time.at(entry["startTime"]["stamp"]) end end
fetch_page(number)
click to toggle source
# File lib/eventify/provider/piletilevi.rb, line 19 def fetch_page(number) JSON.parse(open("#{URL}/page:#{number}").read) end