Class: SheetsDB::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/sheets_db/session.rb

Defined Under Namespace

Classes: IllegalDefaultError, InvalidGoogleDriveUrlError, NoDefaultSetError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(google_drive_session) ⇒ Session

Returns a new instance of Session.



27
28
29
# File 'lib/sheets_db/session.rb', line 27

def initialize(google_drive_session)
  @google_drive_session = google_drive_session
end

Class Method Details

.defaultObject



16
17
18
19
20
21
# File 'lib/sheets_db/session.rb', line 16

def self.default
  unless @default
    raise NoDefaultSetError.new("No default Session defined yet")
  end
  @default
end

.default=(default) ⇒ Object



9
10
11
12
13
14
# File 'lib/sheets_db/session.rb', line 9

def self.default=(default)
  unless default.is_a?(self)
    raise IllegalDefaultError.new("Default must be a SheetsDB::Session")
  end
  @default = default
end

.from_service_account_key(*args) ⇒ Object



23
24
25
# File 'lib/sheets_db/session.rb', line 23

def self.(*args)
  new(GoogleDrive::Session.(*args))
end

Instance Method Details

#raw_file_by_id(id) ⇒ Object



31
32
33
# File 'lib/sheets_db/session.rb', line 31

def raw_file_by_id(id)
  @google_drive_session.file_by_id(id)
end

#raw_file_by_url(url) ⇒ Object



35
36
37
38
39
40
# File 'lib/sheets_db/session.rb', line 35

def raw_file_by_url(url)
  @google_drive_session.file_by_url(url)
rescue GoogleDrive::Error => e
  (raise InvalidGoogleDriveUrlError, url) if e.message.match(/not a known Google Drive URL/)
  raise
end