Class: WorkGuide::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/work_guide/cli.rb

Instance Method Summary collapse

Instance Method Details

#add(description) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/work_guide/cli.rb', line 9

def add(description)
  guide = Guide.create(
    description: description,
    priority: options[:priority],
    cycle: options[:cycle]
  )
  puts "Created [#{Guide.all.size - 1}]#{guide}"
end

#delete(index) ⇒ Object



35
36
37
38
39
# File 'lib/work_guide/cli.rb', line 35

def delete(index)
  guide = Guide.all.delete_at(index.to_i)
  Guide.save
  puts "Deleted [#{index}]#{guide}"
end

#done(*args) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/work_guide/cli.rb', line 43

def done(*args)
  indexes = args.dup
  if indexes.empty?
    IO.popen("peco", "r+") do |io|
      io.puts guide_table
      io.close_write
      index = io.gets.split("|")[1]
      if index && index =~ /\d/
        indexes << index.strip
      else
        abort "[ERROR] Please select guide index !!"
      end
    end
  end

  guides = indexes.map { |index| Guide.all[index.to_i] }
  done_at =
    if options[:at]
      Time.parse(options[:at])
    else
      Time.now
    end

  guides.each do |guide|
    guide.done_at = done_at
  end

  Guide.save
  indexes.each do |index|
    puts "Done [#{index}]#{Guide.all[index.to_i]}"
  end
end

#listObject



29
30
31
# File 'lib/work_guide/cli.rb', line 29

def list
  puts guide_table(all: options[:all])
end

#update(index) ⇒ Object



20
21
22
23
24
25
# File 'lib/work_guide/cli.rb', line 20

def update(index)
  guide = Guide.all[index.to_i]
  guide.priority = options[:priority] if options[:priority]
  Guide.save
  puts "Update [#{index}]#{guide}"
end