Module: TrainSH::Mixin::Sessions
- Defined in:
- lib/trainsh/mixin/sessions.rb
Instance Method Summary collapse
- #current_session ⇒ Object
- #current_session_id ⇒ Object
- #session(session_id = current_session_id) ⇒ Object
-
#sessions ⇒ Object
?.
- #use_session(url) ⇒ Object
- #validate_session_id(session_id) ⇒ Object
Instance Method Details
#current_session ⇒ Object
35 36 37 |
# File 'lib/trainsh/mixin/sessions.rb', line 35 def current_session @sessions[current_session_id] end |
#current_session_id ⇒ Object
31 32 33 |
# File 'lib/trainsh/mixin/sessions.rb', line 31 def current_session_id @current_session_id ||= 0 end |
#session(session_id = current_session_id) ⇒ Object
22 23 24 |
# File 'lib/trainsh/mixin/sessions.rb', line 22 def session(session_id = current_session_id) @sessions[session_id] end |
#sessions ⇒ Object
?
27 28 29 |
# File 'lib/trainsh/mixin/sessions.rb', line 27 def sessions (0..@sessions.count - 1).to_a end |
#use_session(url) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 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) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 |
# 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 |