Kernel#capture replaced by version which can catch output from subprocesses
:counter_cache option for  to support custom named counter caches. Closes #7993
Clean up gemspecs

Organized the gemspec files a bit.

 * Made quotes more consistent (single quotes dominated, so I used
   that).
 * Moved license line down a line, separating it logically, and removed
   the extra whitespace before its = operator.
 * Minor whitespace fixes.
Revert "Merge pull request #8017 from jcoglan/objectless_sessions"

This reverts commit 36376560fdd02f955ae3bf6b7792b784443660ad, reversing
changes made to 3148ed9a4bb7efef30b846dc945d73ceebcc3f0f.

Conflicts:
	actionpack/lib/action_dispatch/middleware/flash.rb

Reason: it broke Sam's CI

https://github.com/rails/rails/pull/8017#issuecomment-10210655
Merge pull request #8147 from gbchaosmaster/gemspec

Reformat gemspec
rm dead code
Merge pull request #7763 from route/full-capture

Kernel#capture replaced by version which can catch output from subprocesses
copy the log level from the config settings
make the extremely useful logs debug level
implement to_a and to_ary so that the Array() call in template.rb will
not raise so many exceptions:

  https://github.com/rails/rails/blob/master/actionpack/lib/action_view/template.rb#L126

irb(main):001:0> class Foo; def method_missing(*args); super; end end
=> nil
irb(main):002:0> $DEBUG = true
=> true
irb(main):003:0> Array(Foo.new)
Exception `NoMethodError' at (irb):1 - undefined method `to_ary' for #<Foo:0x007f854390e488>
Exception `NoMethodError' at (irb):1 - undefined method `to_a' for #<Foo:0x007f854390e488>
=> [#<Foo:0x007f854390e488>]
irb(main):004:0>
Fix message about include_blank option.

See
https://github.com/rails/rails/commit/cb7d19b66badfbd1846c195913419c331701074e#commitcomment-2127148.
Add note about squashing in contributor guide.

We tell people how to do this all the time in the Issues tracker,
so now we can just point them here.
delegate PathSet's enumerator methods
Merge pull request #8152 from steveklabnik/squashing_guide

Add note about squashing in contributor guide.
Relations built off collection associations with an unsaved owner should be null relations

For example, the following should not run any query on the database:

Post.new.comments.where(body: 'omg').to_a # => []

Fixes #5215.
Merge pull request #8153 from steveklabnik/fix_include_blank

Fix message about include_blank option. [ci skip]
Merge pull request #8151 from nashby/forwardable

delegate PathSet's enumerator methods
Nullify the relation at a more general level.

This allows us to avoid hacks like the "return 0 if owner.new_record?"
in #count (which this commit removes).

Also, the relevant foreign key may actually be present even on a new
owner record, in which case we *don't* want a null relation. This logic
is encapsulated in the #null_scope? method.

We also need to make sure that the CollectionProxy is not 'infected'
with the NullRelation module, or else the methods from there will
override the definitions in CollectionProxy, leading to incorrect
results. Hence the nullify: false option to CollectionAssociation#scope.
(This feels a bit nasty but I can't think of a better way.)
CollectionProxy#pluck issues no query for a new_record? owner

Fixes #8102.

I couldn't find a nicer way to deal with this than delegate the call to
 #scope, which will be a NullRelation when we want it to be.
Delegate all calculations to the scope.

So that the scope may be a NullRelation and return a result without
executing a query.

Fixes #7928