Class: Pgai::Resources::Local::BaseRecord

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Attributes
Defined in:
lib/pgai/resources/local/base_record.rb

Direct Known Subclasses

Clone, Configuration, Environment

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Attributes

#assign_attribute, #assign_attributes, #has_attribute?, included, #initialize

Class Method Details

.allObject



13
14
15
16
17
# File 'lib/pgai/resources/local/base_record.rb', line 13

def all
  backend.all(record_type).map do |attributes|
    new(attributes)
  end
end

.backendObject



37
38
39
# File 'lib/pgai/resources/local/base_record.rb', line 37

def backend
  Pgai::Commander.instance.store
end

.delete(id) ⇒ Object



28
29
30
31
# File 'lib/pgai/resources/local/base_record.rb', line 28

def delete(id)
  backend.delete(record_type, id)
  true
end

.find(id) {|record| ... } ⇒ Object

Yields:

  • (record)


19
20
21
22
23
24
25
26
# File 'lib/pgai/resources/local/base_record.rb', line 19

def find(id)
  attributes = backend.find(record_type, id)
  return unless attributes

  record = new(attributes)
  yield(record) if block_given?
  record
end

.record_typeObject



33
34
35
# File 'lib/pgai/resources/local/base_record.rb', line 33

def record_type
  :"#{name.split("::").last.downcase}s"
end

Instance Method Details

#deleteObject



47
48
49
# File 'lib/pgai/resources/local/base_record.rb', line 47

def delete
  klass.delete(id)
end

#klassObject



51
52
53
# File 'lib/pgai/resources/local/base_record.rb', line 51

def klass
  self.class
end

#saveObject



42
43
44
45
# File 'lib/pgai/resources/local/base_record.rb', line 42

def save
  backend.save(record_type, attributes, key: store_key)
  true
end