Class: DomoscioAdmin::AuthorizationToken::FileStorage

Inherits:
Object
  • Object
show all
Defined in:
lib/domoscio_admin/authorization_token.rb

Instance Method Summary collapse

Constructor Details

#initialize(temp_dir = nil) ⇒ FileStorage

Returns a new instance of FileStorage.



33
34
35
36
# File 'lib/domoscio_admin/authorization_token.rb', line 33

def initialize(temp_dir = nil)
  @temp_dir = temp_dir || DomoscioAdmin.configuration.temp_dir
  raise "Path to temporary folder is not defined" unless @temp_dir
end

Instance Method Details

#file_pathObject



59
60
61
# File 'lib/domoscio_admin/authorization_token.rb', line 59

def file_path
  File.join(@temp_dir, "DomoscioAdmin.AuthorizationToken.FileStore.tmp")
end

#getObject



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/domoscio_admin/authorization_token.rb', line 38

def get
  begin
    f = File.open(file_path, File::RDONLY)
    f.flock(File::LOCK_SH)
    txt = f.read
    f.close
    YAML.load(txt) || nil
  rescue Errno::ENOENT
    nil
  end
end

#store(token) ⇒ Object



50
51
52
53
54
55
56
57
# File 'lib/domoscio_admin/authorization_token.rb', line 50

def store(token)
  File.open(file_path, File::RDWR | File::CREAT, 0644) do |f|
    f.flock(File::LOCK_EX)
    f.truncate(0)
    f.rewind
    f.puts(YAML.dump(token))
  end
end