module TrainSH::Mixin::Sessions

Public Instance Methods

current_session() click to toggle source
# File lib/trainsh/mixin/sessions.rb, line 35
def current_session
  @sessions[current_session_id]
end
current_session_id() click to toggle source
# File lib/trainsh/mixin/sessions.rb, line 31
def current_session_id
  @current_session_id ||= 0
end
session(session_id = current_session_id) click to toggle source
# File lib/trainsh/mixin/sessions.rb, line 22
def session(session_id = current_session_id)
  @sessions[session_id]
end
sessions() click to toggle source

?

# File lib/trainsh/mixin/sessions.rb, line 27
def sessions
  (0..@sessions.count - 1).to_a
end
use_session(url) click to toggle source
# File lib/trainsh/mixin/sessions.rb, line 6
def use_session(url)
  @sessions = [] if @sessions.nil?

  existing_id = @sessions.index { |session| session.url == url }

  if existing_id.nil?
    @current_session_id = @sessions.count
    @sessions << TrainSH::Session.new(url)
  else
    @current_session_id = existing_id
  end
rescue Train::PluginLoadError
  say format('No Train plugin found for url %<url>s', url: url).red
  nil
end
validate_session_id(session_id) click to toggle source
# File lib/trainsh/mixin/sessions.rb, line 39
def validate_session_id(session_id)
  unless session_id.match?(/^[0-9]+$/)
    say 'Expected session id to be numeric'.red
    return
  end

  if @sessions[session_id.to_i].nil?
    say format('No session id [%s] found', session_id).red
    return
  end

  session_id.to_i
end