Class: TreasureData::Database

Inherits:
Model
  • Object
show all
Defined in:
lib/td/client/model.rb

Constant Summary collapse

PERMISSIONS =
[:administrator, :full_access, :import_only, :query_only]
PERMISSION_LIST_TABLES =
[:administrator, :full_access]

Instance Attribute Summary collapse

Attributes inherited from Model

#client

Instance Method Summary collapse

Constructor Details

#initialize(client, db_name, tables = nil, count = nil, created_at = nil, updated_at = nil, org_name = nil, permission = nil) ⇒ Database

Returns a new instance of Database.



47
48
49
50
51
52
53
54
55
# File 'lib/td/client/model.rb', line 47

def initialize(client, db_name, tables=nil, count=nil, created_at=nil, updated_at=nil, org_name=nil, permission=nil)
  super(client)
  @db_name = db_name
  @tables = tables
  @count = count
  @created_at = created_at
  @updated_at = updated_at
  @permission = permission.to_sym
end

Instance Attribute Details

#countObject (readonly)

Returns the value of attribute count.



57
58
59
# File 'lib/td/client/model.rb', line 57

def count
  @count
end

#org_nameObject (readonly)

Returns the value of attribute org_name.



57
58
59
# File 'lib/td/client/model.rb', line 57

def org_name
  @org_name
end

#permissionObject (readonly)

Returns the value of attribute permission.



57
58
59
# File 'lib/td/client/model.rb', line 57

def permission
  @permission
end

Instance Method Details

#create_item_table(name) ⇒ Object



72
73
74
# File 'lib/td/client/model.rb', line 72

def create_item_table(name)
  @client.create_item_table(@db_name, name)
end

#create_log_table(name) ⇒ Object



68
69
70
# File 'lib/td/client/model.rb', line 68

def create_log_table(name)
  @client.create_log_table(@db_name, name)
end

#created_atObject



88
89
90
# File 'lib/td/client/model.rb', line 88

def created_at
  @created_at && !@created_at.empty? ? Time.parse(@created_at) : nil
end

#deleteObject



80
81
82
# File 'lib/td/client/model.rb', line 80

def delete
  @client.delete_database(@db_name)
end

#nameObject



59
60
61
# File 'lib/td/client/model.rb', line 59

def name
  @db_name
end

#query(q) ⇒ Object



84
85
86
# File 'lib/td/client/model.rb', line 84

def query(q)
  @client.query(@db_name, q)
end

#table(table_name) ⇒ Object



76
77
78
# File 'lib/td/client/model.rb', line 76

def table(table_name)
  @client.table(@db_name, table_name)
end

#tablesObject



63
64
65
66
# File 'lib/td/client/model.rb', line 63

def tables
  update_tables! unless @tables
  @tables
end

#update_tables!Object



96
97
98
99
100
101
102
103
# File 'lib/td/client/model.rb', line 96

def update_tables!
  @tables = @client.tables(@db_name)
  # provide Table objects with a reference to the parent Database to avoid
  # requesting the Database information (such as permission) every time
  @tables.each {|table|
    table.database = self
  }
end

#updated_atObject



92
93
94
# File 'lib/td/client/model.rb', line 92

def updated_at
  @updated_at && !@updated_at.empty? ? Time.parse(@updated_at) : nil
end