module Wpxf::Cli::Workspace
Provides functionality for interacting with workspaces.
Attributes
active_workspace[RW]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/wpxf/cli/workspace.rb, line 7 def initialize super self.active_workspace = Wpxf::Models::Workspace.first(name: 'default') end
Public Instance Methods
add_workspace(name)
click to toggle source
# File lib/wpxf/cli/workspace.rb, line 30 def add_workspace(name) unless Wpxf::Models::Workspace.where(name: name).count.zero? return print_warning "#{name} already exists" end begin Wpxf::Models::Workspace.create(name: name) return print_good "Added workspace: #{name}" rescue Sequel::ValidationFailed print_warning 'Workspace names may only contain 1-50 alphanumeric characters and underscores' end end
delete_workspace(name)
click to toggle source
# File lib/wpxf/cli/workspace.rb, line 65 def delete_workspace(name) if name == 'default' print_warning 'You cannot delete the default workspace' return end current_name = active_workspace.name Wpxf::Models::Workspace.where(name: name).destroy print_good "Deleted workspace: #{name}" switch_workspace 'default' if name == current_name end
list_workspaces()
click to toggle source
# File lib/wpxf/cli/workspace.rb, line 43 def list_workspaces workspaces.each do |workspace| if workspace.id == active_workspace.id print_info "#{workspace.name} #{'(active)'.green}" else print_info workspace.name end end end
switch_workspace(name)
click to toggle source
# File lib/wpxf/cli/workspace.rb, line 53 def switch_workspace(name) next_workspace = Wpxf::Models::Workspace.first(name: name) if next_workspace self.active_workspace = next_workspace context.module.active_workspace = active_workspace if context&.module print_good "Switched to workspace: #{name}" else print_bad "#{name} is not a valid workspace" end end
workspace(*args)
click to toggle source
# File lib/wpxf/cli/workspace.rb, line 13 def workspace(*args) return list_workspaces if args.length.zero? case args[0] when '-a' add_workspace(args[1]) when '-d' delete_workspace(args[1]) else switch_workspace(args[0]) end end
workspaces()
click to toggle source
# File lib/wpxf/cli/workspace.rb, line 26 def workspaces Wpxf::Models::Workspace.all end