Module: LineUp

Defined in:
lib/line-up.rb,
lib/line_up/version.rb

Defined Under Namespace

Classes: UndefinedColumnError

Constant Summary collapse

VERSION =
"0.0.2"

Instance Method Summary collapse

Instance Method Details

#line_up!(ids, column = :position) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/line-up.rb', line 10

def line_up!(ids, column = :position)
  if column_names.exclude?(column.to_s)
    raise UndefinedColumnError, "a column named '#{column}' does not exist on the #{table_name} table"
  end

  new_position_query = ids.map.with_index do |id, index|
    sanitized_id = sanitize_sql(id: id)
    "UPDATE #{table_name} SET #{column} = #{index} WHERE #{sanitized_id};"
  end.join("\n")

  connection.execute(new_position_query)
end