Class: PgMeta::Schema

Inherits:
Node
  • Object
show all
Defined in:
lib/pg_meta/meta.rb

Instance Attribute Summary collapse

Attributes inherited from Node

#name, #parent, #root

Instance Method Summary collapse

Methods inherited from Node

#dump, #dump_value, #guid, #inspect, #to_yaml, #uid

Constructor Details

#initialize(database, name, owner, hidden: false) ⇒ Schema

Returns a new instance of Schema.



127
128
129
130
131
132
133
134
135
# File 'lib/pg_meta/meta.rb', line 127

def initialize(database, name, owner, hidden: false)
  super(database, name)
  @owner = owner
  @tables = {}
  @functions = {}
  @procedures = {}
  @hidden = hidden
  database.schemas[name] = self
end

Instance Attribute Details

#functionsObject (readonly)

Hash of functions



122
123
124
# File 'lib/pg_meta/meta.rb', line 122

def functions
  @functions
end

#ownerObject (readonly)

Owner of the schema



113
114
115
# File 'lib/pg_meta/meta.rb', line 113

def owner
  @owner
end

#proceduresObject (readonly)

Hash of procedures



125
126
127
# File 'lib/pg_meta/meta.rb', line 125

def procedures
  @procedures
end

#tablesObject (readonly)

Hash of tables and views. TODO: Rename #relations



116
117
118
# File 'lib/pg_meta/meta.rb', line 116

def tables
  @tables
end

Instance Method Details

#hidden=(hide) ⇒ Object

Set hidden property



141
142
143
144
145
146
147
148
# File 'lib/pg_meta/meta.rb', line 141

def hidden=(hide)
  if @hidden
    database.schemas[name] = database.hidden_schemas.delete(name) if !hide
  else
    database.hidden_schemas[name] = database.schemas.delete(name) if hide
  end
  @hidden = hide
end

#hidden?Boolean

True if schema is hidden. This can be set dynamically

Returns:

  • (Boolean)


138
# File 'lib/pg_meta/meta.rb', line 138

def hidden?() @hidden end

#to_hObject



150
# File 'lib/pg_meta/meta.rb', line 150

def to_h() attrs_to_h(:name, :owner, :tables, :views, :functions, :procedures) end

#viewsObject

Hash of views



119
# File 'lib/pg_meta/meta.rb', line 119

def views() @views ||= @tables.select { |_, table| table.view? } end