Sha256: 424a74a01b9a5e5018147f4476d45ea76df7a6fb383eead7823dde2549efbbd7
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
require 'cortex/snippets/webpage' require 'addressable/uri' module Cortex module Snippets class Client def initialize(cortex_client) @cortex_client = cortex_client end def snippet(options = {}, &block) snippets = current_webpage.snippets || [] snippet = snippets.find { |snippet| snippet[:document][:name] == options[:id] } if snippet.nil? || snippet[:document][:body].nil? || snippet[:document][:body].empty? content_tag(:snippet, capture(&block), options) else content_tag(:snippet, snippet[:document][:body].html_safe, options) end end def current_webpage if defined?(Rails) url = sanitized_webpage_url(request.original_url) Rails.cache.fetch("webpages/#{@cortex_client.access_token.client.id}/#{url}", race_condition_ttl: 10) do Cortex::Snippets::Webpage.new(@cortex_client, url) end else raise 'Your Web framework is not supported. Supported frameworks: Rails' end end private def sanitized_webpage_url(url) uri = Addressable::URI.parse(url) path = uri.path == '/' ? uri.path : uri.path.chomp('/') "#{uri.scheme}://#{uri.authority}#{path}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cortex-snippets-client-1.0.1 | lib/cortex/snippets/client.rb |