class HecksAdapters::SQLDatabase::Commands::Update::CreateNewValue

Create any new values

Attributes

reference_ids[R]

Public Class Methods

new(reference:, attributes:, reference_ids:) click to toggle source
# File lib/commands/update/create_new_value.rb, line 9
def initialize(reference:, attributes:, reference_ids:)
  @reference = reference
  @attributes = attributes
  @reference_ids = {}
  @column = Column.factory(reference)
  @column_name = @column.name.to_sym
end

Public Instance Methods

call() click to toggle source
# File lib/commands/update/create_new_value.rb, line 17
def call
  create_values
  create_value
  self
end

Private Instance Methods

create_value() click to toggle source
# File lib/commands/update/create_new_value.rb, line 35
def create_value
  return if @reference.list?
  id = SecureRandom.uuid
  DB[@column.to_table_name].insert(@attributes[@column.name.to_sym].merge(id: id))
  @reference_ids[@reference.name] = id
end
create_values() click to toggle source
# File lib/commands/update/create_new_value.rb, line 25
def create_values
  return unless @reference.list?
  @attributes[@column_name].each do |value|
    @reference_ids[@column_name] ||= []
    id = SecureRandom.uuid
    DB[@column.to_table_name].insert(value.merge(id: id))
    @reference_ids[@column_name] << id
  end
end