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



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

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

.backendObject



39
40
41
# File 'lib/pgai/resources/local/base_record.rb', line 39

def backend
  Pgai::Commander.instance.store
end

.delete(id) ⇒ Object



30
31
32
33
# File 'lib/pgai/resources/local/base_record.rb', line 30

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

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

Yields:

  • (record)


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

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

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

.record_typeObject



35
36
37
# File 'lib/pgai/resources/local/base_record.rb', line 35

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

Instance Method Details

#deleteObject



49
50
51
# File 'lib/pgai/resources/local/base_record.rb', line 49

def delete
  klass.delete(id)
end

#klassObject



53
54
55
# File 'lib/pgai/resources/local/base_record.rb', line 53

def klass
  self.class
end

#saveObject



44
45
46
47
# File 'lib/pgai/resources/local/base_record.rb', line 44

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