class Durt::GlobalController

Public Instance Methods

console() click to toggle source
# File lib/durt/global_controller.rb, line 31
def console
  binding.pry
end
create_project() click to toggle source
# File lib/durt/global_controller.rb, line 3
def create_project
  project_name = prompt.ask('What will you name your project?')

  Durt::Project.create(name: project_name)
end
create_project_config(project) click to toggle source
# File lib/durt/global_controller.rb, line 9
def create_project_config(project)
  project.tap { |p| p.config!('plugins' => plugins_config) }
end
select_project(project = nil) click to toggle source
# File lib/durt/global_controller.rb, line 13
def select_project(project = nil)
  projects = Durt::Project.all

  project ||=
    begin
      prompt.select('Select project:', projects.to_choice_h)
    end

  projects.update_all(active: false)
  project.tap(&:active!)
end
switch_to_project(project) click to toggle source
# File lib/durt/global_controller.rb, line 25
def switch_to_project(project)
  project.tap do |p|
    p.time_tracker_plugins.each(&:switch_project)
  end
end

Private Instance Methods

plugins_config() click to toggle source
# File lib/durt/global_controller.rb, line 37
def plugins_config
  all_plugins = Durt::Plugin.all
  plugin_choices =
    (all_plugins - [Durt::LocalPlugin])
    .map { |p| [p.plugin_name, p] }
    .to_h

  prompt
    .multi_select('Select plugins', plugin_choices)
    .push(Durt::LocalPlugin)
    .map { |p| [p.plugin_name, p.demo_config] }
    .to_h
end
prompt() click to toggle source
# File lib/durt/global_controller.rb, line 51
def prompt
  @prompt ||= TTY::Prompt.new
end