class Shokkenki::Provider::TicketReader
Public Instance Methods
read_from(location)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 10 def read_from location location.respond_to?(:call) ? parse_tickets_json(location.call) : parse_from(location) end
Private Instance Methods
parse_from(resource)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 16 def parse_from resource resource.match(URI::regexp) ? parse_from_remote(resource) : parse_from_local(resource) end
parse_from_directory(directory)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 34 def parse_from_directory directory Dir.glob("#{directory}/**/*.json").map do |json_file| Shokkenki::Provider::Model::Ticket.from_json File.read(json_file) end end
parse_from_file(file)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 40 def parse_from_file file [Shokkenki::Provider::Model::Ticket.from_json(File.read(file))] end
parse_from_local(resource)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 30 def parse_from_local resource Dir.exists?(resource) ? parse_from_directory(resource) : parse_from_file(resource) end
parse_from_remote(resource)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 20 def parse_from_remote resource open(resource) do |f| parse_tickets_json f.read end end
parse_tickets_json(json)
click to toggle source
# File lib/shokkenki/provider/ticket_reader.rb, line 26 def parse_tickets_json json JSON.parse(json, :symbolize_names => true).map { |h| Shokkenki::Provider::Model::Ticket.from_hash h } end