Sha256: d559583914ae1e2850a5524b6f281a23418e441df7b4dbd063a2009eb81045ab

Contents?: true

Size: 1.16 KB

Versions: 30

Compression:

Stored size: 1.16 KB

Contents

module Nexmo
  module OAS
    module Renderer
      module Filters
        class UserPersonalization < Banzai::Filter
          def call(input)
            return input unless options[:current_user]
            return input if options[:current_user].api_key.blank?
            return input if options[:current_user].api_secret.blank?

            @input = input
            document.css('pre code').each do |code|
              html = code.to_s

              html.gsub!(/(['|"])?NEXMO_API_(KEY|SECRET)['|"]?/) do
                quote = $1 || "'"
                value = (
                  case $2
                when 'KEY' then options[:current_user].api_key
                when 'SECRET' then options[:current_user].api_secret
                end
                )
                "#{quote}#{value}#{quote}"
              end

              html.gsub!('NEXMO_API_SECRET', "'#{options[:current_user].api_secret}'")

              code.replace(html)
            end

            @document.to_html
          end

          private

          def document
            @document ||= Nokogiri::HTML::DocumentFragment.parse(@input)
          end
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
nexmo-oas-renderer-0.7.1 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.7.0 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.6.6 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.6.5 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.6.4 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.6.3 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.6.2 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.6.1 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.5.6 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.5.5 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.5.4 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.5.2 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.5.1 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.5.0 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.4.1 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.4.0 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.3.7 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.3.6 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.3.5 lib/nexmo/oas/renderer/filters/user_personalization.rb
nexmo-oas-renderer-0.3.4 lib/nexmo/oas/renderer/filters/user_personalization.rb