def image_url(*arguments, &block)
      options = arguments.extract_options!
      new_image, size, content_type = arguments

      block = proc { without_digest_asset_url(new_image) } if options[:digested] == false && block_given? == false

      # TODO: add another class for storing image
      attributes[:image] = store_value(new_image, &block)

      # add size and content type for block value
      size, content_type = new_image, size if block_given?

      attributes[:image_size] = store_value(size.split("x").map(&:to_i)) if size
      attributes[:image_content_type] = store_value(content_type) if content_type
    end
def image_url(*arguments, &block)
      options = arguments.extract_options!
      new_image, size, content_type = arguments

      block = proc { without_digest_asset_url(new_image) } if options[:digested] == false && block_given? == false

      # TODO: add another class for storing image
      attributes[:image] = store_value(new_image, &block)

      # add size and content type for block value
      size, content_type = new_image, size if block_given?

      attributes[:image_size] = store_value(size.split("x").map(&:to_i)) if size
      attributes[:image_content_type] = store_value(content_type) if content_type
    end
TODO: activate rubycop Metrics
 rubocop:disable Metrics/AbcSize
 image_url(new_image = nil, size = nil, content_type = nil, options, &block)