class Shellify::User
Constants
- USER_FILE
Attributes
id[RW]
refresh_token[RW]
token[RW]
Public Class Methods
new(config_dir)
click to toggle source
Calls superclass method
# File lib/shellify/user.rb, line 9 def initialize(config_dir) @config_dir = config_dir @user_file_path = config_dir + USER_FILE create_user_file write_default_user load_persisted_user super({ 'credentials' => { 'token' => @token, 'refresh_token' => @refresh_token, 'access_refresh_callback' => access_refresh_callback, }, 'id' => @id, }) end
Public Instance Methods
configured?()
click to toggle source
# File lib/shellify/user.rb, line 25 def configured? !@token.empty? && !@refresh_token.empty? && !@id.empty? end
save!()
click to toggle source
# File lib/shellify/user.rb, line 29 def save! File.open(@user_file_path, 'w') do |file| file.write(JSON.pretty_generate({id: @id, token: @token, refresh_token: @refresh_token})) end end
Private Instance Methods
access_refresh_callback()
click to toggle source
# File lib/shellify/user.rb, line 41 def access_refresh_callback Proc.new do |new_access_token, _token_lifetime| @token = new_access_token save! end end
create_user_file()
click to toggle source
# File lib/shellify/user.rb, line 48 def create_user_file return if File.exists?(@user_file_path) FileUtils.mkdir_p(@config_dir) FileUtils.touch(@user_file_path) end
load_persisted_user()
click to toggle source
# File lib/shellify/user.rb, line 37 def load_persisted_user JSON.parse(File.read(@user_file_path)).each_pair { |k,v| instance_variable_set("@#{k}", v) } end
write_default_user()
click to toggle source
# File lib/shellify/user.rb, line 55 def write_default_user return unless File.zero?(@user_file_path) File.open(@user_file_path, 'w') do |file| file.write(JSON.pretty_generate({id: '', token: '', refresh_token: '',})) end end