class StatusPageRuby::Repositories::Status

Attributes

storage[R]

Public Class Methods

new(storage) click to toggle source
# File lib/status_page_ruby/repositories/status.rb, line 6
def initialize(storage)
  @storage = storage
end

Public Instance Methods

all() click to toggle source
# File lib/status_page_ruby/repositories/status.rb, line 21
def all
  storage
    .read
    .map { |attrs| StatusPageRuby::Status.new(*attrs) }
end
create(status) click to toggle source
# File lib/status_page_ruby/repositories/status.rb, line 27
def create(status)
  return if exist?(status)

  storage.write(status.record)
end
create_batch(statuses) click to toggle source
# File lib/status_page_ruby/repositories/status.rb, line 33
def create_batch(statuses)
  return if statuses.empty?

  storage.merge(statuses.map(&:record))
end
exist?(status) click to toggle source
# File lib/status_page_ruby/repositories/status.rb, line 10
def exist?(status)
  storage.include?(status.record)
end
where(service:) click to toggle source
# File lib/status_page_ruby/repositories/status.rb, line 14
def where(service:)
  storage
    .read
    .select { |record| record.first == service }
    .map { |attrs| StatusPageRuby::Status.new(*attrs) }
end