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