class Blog

Constants

FILE
NO_EXCEPTIONS

Attributes

count_and_files[R]
count_of_exceptions_in_folder[R]
exceptions[R]
specified_file[R]
unique_exception_types[R]
unique_files[R]

Public Class Methods

exceptions?() click to toggle source
# File lib/Blog.rb, line 90
def self.exceptions?
  unless File.exist?(FILE)
    puts NO_EXCEPTIONS 
  else return true
  end
end
generate_and_display_blog() click to toggle source
# File lib/Blog.rb, line 97
def self.generate_and_display_blog
  blog = self.new(ARGV[0])
  blog.display_blog
end
new(specified_file = nil) click to toggle source
# File lib/Blog.rb, line 14
def initialize(specified_file = nil)
  @exceptions = YAML.load_stream(File.read(FILE))
  @unique_files = exceptions.map { |exc| exc.file }.uniq
  @count_and_files = "#{exceptions.length} in #{unique_files.join(' ')}"
  @unique_exception_types = exceptions.map { |exc| exc.type }.uniq
  @specified_file = specified_file
end

Public Instance Methods

count(type) click to toggle source
# File lib/Blog.rb, line 22
def count(type) 
  exceptions.select { |exc| exc.type == type }.length
end
display_blog() click to toggle source
# File lib/Blog.rb, line 72
def display_blog
  if legit_file?(specified_file)
    self.display_exceptions_for_file(specified_file) 
  elsif illegit_file?(specified_file)
    self.display_file_does_not_exist(specified_file)
  else 
    self.display_summary
  end
end
display_exceptions_for_file(filename) click to toggle source
# File lib/Blog.rb, line 49
def display_exceptions_for_file(filename)
  file_exceptions = read_exceptions_for_file(filename)
  file_exceptions.each do |exc| 
    display_file_header(filename)
    exc.display
  end
  display_file_trailer
end
display_file_does_not_exist(file) click to toggle source
# File lib/Blog.rb, line 68
def display_file_does_not_exist(file)
  puts "Sorry, #{file} is not a file in this folder."
end
display_file_header(filename) click to toggle source
# File lib/Blog.rb, line 58
def display_file_header(filename)
  puts "\n"
  puts "File: #{filename}"
  puts '-' * 15
end
display_file_trailer() click to toggle source
# File lib/Blog.rb, line 64
def display_file_trailer
  puts '-' * 15
end
display_summary() click to toggle source
# File lib/Blog.rb, line 40
def display_summary
  self.header
  self.folder_exceptions
end
folder_exceptions() click to toggle source
# File lib/Blog.rb, line 31
def folder_exceptions
  unique_exception_types.each do |type|
    puts  "\n"
    puts "Exception Class: #{type}"
    puts "Total: #{self.count(type)}"
    puts "-" * 15
  end
end
header() click to toggle source
# File lib/Blog.rb, line 26
def header
  system('clear')
  puts "Total Exceptions: #{count_and_files}"
end
illegit_file?(file) click to toggle source
# File lib/Blog.rb, line 86
def illegit_file?(file)
  file && !File.exist?(file)
end
legit_file?(file) click to toggle source
# File lib/Blog.rb, line 82
def legit_file?(file)
  file && File.exist?(file)
end
read_exceptions_for_file(filename) click to toggle source
# File lib/Blog.rb, line 45
def read_exceptions_for_file(filename)
  exceptions.select { |exc| exc.file == filename }
end