Skip to content

Instantly share code, notes, and snippets.

@philiplambok
Created November 10, 2021 09:47
Show Gist options
  • Save philiplambok/30e97611329e68a5275fed22c8fdef20 to your computer and use it in GitHub Desktop.
Save philiplambok/30e97611329e68a5275fed22c8fdef20 to your computer and use it in GitHub Desktop.
# frozen_string_literal: true
class Storage
class InvalidRecord
end
def initialize
@storages = []
end
def insert(params)
if params.nil?
raise Storage::InvalidRecord, 'Record was invalid'
end
@storages << params
end
def delete(params)
deleted_values = []
deleting_key = params.keys.first
@storages = @storages.select do |storage|
value = storage[deleting_key]
if deleted_values.include?(value)
true
elsif value == params.values.first
deleted_values << value
false
else
true
end
end
end
def count
@storages.length
end
def last
@storages[-1]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment