Not updated
{"rack.version"=>[1, 3],
 "rack.errors"=>#<File:/home/ec2-user/app/tmp/puma_err.log>,
 "rack.multithread"=>true,
 "rack.multiprocess"=>false,
 "rack.run_once"=>false,
 "SCRIPT_NAME"=>"",
 "QUERY_STRING"=>"",
 "SERVER_PROTOCOL"=>"HTTP/1.1",
 "SERVER_SOFTWARE"=>"puma 3.4.0 Owl Bowl Brawl",
 "GATEWAY_INTERFACE"=>"CGI/1.2",
 "REQUEST_METHOD"=>"GET",
 "REQUEST_PATH"=>"/",
 "REQUEST_URI"=>"/",
 "HTTP_VERSION"=>"HTTP/1.1",
 "HTTP_HOST"=>"joshcheek.com",
 "HTTP_ACCEPT"=>
  "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
 "HTTP_ACCEPT_ENCODING"=>"x-gzip, gzip, deflate",
 "HTTP_ACCEPT_LANGUAGE"=>"en-us,en-gb,en;q=0.7,*;q=0.3",
 "HTTP_USER_AGENT"=>"CCBot/2.0 (http://commoncrawl.org/faq/)",
 "HTTP_X_FORWARDED_FOR"=>"107.22.30.186",
 "HTTP_X_FORWARDED_PORT"=>"443",
 "HTTP_X_FORWARDED_PROTO"=>"https",
 "HTTP_CONNECTION"=>"keep-alive",
 "SERVER_NAME"=>"joshcheek.com",
 "SERVER_PORT"=>"443",
 "PATH_INFO"=>"/",
 "REMOTE_ADDR"=>"172.30.0.248",
 "puma.socket"=>#<TCPSocket:fd 7>,
 "rack.hijack?"=>true,
 "rack.hijack"=>#<Puma::Client:0x10d6604 @ready=true>,
 "rack.input"=>#<Puma::NullIO:0x00000001f85ad8>,
 "rack.url_scheme"=>"http",
 "rack.after_reply"=>[],
 "puma.config"=>
  #<Puma::Configuration:0x00000002342158
   @options=
    #<Puma::LeveledOptions:0x00000002341f28
     @cur={},
     @defaults=
      {:min_threads=>0,
       :max_threads=>16,
       :log_requests=>false,
       :debug=>false,
       :binds=>["tcp://0.0.0.0:9292"],
       :workers=>0,
       :daemon=>false,
       :mode=>:http,
       :worker_timeout=>60,
       :worker_boot_timeout=>60,
       :worker_shutdown_timeout=>30,
       :remote_address=>:socket,
       :tag=>"app",
       :environment=>"production",
       :rackup=>"config.ru",
       :logger=>#<File:/home/ec2-user/app/tmp/puma_out.log>},
     @set=
      [{},
       {:state=>"/home/ec2-user/app/tmp/puma.state",
        :pidfile=>"/home/ec2-user/app/tmp/puma.pid",
        :config_files=>["puma_config.rb"]},
       {},
       {:directory=>"/home/ec2-user/app",
        :rackup=>"/home/ec2-user/app/config.ru",
        :environment=>"production",
        :daemon=>true,
        :pidfile=>"/home/ec2-user/app/tmp/puma.pid",
        :state=>"/home/ec2-user/app/tmp/puma.state",
        :redirect_stdout=>"/home/ec2-user/app/tmp/puma_out.log",
        :redirect_stderr=>"/home/ec2-user/app/tmp/puma_err.log",
        :redirect_append=>true,
        :binds=>["tcp://0.0.0.0:3000"]},
       {},
       {}]>,
   @plugins=#<Puma::PluginLoader:0x00000002341e60 @instances=[]>>,
 "rack.logger"=>
  #<Rack::NullLogger:0x00000002232448
   @app=
    #<Rack::Protection::FrameOptions:0x00000002232538
     @app=
      #<Rack::Protection::HttpOrigin:0x00000002232600
       @app=
        #<Rack::Protection::IPSpoofing:0x000000022326c8
         @app=
          #<Rack::Protection::JsonCsrf:0x00000002232790
           @app=
            #<Rack::Protection::PathTraversal:0x00000002232830
             @app=
              #<Rack::Protection::XSSHeader:0x00000002232948
               @app=
                #<App:0x00000002319488
                 @app=nil,
                 @default_layout=:layout,
                 @preferred_extension=nil,
                 @template_cache=
                  #<Tilt::Cache:0x000000023193e8
                   @cache=
                    {[:erb,
                      "<!doctype html>\n\n<div id=\"display\">\nNot updated\n</div>\n\n<script>\nvar displayDiv = document.getElementById('display');\n\nnavigator.geolocation.getCurrentPosition(function(gp) {\ndisplayDiv.textContent = \"!Got the position!\";\n})\n</script>\n\n<pre><%= ERB::Util.h env.pretty_inspect %></pre>\n",
                      {:outvar=>"@_out_buf", :default_encoding=>"utf-8"},
                      "/home/ec2-user/app/views"]=>
                      #<Tilt::ERBTemplate:0x000000021fbfb0
                       @compiled_method=
                        {[]=>#<UnboundMethod: BasicObject#__tilt_18407360>},
                       @data=
                        "<!doctype html>\n\n<div id=\"display\">\nNot updated\n</div>\n\n<script>\nvar displayDiv = document.getElementById('display');\n\nnavigator.geolocation.getCurrentPosition(function(gp) {\ndisplayDiv.textContent = \"!Got the position!\";\n})\n</script>\n\n<pre><%= ERB::Util.h env.pretty_inspect %></pre>\n",
                       @default_encoding="utf-8",
                       @engine=
                        #<ERB:0x000000021fbe48
                         @encoding=#<Encoding:UTF-8>,
                         @filename=nil,
                         @lineno=0,
                         @safe_level=nil,
                         @src=
                          "#coding:UTF-8\n@_out_buf = ''; @_out_buf.concat \"<!doctype html>\\n\"\n; @_out_buf.concat \"\\n\"\n; @_out_buf.concat \"<div id=\\\"display\\\">\\n\"\n; @_out_buf.concat \"Not updated\\n\"\n; @_out_buf.concat \"</div>\\n\"\n; @_out_buf.concat \"\\n\"\n; @_out_buf.concat \"<script>\\n\"\n; @_out_buf.concat \"var displayDiv = document.getElementById('display');\\n\"\n; @_out_buf.concat \"\\n\"\n; @_out_buf.concat \"navigator.geolocation.getCurrentPosition(function(gp) {\\n\"\n; @_out_buf.concat \"displayDiv.textContent = \\\"!Got the position!\\\";\\n\"\n; @_out_buf.concat \"})\\n\"\n; @_out_buf.concat \"</script>\\n\"\n; @_out_buf.concat \"\\n\"\n; @_out_buf.concat \"<pre>\"; @_out_buf.concat(( ERB::Util.h env.pretty_inspect ).to_s); @_out_buf.concat \"</pre>\\n\"\n; @_out_buf.force_encoding(__ENCODING__)">,
                       @file="/home/ec2-user/app/app.rb",
                       @line=5,
                       @options={:outvar=>"@_out_buf", :trim=>"<>"},
                       @outvar="@_out_buf",
                       @reader=
                        #<Proc:0x000000022060f0@/home/ec2-user/.gem/ruby/2.3/gems/sinatra-1.4.7/lib/sinatra/base.rb:865>>}>>,
               @options=
                {:reaction=>:drop_session,
                 :logging=>true,
                 :message=>"Forbidden",
                 :encryptor=>Digest::SHA1,
                 :session_key=>"rack.session",
                 :status=>403,
                 :allow_empty_referrer=>true,
                 :report_key=>"protection.failed",
                 :html_types=>["text/html", "application/xhtml"],
                 :xss_mode=>:block,
                 :nosniff=>true,
                 :except=>[:session_hijacking, :remote_token]}>,
             @options=
              {:reaction=>:drop_session,
               :logging=>true,
               :message=>"Forbidden",
               :encryptor=>Digest::SHA1,
               :session_key=>"rack.session",
               :status=>403,
               :allow_empty_referrer=>true,
               :report_key=>"protection.failed",
               :html_types=>["text/html", "application/xhtml"],
               :except=>[:session_hijacking, :remote_token]}>,
           @options=
            {:reaction=>:drop_session,
             :logging=>true,
             :message=>"Forbidden",
             :encryptor=>Digest::SHA1,
             :session_key=>"rack.session",
             :status=>403,
             :allow_empty_referrer=>true,
             :report_key=>"protection.failed",
             :html_types=>["text/html", "application/xhtml"],
             :except=>[:session_hijacking, :remote_token]}>,
         @options=
          {:reaction=>:drop_session,
           :logging=>true,
           :message=>"Forbidden",
           :encryptor=>Digest::SHA1,
           :session_key=>"rack.session",
           :status=>403,
           :allow_empty_referrer=>true,
           :report_key=>"protection.failed",
           :html_types=>["text/html", "application/xhtml"],
           :except=>[:session_hijacking, :remote_token]}>,
       @options=
        {:reaction=>:drop_session,
         :logging=>true,
         :message=>"Forbidden",
         :encryptor=>Digest::SHA1,
         :session_key=>"rack.session",
         :status=>403,
         :allow_empty_referrer=>true,
         :report_key=>"protection.failed",
         :html_types=>["text/html", "application/xhtml"],
         :except=>[:session_hijacking, :remote_token]}>,
     @frame_options="SAMEORIGIN",
     @options=
      {:reaction=>:drop_session,
       :logging=>true,
       :message=>"Forbidden",
       :encryptor=>Digest::SHA1,
       :session_key=>"rack.session",
       :status=>403,
       :allow_empty_referrer=>true,
       :report_key=>"protection.failed",
       :html_types=>["text/html", "application/xhtml"],
       :frame_options=>:sameorigin,
       :except=>[:session_hijacking, :remote_token]}>>,
 "rack.request.query_string"=>"",
 "rack.request.query_hash"=>{},
 "sinatra.route"=>"GET /"}