class TimeOverlap::CLI

Public Instance Methods

expert(from, to, min_overlap, base_time_zone, *time_zones) click to toggle source
# File lib/time_overlap/cli.rb, line 13
def expert(from, to, min_overlap, base_time_zone, *time_zones)
  rows = []
  header = ""
  header << "*** Your overlap hours in #{time_zones.join(", ")} to #{base_time_zone} (Expert view) ***\n".center(Presenter::WIDTH)
  rows << [header]
  puts Terminal::Table.new rows: rows, :style => { :width => Presenter::WIDTH + 4 }

  raise "Min overlap (#{min_overlap}) need to be Integer from range (1..24)" if min_overlap.to_i.zero?

  time_zones.each_with_index do |zone_name, index|
    TimeOverlap::Calculator.show(
      from: from.to_i,
      to: to.to_i,
      min_overlap: min_overlap.to_i,
      time_zone: base_time_zone,
      my_time_zone: zone_name,
      expert: true,
    )
  end
end
light(from, to, base_time_zone, *time_zones) click to toggle source
# File lib/time_overlap/cli.rb, line 40
def light(from, to, base_time_zone, *time_zones)
  rows = []
  header = ""
  header << "*** Your overlap hours in #{time_zones.join(", ")} to #{base_time_zone} (Light view) ***".center(Presenter::WIDTH)
  rows << [header]
  puts Terminal::Table.new rows: rows, :style => { :width => Presenter::WIDTH + 4 }

  time_zones.each_with_index do |zone_name, index|
    TimeOverlap::Calculator.show(
      from: from.to_i,
      to: to.to_i,
      min_overlap: 0,
      time_zone: base_time_zone,
      my_time_zone: zone_name,
      expert: false,
    )
  end
end
list() click to toggle source
# File lib/time_overlap/cli.rb, line 61
def list
  puts "List of available time zones:"
  puts "-----------------------------"
  ActiveSupport::TimeZone.all.map do |zone|
    puts "#{ActiveSupport::TimeZone[zone.name].formatted_offset}: #{zone.name}"
  end
  puts "-----------------------------"
  self.help
end