Class: Secret

Inherits:
RailsBase::ApplicationRecord show all
Defined in:
app/models/secret.rb

Overview

Schema Information

Table name: secrets

id         :bigint           not null, primary key
version    :integer
secret     :text(65535)
name       :string(255)
created_at :datetime         not null
updated_at :datetime         not null

Class Method Summary collapse

Methods inherited from RailsBase::ApplicationRecord

_magically_defined_time_objects

Class Method Details

.get_current_secret(name:) ⇒ Object



25
26
27
# File 'app/models/secret.rb', line 25

def get_current_secret(name:)
  get_secrets(name: name).last
end

.get_secret_range(name:, range: [-2..-1]) ⇒ Object



29
30
31
# File 'app/models/secret.rb', line 29

def get_secret_range(name:, range: [-2..-1])
  where(name: name)[*range]
end

.get_secrets(name:) ⇒ Object



33
34
35
# File 'app/models/secret.rb', line 33

def get_secrets(name:)
  where(name: name)
end

.update(name:, secret:) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'app/models/secret.rb', line 15

def update(name:, secret:)
  next_version = get_secrets(name: name).select(:version).last&.version || 0
  next_version += 1 # always increase the version

  instance = new(version: next_version, name: name, secret: secret)
  instance.save!

  instance
end