class SQB::Update
Public Instance Methods
set(hash)
click to toggle source
Set a value to be updated
@param key [String] @param value [String, nil]
# File lib/sqb/update.rb, line 43 def set(hash) if @where raise QueryError, "Filtering has already been provided. Must filter after setting values." end @sets ||= {} hash.each do |key, value| @sets[key] = value_escape(value) end self end
to_sql()
click to toggle source
# File lib/sqb/update.rb, line 11 def to_sql [].tap do |query| query << "UPDATE" query << escape_and_join(@options[:database_name], @table_name) query << "SET" if @sets && !@sets.empty? query << @sets.map do |key, value| "#{escape_and_join(@table_name, key)} = #{value}" end.join(', ') else raise NoValuesError, "No values have been updated. Use `set` to set the values to update." end if @where && !@where.empty? query << "WHERE" query << @where.join(' AND ') end if @limit query << "LIMIT #{@limit.to_i}" end if @offset query << "OFFSET #{@offset.to_i}" end end.join(' ') end