def update_attributes!(attributes={})
      attributes.each_pair do |key, val|
        self.respond_to?(:"#{ key }=") && send(:"#{ key }=", val)
      end

      # Returning self seems like the right thing to do when a method changes
      # more than one property of an object.
      self
    end
def update_attributes!(attributes={})
      attributes.each_pair do |key, val|
        self.respond_to?(:"#{ key }=") && send(:"#{ key }=", val)
      end

      # Returning self seems like the right thing to do when a method changes
      # more than one property of an object.
      self
    end
Updates the highlights attributes

 @example
   h = Vic::Highlight.new('Normal', { guibg: '333' })
   h.guibg # => "#333333"
   h.update_attributes!({ guibg: '000' })
   h.guibg # => "#000000"

 @param [Hash] attributes
   the attributes to update

 @return [Vic::Highlight]
   the updated highlight

 @api public