X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Frails%2Factionpack%2Flib%2Faction_controller%2Fheaders.rb;fp=vendor%2Frails%2Factionpack%2Flib%2Faction_controller%2Fheaders.rb;h=139669c66fabe9933a5f195769382add19c8f931;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git diff --git a/vendor/rails/actionpack/lib/action_controller/headers.rb b/vendor/rails/actionpack/lib/action_controller/headers.rb new file mode 100644 index 0000000..139669c --- /dev/null +++ b/vendor/rails/actionpack/lib/action_controller/headers.rb @@ -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