class Mucks::SessionConfig

Attributes

session_names[R]
sessions[R]

Public Class Methods

new(path) click to toggle source
Calls superclass method Mucks::BaseConfig::new
# File lib/mucks/mucks.rb, line 79
def initialize(path)
  super

  @sessions = unique_sessions.map do |session_name|
    SessionElement.new session_name, @config[session_name]
  end

  @session_names = Set.new
  @config.each do |k, v|
    @session_names << k
  end
end

Public Instance Methods

layouts() click to toggle source
# File lib/mucks/mucks.rb, line 92
def layouts
  @sessions.map do |session|
    session.layout
  end.uniq
end
remove_by_layout(layout_name) click to toggle source
# File lib/mucks/mucks.rb, line 98
def remove_by_layout(layout_name)
  @sessions.reject! do |session|
    session.layout == layout_name
  end
end

Private Instance Methods

get_sessions_for(session_name) click to toggle source
# File lib/mucks/mucks.rb, line 112
def get_sessions_for(session_name)
  session_config = @config[session_name]
  case session_config
  when Array
    session_config.map do |sess_name|
      get_sessions_for sess_name
    end
  when Hash
    session_name
  else
    puts "Invalid session selected: #{session_name}"
    nil
  end
end
unique_sessions() click to toggle source
# File lib/mucks/mucks.rb, line 106
def unique_sessions
  Config.sessions.map do |session_name|
    get_sessions_for(session_name)
  end.flatten.uniq.compact
end