Skip to content

Instantly share code, notes, and snippets.

@Prigin
Created October 13, 2019 22:47
Show Gist options
  • Save Prigin/60954c88fa3743a45b5fb95c70444af8 to your computer and use it in GitHub Desktop.
Save Prigin/60954c88fa3743a45b5fb95c70444af8 to your computer and use it in GitHub Desktop.
task 4
require 'csv'
require 'ostruct'
doc = "movies.txt"
syms = [:link, :title, :year, :country,
:date, :genre, :duration,
:rating, :director, :stars]
#mas = OpenStruct.new
mas = CSV.readlines(doc, headers: syms, col_sep: "|")
def Show_em (array_hash)
array_hash.each do |unit|
puts unit[:title] + " (" + unit[:date] + "; " + unit[:genre] +") - " + unit[:duration]
end
end
puts
puts"=========LONGEST========="
Show_em mas.max_by(5){|a| a[:duration].split(" ").first.to_i}
puts
puts"====EARLIEST_COMEDIES===="
Show_em mas.select{|unit|
unit[:genre].include?("Comedy")}.min_by(10){|a| a[:date].split("-")}
puts
puts"========DIRECTORS========"
#puts mas.collect{|unit|
# unit[:director]}.uniq.sort_by{|a| a.split(" ").last}
puts mas[:director].uniq.sort_by{|a| a.split(" ").last}
puts
puts"=========NOT_USA========="
#puts mas.select{|unit| unit[:country] != "USA" }.length
puts mas[:country].count{|a| a != "USA"}
puts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment