Kernel#capture replaced by version which can catch output from subprocesses
Merge pull request #8108 from Casecommons/fix-multiple-and-index-in-instance-tag

Support :multiple option on input tags that also have :index
Fixed the wrong terminology usage in 2.2.2
Store FlashHashes in the session as plain hashes rather than custom objects with unstable class names and instance variables.

Refactor FlashHash to take values for its ivars in the constructor, to pretty up FlashHash.from_session_value.

Remove stale comment on FlashHash: it is no longer Marshaled in the session so we can change its implementation.

Remove blank lines I introduced in controller/test_case.rb.

Unit tests for FlashHash#to_session_value.

Put in a compatibility layer to accept FlashHash serializations from Rails 3.0+.

Test that Rails 3.2 session flashes are correctly converted to the new format.

Remove code path for processing Rails 3.0 FlashHashes since they can no longer deserialize.
Check if the options value is present before to send the deprecation
message
Sign cookies using key deriver
Warn config.derive_keys will be true by default in 4.1
Add cookie.encrypted which returns an EncryptedCookieJar

How to use it?

cookies.encrypted[:discount] = 45
=> Set-Cookie: discount=ZS9ZZ1R4cG1pcUJ1bm80anhQang3dz09LS1mbDZDSU5scGdOT3ltQ2dTdlhSdWpRPT0%3D--ab54663c9f4e3bc340c790d6d2b71e92f5b60315; path=/
cookies.encrypted[:discount]
=> 45
Add encrypted cookie store
Use derived keys everywhere, http_authentication was missing it
Allow users to change the default salt if they want, shouldn't be necessary
Cache generated keys per KeyGenerator instance using salt + key_size
Move ensure_secret_secure to DummyKeyGenerator
Rename secret_token_key to secret_key_base
Disallow ability to use EncryptedCookieJar with DummyKeyGenerator

Developers must set config.secret_key_base in
config/initializers/secret_token.rb
Remove #permitted attr accessor from Parameters

There is no need to expose this accessor since we already have the query
method #permitted? that should handle this purpose.
Simplify query conditions a bit in nested attributes test

Also refactor the test a bit.
Ensure nested attributes is restored in case of a test failure
Use `tag!` instead of `method_missing` in `to_xml` conversions.

Since version `3.0.x` `Builder` caches method passed to `method_missing` each time. This commit replaces `method_missing` call with `tag!` call to prevent method redefinition on each `to_xml` call with the same builder.
Merge pull request #8111 from nikitug/use_tag_instead_of_method_missing_in_xml_builder

Use `tag!` instead of `method_missing` in `to_xml` conversions.