Sha256: fb700212d413db4949b5b3c588728c9a782f8b42c30b0475a020b4ffa45eba0a
Contents?: true
Size: 1.32 KB
Versions: 10
Compression:
Stored size: 1.32 KB
Contents
#require 'rack/utils' module Cloudfuji class Middleware include Rack::Utils def initialize(app, opts = {}) @app = app end def call(env) if Cloudfuji::Platform.on_cloudfuji? and Cloudfuji::Bar.in_bar_display_path?(env) status, headers, response = @app.call(env) content = "" response.each { |part| content += part } # "claiming" bar + stats ? content.gsub!(/<\/body>/i, <<-STR <script type="text/javascript"> var _cloudfuji_app = '#{Cloudfuji::Platform.name}'; var _cloudfuji_claimed = #{Cloudfuji::Platform.claimed?.to_s}; var _cloudfuji_metrics_token = '#{Cloudfuji::Platform.metrics_token}'; (function() { var cloudfuji = document.createElement('script'); cloudfuji.type = 'text/javascript'; cloudfuji.async = true; cloudfuji.src = '#{Cloudfuji::Platform.cloudfuji_js_source}?t=#{::Cloudfuji::VERSION.gsub('.', '')}'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cloudfuji, s); })(); </script> </body> STR ) headers['content-length'] = bytesize(content).to_s [status, headers, [content]] else @app.call(env) end end end end
Version data entries
10 entries across 10 versions & 1 rubygems