Froze rails gems
[depot.git] / vendor / rails / actionpack / lib / action_controller / headers.rb
diff --git a/vendor/rails/actionpack/lib/action_controller/headers.rb b/vendor/rails/actionpack/lib/action_controller/headers.rb
new file mode 100644 (file)
index 0000000..139669c
--- /dev/null
@@ -0,0 +1,33 @@
+require 'active_support/memoizable'
+
+module ActionController
+  module Http
+    class Headers < ::Hash
+      extend ActiveSupport::Memoizable
+
+      def initialize(*args)
+         if args.size == 1 && args[0].is_a?(Hash)
+           super()
+           update(args[0])
+         else
+           super
+         end
+       end
+
+      def [](header_name)
+        if include?(header_name)
+          super
+        else
+          super(env_name(header_name))
+        end
+      end
+
+      private
+        # Converts a HTTP header name to an environment variable name.
+        def env_name(header_name)
+          "HTTP_#{header_name.upcase.gsub(/-/, '_')}"
+        end
+        memoize :env_name
+    end
+  end
+end