Sha256: 5c77e32904db4da55093fca46f016989ffae24829e691ddf7737feed03bce536

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

require 'faraday'
require 'uri'

module Alephant
  module Preview
    module Template
      class Updater
        def template
          response = Faraday.new(url: host).get(path)
          raise "Can't get template" if response.status != 200

          apply_static_host_regex_to response.body
        end

        def update(template_location)
          File.open(template_location, 'w') do |file|
            file.write(template)
          end
        end

        def host
          "#{uri.scheme}://#{uri.host}"
        end

        def path
          uri.path
        end

        def uri
          return @uri unless @uri.nil?

          uri_from_env = ENV['PREVIEW_TEMPLATE_URL']
          raise Exception.new('PREVIEW_TEMPLATE_URL is unset!') if uri_from_env.nil?

          @uri = URI(uri_from_env)
        end

        def apply_static_host_regex_to(string)
          string.gsub(static_host_regex, '{{{static_host}}}')
        end

        def static_host_regex
          return @static_host_regex unless @static_host_regex.nil?

          static_host_regex_from_env = ENV['STATIC_HOST_REGEX']
          raise Exception.new('STATIC_HOST_REGEX is unset!') if static_host_regex_from_env.nil?

          @static_host_regex = Regexp.new(static_host_regex_from_env)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alephant-preview-0.6.1 lib/alephant/preview/template/updater.rb
alephant-preview-0.6.0 lib/alephant/preview/template/updater.rb