X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factionpack%2Flib%2Faction_controller%2Fheaders.rb;fp=vendor%2Frails%2Factionpack%2Flib%2Faction_controller%2Fheaders.rb;h=139669c66fabe9933a5f195769382add19c8f931;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.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