class EcomEngine::Version
Public Class Methods
new(url)
click to toggle source
# File lib/ecom_engine/version.rb, line 3 def initialize(url) @url = url end
Public Instance Methods
value()
click to toggle source
# File lib/ecom_engine/version.rb, line 7 def value return cache if cache_exists? read_and_cache end
Private Instance Methods
cache()
click to toggle source
# File lib/ecom_engine/version.rb, line 41 def cache cache_store.read cache_key end
cache_exists?()
click to toggle source
# File lib/ecom_engine/version.rb, line 37 def cache_exists? not cache.nil? end
cache_expires_in()
click to toggle source
# File lib/ecom_engine/version.rb, line 57 def cache_expires_in expires_in = ENV['ECOM_ENGINE_VERSION_CACHE_EXPIRES_IN'] return expires_in.to_i if expires_in.present? 30 end
cache_key()
click to toggle source
# File lib/ecom_engine/version.rb, line 49 def cache_key "#{cache_key_prefix}:#{@url}" end
cache_key_prefix()
click to toggle source
# File lib/ecom_engine/version.rb, line 53 def cache_key_prefix :ecom_engine_version end
cache_store()
click to toggle source
# File lib/ecom_engine/version.rb, line 45 def cache_store Rails.cache end
read()
click to toggle source
# File lib/ecom_engine/version.rb, line 20 def read response = version_response return '' unless response.is_a? Net::HTTPSuccess response.body.strip end
read_and_cache()
click to toggle source
# File lib/ecom_engine/version.rb, line 14 def read_and_cache read.tap { |value| cache_store.write cache_key, value, expires_in: cache_expires_in } end
version_response()
click to toggle source
# File lib/ecom_engine/version.rb, line 26 def version_response uri = URI.parse(version_url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == 'https' http.get uri.request_uri end
version_url()
click to toggle source
# File lib/ecom_engine/version.rb, line 33 def version_url "#{@url}/version.txt" end