class RenameWish

Public Instance Methods

aliases() click to toggle source
# File lib/zoom/wish/rename_wish.rb, line 4
def aliases
    return ["mv", "rename"]
end
description() click to toggle source
# File lib/zoom/wish/rename_wish.rb, line 8
def description
    return "Rename the specified profile"
end
execute(args, djinni_env = {}) click to toggle source
# File lib/zoom/wish/rename_wish.rb, line 12
def execute(args, djinni_env = {})
    if (args.split(" ").length != 2)
        usage
        return
    end

    config = djinni_env["config"]

    old, new = args.split(" ")
    if (!config.has_profile?(old))
        puts("Profile does not exist: #{old}")
    elsif (config.has_profile?(new))
        puts("Profile already exists: #{new}")
    else
        profiles = config.parse_profiles
        profiles[new] = profiles.delete(old)
        profiles[new].name(new)
        config.set_profiles(profiles)

        # Update prompt
        if (config.get_current_profile_name == old)
            config.set_current_profile_name(new)
            prompt_color = djinni_env["prompt_color"]
            if (prompt_color)
                prompt = "zoom(#{new})> ".send(prompt_color)
            else
                prompt = "zoom(#{new})> "
            end
            djinni_env["djinni_prompt"] = prompt
        end
    end
end
tab_complete(input, djinni_env = {}) click to toggle source
# File lib/zoom/wish/rename_wish.rb, line 45
def tab_complete(input, djinni_env = {})
    return [{}, "", ""] if (input.include?(" "))

    profiles = djinni_env["config"].parse_profiles
    completions = Hash.new

    profiles.keys.sort do |a, b|
        a.downcase <=> b.downcase
    end.each do |name|
        profile = profiles[name]
        completions[name] = profile.to_s.split("\n")[1].strip
    end

    completions.keep_if do |name, desc|
        name.downcase.start_with?(input.downcase)
    end

    return [completions, input, " "]
end
usage() click to toggle source
# File lib/zoom/wish/rename_wish.rb, line 65
def usage
    puts("#{aliases.join(", ")} <old_name> <new_name>")
    puts("    #{description}.")
end