class Hanreki::CLI
Public Instance Methods
blank()
click to toggle source
# File lib/hanreki/cli.rb, line 14 def blank year, month = parse_month_in_options(options, Date.today.next_month) schedule = Schedule.initialize_for_month(year, month) raise 'file already exists' if schedule.master_file_exists? schedule.out_master end
edit()
click to toggle source
# File lib/hanreki/cli.rb, line 23 def edit year, month = parse_month_in_options(options, Date.today) master_file = sprintf('master/%04d%02d.csv', year, month) raise 'file does not exist' unless File.exists? master_file editor = ENV['CAMPHOR_SCHEDULE_EDITOR'] || ENV['EDITOR'] || 'vi' system "#{editor} #{master_file}" validate end
sync()
click to toggle source
# File lib/hanreki/cli.rb, line 34 def sync schedule = load_schedule schedule.sort_by_date! schedule.out_ical schedule.out_json end
validate()
click to toggle source
# File lib/hanreki/cli.rb, line 42 def validate schedule = Schedule.new schedule = load_schedule end
version()
click to toggle source
# File lib/hanreki/cli.rb, line 48 def version puts "hanreki v#{VERSION}" end
Private Instance Methods
load_schedule()
click to toggle source
# File lib/hanreki/cli.rb, line 55 def load_schedule() schedule = Schedule.new begin schedule.load_master_files rescue ValidationError => e message = 'validation error' if e.event message += " at line #{e.event.line_number}" if e.event.line_number message += " in #{e.event.filename}" if e.event.filename message += "\n#{e.event.row.to_s.strip}" if e.event.row end message += "\n#{e}" puts message exit 1 end schedule end
parse_month_in_options(options, default = nil)
click to toggle source
Parse a string (YYYYMM) in options and returns [YYYY, MM]
# File lib/hanreki/cli.rb, line 74 def parse_month_in_options(options, default = nil) date = options[:date] if options[:date] begin Time.parse_month(options[:date].to_s) rescue ArgumentError => e raise "invalid date option: #{e.message}" end elsif default [default.year, default.month] end end