Module: Diametric::Persistence::Peer::ClassMethods

Defined in:
lib/diametric/persistence/peer.rb

Instance Method Summary collapse

Instance Method Details

#all(connection = nil, resolve = true) ⇒ Object



154
155
156
157
# File 'lib/diametric/persistence/peer.rb', line 154

def all(connection=nil, resolve=true)
  connection ||= Diametric::Persistence::Peer.connect
  Diametric::Query.new(self, connection, resolve).all
end

#create_schema(connection = nil) ⇒ Object



149
150
151
152
# File 'lib/diametric/persistence/peer.rb', line 149

def create_schema(connection=nil)
  connection ||= Diametric::Persistence::Peer.connect
  connection.transact(schema)
end

#filter(connection, *filter) ⇒ Object



170
171
172
173
174
# File 'lib/diametric/persistence/peer.rb', line 170

def filter(connection, *filter)
  connection ||= Diametric::Persistence::Peer.connect
  query = Diametric::Query.new(self, connection, true)
  query.filter(*filter)
end

#first(conditions = {}, connection = nil, resolve = true) ⇒ Object



159
160
161
162
# File 'lib/diametric/persistence/peer.rb', line 159

def first(conditions = {}, connection=nil, resolve=true)
  connection ||= Diametric::Persistence::Peer.connect
  where(conditions, connection, resolve).first
end

#get(dbid, connection = nil, resolve = false) ⇒ Object



176
177
178
179
180
181
182
# File 'lib/diametric/persistence/peer.rb', line 176

def get(dbid, connection=nil, resolve=false)
  entity = self.new
  dbid = dbid.to_i if dbid.is_a?(String)
  connection ||= Diametric::Persistence::Peer.connect
  entity = self.reify(dbid, connection, resolve)
  entity
end

#q(query, args, conn_or_db = nil) ⇒ Object



184
185
186
187
188
189
190
191
192
# File 'lib/diametric/persistence/peer.rb', line 184

def q(query, args, conn_or_db=nil)
  conn_or_db ||= Diametric::Persistence::Peer.connect
  if conn_or_db.is_a?(Diametric::Persistence::Connection)
    db = conn_or_db.db
  else
    db = conn_or_db
  end
  Diametric::Persistence::Peer.q(query, db, args.flatten(1))
end

#tempid(*e) ⇒ Diametric::Persistence::Object

Create a temporary id placeholder.

Parameters:

  • e (*#to_edn)

    Elements to put in the placeholder. Should be either partition or partition and a negative number to be used as a reference.

Returns:

  • (Diametric::Persistence::Object)

    Temporary id placeholder.



140
141
142
143
144
145
146
147
# File 'lib/diametric/persistence/peer.rb', line 140

def tempid(*e)
  if e.size == 1
    return Diametric::Persistence::Peer.tempid(e[0])
  elsif e.size == 2
    return Diametric::Persistence::Peer.tempid(e[0], e[1])
  end
  nil
end

#where(conditions = {}, connection = nil, resolve = true) ⇒ Object



164
165
166
167
168
# File 'lib/diametric/persistence/peer.rb', line 164

def where(conditions = {}, connection=nil, resolve=true)
  connection ||= Diametric::Persistence::Peer.connect
  query = Diametric::Query.new(self, connection, resolve)
  query.where(conditions)
end