Class: TwistlockControl::RethinkDBRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/twistlock_control/rethinkdb_repository.rb

Overview

Some helper functions around access to RethinkDB collections

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table_name) ⇒ RethinkDBRepository

Returns a new instance of RethinkDBRepository.



8
9
10
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 8

def initialize(table_name)
  @table_name = table_name
end

Instance Attribute Details

#table_nameObject

Returns the value of attribute table_name.



12
13
14
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 12

def table_name
  @table_name
end

Class Method Details

.[](table_name) ⇒ Object



4
5
6
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 4

def self.[](table_name)
  new(table_name)
end

Instance Method Details

#allObject



48
49
50
51
52
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 48

def all
  with_connection do |conn|
    table.run(conn)
  end
end

#create_tableObject



60
61
62
63
64
65
66
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 60

def create_table
  with_connection do |conn|
    TwistlockControl.database.table_create(table_name).run(conn)
  end
rescue RethinkDB::RqlRuntimeError
  nil
end

#delete_allObject



68
69
70
71
72
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 68

def delete_all
  with_connection do |conn|
    table.delete.run(conn)
  end
end

#find_by_attributes(attrs) ⇒ Object



30
31
32
33
34
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 30

def find_by_attributes(attrs)
  with_connection do |conn|
    table.filter(attrs).limit(1).run(conn).first
  end
end

#find_by_id(id) ⇒ Object



24
25
26
27
28
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 24

def find_by_id(id)
  with_connection do |conn|
    table.get(id).run(conn)
  end
end

#find_with_ids(ids) ⇒ Object



36
37
38
39
40
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 36

def find_with_ids(ids)
  with_connection do |conn|
    table.get_all(*ids).run(conn)
  end
end

#remove(id) ⇒ Object



42
43
44
45
46
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 42

def remove(id)
  with_connection do |conn|
    table.get(id).delete.run(conn)
  end
end

#save(attributes) ⇒ Object



18
19
20
21
22
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 18

def save(attributes)
  with_connection do |conn|
    table.get(attributes[:id]).replace(attributes).run(conn)
  end
end

#tableObject



14
15
16
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 14

def table
  TwistlockControl.database.table(table_name)
end

#with_connectionObject



54
55
56
57
58
# File 'lib/twistlock_control/rethinkdb_repository.rb', line 54

def with_connection
  TwistlockControl.with_connection do |conn|
    yield conn
  end
end