class SessionAdapter

Constants

FILE_LOCATION

Public Instance Methods

clear_session() click to toggle source
# File lib/adapters/session_adapter.rb, line 30
def clear_session
  return unless ccli_directory_exists?

  FileUtils.rm_r(ccli_directory_path)
end
selected_folder() click to toggle source
# File lib/adapters/session_adapter.rb, line 36
def selected_folder
  @selected_folder ||= Folder.find(selected_folder_id)
end
session_data() click to toggle source
# File lib/adapters/session_adapter.rb, line 24
def session_data
  raise SessionMissingError unless session_file_exists?

  @session_data ||= Psych.load_file(session_file_path)
end
update_session(session) click to toggle source
# File lib/adapters/session_adapter.rb, line 13
def update_session(session)
  session.merge!(session_data) { |_key, input| input } if session_file_exists?

  FileUtils.mkdir_p ccli_directory_path unless ccli_directory_exists?
  File.open(session_file_path, 'w') do |file|
    session.merge!(extracted_token(session[:encoded_token])) { |_key, _v1, v2| v2 }
    session.delete(:encoded_token)
    file.write session.to_yaml
  end
end

Private Instance Methods

ccli_directory_exists?() click to toggle source
# File lib/adapters/session_adapter.rb, line 71
def ccli_directory_exists?
  Dir.exist?(ccli_directory_path)
end
ccli_directory_path() click to toggle source
# File lib/adapters/session_adapter.rb, line 63
def ccli_directory_path
  File.dirname(session_file_path)
end
extracted_token(token) click to toggle source
# File lib/adapters/session_adapter.rb, line 48
def extracted_token(token)
  return {} unless token

  decoded_token = Base64.decode64(token)
  attrs = decoded_token.split(':')
  {
    username: attrs[0],
    token: attrs[1]
  }
end
selected_folder_id() click to toggle source
# File lib/adapters/session_adapter.rb, line 42
def selected_folder_id
  raise NoFolderSelectedError if session_data[:folder].nil?

  session_data[:folder]
end
session_file_exists?() click to toggle source
# File lib/adapters/session_adapter.rb, line 67
def session_file_exists?
  File.exist?(session_file_path)
end
session_file_path() click to toggle source
# File lib/adapters/session_adapter.rb, line 59
def session_file_path
  File.expand_path(FILE_LOCATION)
end