Module: Kleiber

Defined in:
lib/kleiber.rb,
lib/kleiber/cli.rb,
lib/kleiber/project.rb,
lib/kleiber/version.rb,
lib/kleiber/commands.rb,
lib/kleiber/settings.rb,
lib/kleiber/symphony.rb,
lib/kleiber/terminal.rb,
lib/kleiber/performer.rb
more...

Defined Under Namespace

Modules: Commands Classes: CLI, Performer, Project, Settings, Symphony, Terminal

Constant Summary collapse

ROOT =
File.absolute_path("#{__dir__}/..")
DEFAULT_SETTINGS_PATH =
File.expand_path('.projects.yml', ENV['HOME'])
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configure {|settings| ... } ⇒ Object

Provides blockparam settings for configure

Yield Parameters:

[View source]

44
45
46
# File 'lib/kleiber.rb', line 44

def configure
  yield settings
end

.perform(symphony_name, projects, options) ⇒ Performer

Returns performer with defined options

Parameters:

  • symphony_name (String)

    name of symphony to perform

  • projects (Array)

    list of projects names to run only

  • options (Hash)

    options of perfomance

Returns:

[View source]

21
22
23
# File 'lib/kleiber.rb', line 21

def perform(symphony_name, projects, options)
  Performer.new(symphonies[symphony_name], projects, options)
end

.projectsArray

Returns projects which kleiber can operate

Returns:

  • (Array)

    projects

[View source]

27
28
29
30
31
# File 'lib/kleiber.rb', line 27

def projects
  settings.projects.map do |project_settings|
    Project.new(project_settings)
  end
end

.settingsSettings

Returns settings if library

Returns:

[View source]

50
51
52
# File 'lib/kleiber.rb', line 50

def settings
  @settings ||= Settings.new(DEFAULT_SETTINGS_PATH)
end

.symphoniesHash

Returns symphonies which kleiber can control

Returns:

  • (Hash)

    symphonies

[View source]

35
36
37
38
39
40
# File 'lib/kleiber.rb', line 35

def symphonies
  settings.symphonies.each_with_object({}) do |(symphony_name, symphony_settings), result|
    symp_projects = projects.select { |p| symphony_settings[:projects].include?(p.name) }
    result[symphony_name] = Symphony.new(symphony_name, symp_projects, symphony_settings)
  end
end

.terminalTerminal

Returns current terminal object

Returns:

[View source]

56
57
58
# File 'lib/kleiber.rb', line 56

def terminal
  @terminal ||= Terminal.new(settings.terminal)
end