class GemsBond::Printers::Printer
Prints HTML
file
Constants
- DIRECTORY_PATH
Public Class Methods
new(gems)
click to toggle source
Initializes an instance @param gems [Array<GemsBond::Gem>] @return [GemsBond::Printers]
# File lib/gems_bond/printers/printer.rb, line 14 def initialize(gems) @gems = gems end
Public Instance Methods
call()
click to toggle source
Manages print @return [void]
# File lib/gems_bond/printers/printer.rb, line 20 def call format = self.class.name.split("::").last puts "\nPreparing data for printing results into #{format} file..." create_directory print puts "Open file gems_bond/spy.#{format.downcase} to display the results." end
Private Instance Methods
create_directory()
click to toggle source
Creates the “gems_bond” directory if absent
# File lib/gems_bond/printers/printer.rb, line 37 def create_directory return if File.directory?(DIRECTORY_PATH) FileUtils.mkdir_p(DIRECTORY_PATH) end
print()
click to toggle source
Prints data into a file @return [void]
# File lib/gems_bond/printers/printer.rb, line 32 def print raise NotImplementedError, "Subclasses must implement a call method." end
sorted_gems()
click to toggle source
Returns gems sorted by the average_score @return [Array<GemsBond::Gem>] @note gems with no average_score are put at the end
# File lib/gems_bond/printers/printer.rb, line 46 def sorted_gems # sort with putting gems without average_score at the end @gems.sort do |a, b| if a.average_score && b.average_score a.average_score <=> b.average_score else a.average_score ? -1 : 1 end end end