module Review

Public Class Methods

add_to_stage(filename) click to toggle source
# File lib/review.rb, line 28
def add_to_stage(filename)
        cmd = "git add " + filename
        system(cmd)
end
ask_to_add(filename) click to toggle source
# File lib/review.rb, line 18
def ask_to_add(filename)
        choose do |cmd|
                cmd.index = :none
                cmd.prompt = "Add to stage? "
                cmd.layout = :one_line
                cmd.choice("yes") { add_to_stage filename  }
                cmd.choice("no")
        end
end
files() click to toggle source
# File lib/review.rb, line 7
def files
        output = `git status --porcelain | grep "^\\(.\\)\\+M" | sed s/^...//`
        output.split("\n")
end
run() click to toggle source
# File lib/review.rb, line 58
def run
        if files.size == 0
                puts "There are no unstaged files"
                exit 0
        elsif files.size == 1
                show_diff_for(files.first)
        else
                show_menu
        end

        system("git status -s")
        exit 1
end
show_diff_for(filename) click to toggle source
# File lib/review.rb, line 12
def show_diff_for(filename)
        cmd = "git diff " + filename
        system(cmd)
        ask_to_add filename
end
show_menu() click to toggle source
# File lib/review.rb, line 33
def show_menu
        HighLine.color_scheme = HighLine::ColorScheme.new do |cs|
                cs[:system_option] = [ :green ]
                cs[:simple_option] = [ :magenta ]
        end

        choose do |menu|
                menu.header = "Select file to see"
                menu.prompt = "> "

                menu.choice("<%= color('Stop stage review', :system_option) %>") { exit 1 }

                for i in 0...files.size
                        filename = files[i]
                        option_string = "<%= color('#{filename}', :simple_option)  %>"

                        menu.choice(option_string) do
                                show_diff_for filename
                        end
                end
        end

        show_menu
end