Sha256: e21f3df9bee7195c641552a859a7df63bf893b93a52f4413c02c1117f429100e

Contents?: true

Size: 680 Bytes

Versions: 7

Compression:

Stored size: 680 Bytes

Contents

module Utils
  class ImageUrlFormatter
    attr_reader :url, :image_url

    def initialize(url, image_url)
      @url = url
      @image_url = image_url
    end

    def perform
      return unless image_url
      invalid_url? ? "#{scheme}://#{host}#{encoded_image_url}" : encoded_image_url
    end

    def encoded_image_url
      URI.encode(image_url)
    end

    def host
      parsed_url.host
    end

    def scheme
      parsed_url.scheme
    end

    def parsed_url
      @parsed_url ||= URI.parse(url)
    end

    def parsed_image_url
      @parsed_image_url ||= URI.parse(encoded_image_url)
    end

    def invalid_url?
      !parsed_image_url.host
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
link_oracle-0.1.2 lib/link_oracle/Utils/image_url_formatter.rb
link_oracle-0.1.1 lib/link_oracle/Utils/image_url_formatter.rb
link_oracle-0.1.0 lib/link_oracle/Utils/image_url_formatter.rb
link_oracle-0.0.8 lib/link_oracle/Utils/image_url_formatter.rb
link_oracle-0.0.7 lib/link_oracle/Utils/image_url_formatter.rb
link_oracle-0.0.6 lib/link_oracle/Utils/image_url_formatter.rb
link_oracle-0.0.5 lib/link_oracle/Utils/image_url_formatter.rb