From dce09c493288dd2230c1bb21f5fdbb2ea40801f4 Mon Sep 17 00:00:00 2001 From: Nick Doiron Date: Mon, 19 Nov 2012 09:10:25 -0800 Subject: [PATCH] update json and script --- OpenCMISS-cm.json | 2 +- ScrapeRepoPulls.py | 6 +++--- nathanmarz-storm.json | 2 +- rails-rails.json | 2 +- twitter-bootstrap.json | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/OpenCMISS-cm.json b/OpenCMISS-cm.json index b1ad0fe097..5452001607 100644 --- a/OpenCMISS-cm.json +++ b/OpenCMISS-cm.json @@ -1 +1 @@ -[{'body': 'Adding additional valgrind options to example makefile.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/126', 'title': 'Adding additional valgrind options to example makefile.'}, {'body': "- Fix bindings generation to work with CRLF line endings in opencmiss.f90.
- Fixed problems Soroush had due to Fortran's case insensitivity.
- Update tests to account for changes to use NumPy arrays.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/125', 'title': 'Bindings generation updates'}, {'body': '...and should be commented out\n\nThe temporarily commented out lines were missed when Xiani Yan did a "git pull upstream master", and is now re-added into the main repository.\n\nTracker item: 1225', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/124', 'title': "Comment out 'face_areas_calculate'"}, {'body': 'This caused crashes in fluid_mechanics_IO_routines with my Navier Stokes example so I wanted to disable the control loop output.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/121', 'title': 'Allow disabling control loop timing output'}, {'body': 'Fix a reference to MACHINE in the MacroDefinitions that should have been MACHNAME. Tracker item 3384.\n \nThis change seems to be needed to get OpenCMISS to build correctly on Debian Wheezy x86_64, because otherwise the system is detected as being 32-bit and the build fails if 32 bit libraries are not installed.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9adf7b51bc4c3822401db1e6fa6396d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/120', 'title': 'Fix a reference to MACHINE in the MacroDefinitions that should have been MACHNAME. Tracker item 3384.'}, {'body': 'Fix the syntax problem in tex.\nEnable clean of theory docs before build. \nNo relevant tracker item.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/119', 'title': 'Fix the syntax problem in tex'}, {'body': 'Use NumPy arrays and matrices in the Python bindings. This means we can support getting a pointer to data allocated internally, eg. CMISSField_ParameterSetDataGet. The bindings still work with existing code that uses lists for input as these get converted to NumPy arrays internally.\n\nAdded routines to get matrices and vectors for solver and equations set equations, and public routines for getting the data arrays from these.\n\nAdded a method to the Python bindings to create a SciPy sparse matrix using the sparse matrix data from OpenCMISS.\n\nAllowed using Field.ParameterSetDataGet rather than needing to use Field.ParameterSetDataGetDP, Field.ParameterSetDataGetIntg etc. and similarly for other field routines with different data type variants.\n\n[Tracker item 2147](https://tracker.physiomeproject.org/show_bug.cgi?id=2147)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/118', 'title': 'Use NumPy for Python bindings'}, {'body': 'Tiny change, no relevant tracker item.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/117', 'title': 'Add the -lpthread flag to link OpenMPI library.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/115', 'title': 'OpenMPI places the mpi.mod file in the library rather than include directory.'}, {'body': 'This broke problems with CellML equations as the solver was never marked as finished.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/114', 'title': 'Revert "Rearrange solver finishing routines"'}, {'body': 'Use a fixed length character array to store routine names, which saves a lot of time converting between characters and varying strings inside the enters routine.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/113', 'title': 'Performance improvement when using diagnostics or timing'}, {'body': 'No relevant tracker item.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/112', 'title': 'Small correction of installation notes pointed by Tiong.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/111', 'title': 'Small typo fix.'}, {'body': "I'd only ever used this with regular meshes and simple deformation modes so this error went unnoticed.\n\n PIOLA_TENSOR(2,3)=2.0_DP*P*AZU(1,2)\n\nshould have been:\n\n PIOLA_TENSOR(2,3)=2.0_DP*P*AZU(2,3)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/110', 'title': 'Fix typo in isotropic exponential constitutive relation'}, {'body': "The new generated_mesh_regular_component_node_to_user_number doesn't work with simplex elements so we need to use the original component_node_to_user_number function for simplex meshes.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/108', 'title': 'Fix getting a surface for a regular generated mesh with simplex elements'}, {'body': 'Let me know if anybody wants to review this.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/107', 'title': 'Fixes for simplex elements in export and mesh generation.'}, {'body': 'Let me know if anybody wants to review this.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/106', 'title': 'New metrics routine to handle lines and surfaces in higher dimensional space'}, {'body': "Sorry I don't know how I didn't catch this error, maybe I had the diagnostic output disabled or something. I should probably have tried Ting's new buildbot stuff.\n\nI'd forgotten to change the size of the vectors in the diagnostic output when I changed from compressed column to compressed row storage.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/105', 'title': 'Fix Neumann sparsity diagnostic output'}, {'body': '[Tracker item 3283](https://tracker.physiomeproject.org/show_bug.cgi?id=3283)\n\n@prasadbabarendagamage, can you take a look at this thanks?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/104', 'title': "Don't require fibre field for isotropic constitutive relations"}, {'body': 'Hey Prasad can you please review it?\nCheers,\nNancy', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/103', 'title': 'Bug fix-- scale factor for du/ds2s3 dof, one-liner'}, {'body': 'Data point based interpolation\n\nTracker item: 3194', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/102', 'title': 'Data point based interpolation'}, {'body': "The custom constructor isn't needed and was causing problems when exceptions were raised when running in a pool with the multiprocessing module, as it expected the constructor to take two arguments.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/101', 'title': 'Fix exception class in Python bindings'}, {'body': 'Tracker item 3301.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/100', 'title': 'Add a link to the file that list all examples with invalid JSON configurations if they exist'}, {'body': 'Reimplements the integration of point based Neumann conditions to give integrated nodal force values.\n\nTracker items [2111](https://tracker.physiomeproject.org/show_bug.cgi?id=2111) and [1809](https://tracker.physiomeproject.org/show_bug.cgi?id=1809).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/99', 'title': 'Reimplement Neumann conditions'}, {'body': 'I think we decided it was fine to disable these, I can create a tracker item if we should discuss this more?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/98', 'title': 'Disable PETSc signal handlers'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/97', 'title': 'Monodomain: fixes for multiple cell models.'}, {'body': 'This fixes the failing uniaxial extension Python example.

In the equations matrix diagnostic output, sparsity percentage was actually "density" so could be 100.0, which caused an error when formatting it with "F5.2".
I changed sparsity to the correct value and also allowed for a sparsity of 100.0 just in case.

Also changed a format string to work with the Intel compiler, it didn\'t like having an empty string in there for some reason?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/96', 'title': 'Fix bugs in diagnostic output'}, {'body': 'Previously only the node numbers were updated, which caused errors when running the Meshes/MoreComplexMesh example.
Also changed the rest of the mesh_topology_elements_element_basis_set routine to use move_alloc.
[Tracker item 3284](https://tracker.physiomeproject.org/show_bug.cgi?id=3284).

@prasadbabarendagamage, can you review this?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/95', 'title': 'Update element node versions when changing an element basis'}, {'body': 'Fixes errors running examples when OpenCMISS is compiled with the Intel compiler.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/94', 'title': 'Add missing nullify calls'}, {'body': 'Just a minor change. This avoids getting segfaults later on if you pass a geometric field to the EquationsSet_CreateStart routine rather than a fibre field.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/93', 'title': 'Check for fibre field for finite elascitity equations'}, {'body': '... of opencmissextras from scratch. Tracker item 3265.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/92', 'title': 'Update the opencmiss installation document'}, {'body': 'monodomain problem solved on several 1D meshes, which are embedded in one 1D mesh used for the solution of the finite elasticity problem.
Tested on 1 and 2 CPUs.
no relevant tracker item', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/91', 'title': 'coupled 1D bioelectrics - 3D finite elasticity problem'}, {'body': "[Tracker item 3052](https://tracker.physiomeproject.org/show_bug.cgi?id=3052)

Neumann conditions aren't currently working but they aren't working on the current master branch either, and will be cleaned up later.

@prasadbabarendagamage, are you able to review this?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/90', 'title': 'Split boundary conditions array into fixed/free and specific BC type'}, {'body': "Interface now has its own coordinate system attached and we no longer use its parent region's coordinate system, when getting the coordinate system for the field in the interface

Tracker item: 3118

Prasad could you please review it? It's just a small bug fix.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/89', 'title': 'Interface coordinate system'}, {'body': "Added in FieldML input/output support for linear and quadratic simplex (triangle and tetrahedron) types. I've tested this with with FieldML 0.4 and 0.5 on my 64-bit machine with gnu compilers.

Tracker #3132", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/af3149b10e18a2ddc8c42e8c540b2fac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/88', 'title': 'Fieldml support for simplex elements'}, {'body': "To support building a dynamic library for the Python bindings.

I've also updated the Makefiles for LAPACK and Pastix in OpenCMISSExtras (revision 694).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/87', 'title': 'Compile with -fPIC under Intel compiler'}, {'body': 'I used cherry pick to get the commits and applied them to a clean master (same as central repository, hopefully).

Tracker Item: 3118

Prasad could you please review the code?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/86', 'title': 'Add coordinate system to interface'}, {'body': 'Tracker item: 3118

Prasad can you please kindly review it?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/84', 'title': 'Add coordinate system to interface'}, {'body': "Fix some issues Nancy found with the bindings generation script.

- Don't match interface routines where the subroutine is commented out.
- Match parameters when there's a comment immediately after the name without any space.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/83', 'title': 'Fixes for bindings generation script'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/82', 'title': 'Minor Spelling mistake'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/81', 'title': 'Adding CUBPACK library and re-enabling TAO now that it works with PETSc 3.2.'}, {'body': "First off, apologies that this pull is unacceptably broad- I will definitely avoid doing this again in the future. There are some formatting fixes interspersed into actual functional changes, which I now also know is to be avoided. The changes to Navier_Stokes_equations_routines.f90 in particular are extensive and a pain to go through on Github. Chris, maybe we could go through the changes during our meeting time Thursday?

That said, this was one of my development branches for a while and there are 3 main changes I've added in this pull request. I've also run these changes with the nightly and weekly tests with only the same failures we've been getting for the master

1) Streamline Upwind Petrov-Galerkin (SUPG) formulation
Added stabilizing SUPG formulation for transient Navier-Stokes problems. Stabilization weights are based on element-wise metrics (length scale, cell Reynolds #) and added to the convective terms of the jacobian and residual calculations based on the dominant velocity direction (along the streamline). I've benchmarked this against a 2D lid driven cavity problem up to Re ~5000 with results in good agreement with classic literature values.

2) Analytic types
Previously, most of the analytic types for NSE were based on unit shapes (e.g. cube, square, tet) and solved with various mixed interpolations as part of the 42 testing steps. I've left these in as they are very useful for testing but also wanted analytic types with more classic analytic solutions. Currently the only new-style analytic types that are set up are 2D Poiseuille and Taylor-Green vortex types and I will add the corresponding examples to the examples repo. I also plan on adding a Womersley type and 3D types for these.

3) General clean-up
I've taken out the intermediate matrix allocations in the jacobian and residual evaluate routines, as this significantly reduces runtime (for instance it takes less than 1/2 the time to run a make test on the FluidMechanics directory examples). I have left them in the comments in case someone wants to use them for debug purposes in the future. I've also tried to make things a bit more readable, with the Equations_set_setup routines looking more like they do in the Burgers routines along with some formatting fixes throughout.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/af3149b10e18a2ddc8c42e8c540b2fac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/80', 'title': 'Navier Stokes analytic routines and general clean-up; add SUPG type and routine'}, {'body': '[Tracker item 3195](https://tracker.physiomeproject.org/show_bug.cgi?id=3195)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/79', 'title': 'Change the html output to add build only examples'}, {'body': 'Updated OpenCmiss to be compatible with FieldML0.5. Also fixed a few bugs.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/23775a212a4f1f13702994bb131f7705?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/78', 'title': 'Updated OpenCmiss to be compatible with FieldML0.5.'}, {'body': 'Fixes the failing finite elasticity examples, [tracker item 3124.](https://tracker.physiomeproject.org/show_bug.cgi?id=3124)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/77', 'title': 'Call PETSC_FINALISE after MPI_COMM_FREE'}, {'body': '[Tracker Item 3129](https://tracker.physiomeproject.org/show_bug.cgi?id=3129)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/76', 'title': 'Small modification to display the links to logs for python build'}, {'body': 'Somehow this one was missed originally, although it was updated in the examples where it is used.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/75', 'title': 'Update parameter order for another CellML routine'}, {'body': '[Tracker item 3188](https://tracker.physiomeproject.org/show_bug.cgi?id=3188)

@PrasadBabarendaGamage, can you review this and test it with your collapsed node examples?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/74', 'title': 'Support versions in exnode/exelem export'}, {'body': '[Tracker Item 3129](https://tracker.physiomeproject.org/show_bug.cgi?id=3129).
Please merge pull request #70 before merging this pull request.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/73', 'title': 'Add Python examples to buildbot testing'}, {'body': 'Use upper case with underscores for constants, lower camel case for variables and separate type name from routine/method name with an underscore.

[Tracker item 3089](https://tracker.physiomeproject.org/show_bug.cgi?id=3089)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/72', 'title': 'Code style update for API'}, {'body': 'Check if field parameter set is already created before creating it, to avoid errors when solving another problem with the same gravity field.

A couple of other small unrelated fixes too.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/71', 'title': 'Fix bug when reusing gravity field'}, {'body': "Originally, the html output does not handle several tests executing in the example directory and cause the exception. e.g. FiniteElasticity/Cantilever. This is the fix. In addition, test id is added to the log files' name to distinguish the logs for different tests. [Tracker item 3130](https://tracker.physiomeproject.org/show_bug.cgi?id=3130)

Adam, could you have a review of this? Thanks.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/70', 'title': 'Fix of several tests in the example directory. '}, {'body': "Wrap FieldML routine contents with ifdefs rather than ifdefing all the routines together, as the bindings generation isn't smart enough to parse the ifdefs and this is how the CellML routines work.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/69', 'title': 'Allow building Python bindings without FieldML'}, {'body': 'Make the finite elasticity finite difference Jacobian calculation a general routine for any equations set. Had to put it in its own module to avoid circular dependencies.

Update it so that it works with multiple nonlinear variables and matches the new code style.

[Tracker item 3162](https://tracker.physiomeproject.org/show_bug.cgi?id=3162)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/68', 'title': 'Finite difference Jacobian calculation update'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/67', 'title': 'Fixing up mpi directory for mpl.'}, {'body': 'Allows make to run in parallel successfully.

Also add a Python script to check that they match the modules used in the source code.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/66', 'title': 'Fix Makefile dependencies'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/65', 'title': 'Fixing up MakefileCommon.inc'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/64', 'title': 'Fixing up MakefileCommon.inc'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/63', 'title': 'Fixing MakeCommon.inc'}, {'body': 'This pull request updates code in pull request 46 (https://github.com/OpenCMISS/cm/pull/46).
The branch from which this pull request originates was created from the same branch from which Jessica created pull request 46.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ea5df5d403f7b222c753bd6abbe2519e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/62', 'title': 'Updating membrane mechanics code from pull request 46'}, {'body': 'Can Adam please review it please?

tracker item: 2764 \t', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/61', 'title': 'Fix derivative calcuation for regular meshes'}, {'body': 'Re-apply changes from commit 4b70e4c5 to opencmiss.f90 as they were
accidentally reverted in commit 86313e036a4313f236e483404614a7bb242bf89e.

Adding data points to interface in types.f90; adding new routines for
interface in data_point_routines.f90; adding new routines for interface
data points to opencmiss.f90

Tracker item 2000', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/60', 'title': 'Adding data points to interface'}, {'body': "Chris's MPI branch but without the FieldML change, and with the MPI changes merged into utils/MakefileCommon.inc.

Instead of OpenCMISS/cm#56", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/59', 'title': 'MPI Changes'}, {'body': 'Needs to be done after pull request 50', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/57', 'title': 'Fieldmlcpb'}, {'body': 'Needs to be done with pull request 50.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/56', 'title': 'Mpichange'}, {'body': 'Added checks for the dimension of the generated mesh, to enable 1D and 2D examples
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/55', 'title': 'bug fix in GENERATED_MESH_REGULAR_GEOMETRIC_PARAMETERS_CALCULATE'}, {'body': 'This reverts part of 2bf76dabb7594704fbe3170dcd89a27693da9257 and also updates the generated_mesh_geometric_parameters_calculate routine to use the correct component node to user number routine for simplex elements.

Tracker item 3095.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/54', 'title': 'Fix generated meshes with simplex elements'}, {'body': 'Details see [Tracker item 3130](https://tracker.physiomeproject.org/show_bug.cgi?id=3130). Some commits in this pull request are related to [Tracker item 3121](https://tracker.physiomeproject.org/show_bug.cgi?id=3121).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/53', 'title': 'Change format of the nightlytest.prop or weeklytest.prop to json object'}, {'body': ' - Remove incorrect constitutive relation
- Add new constitutive relation
- Add a small amount of documentation

[Tracker item 3039](https://tracker.physiomeproject.org/show_bug.cgi?id=3039)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/52', 'title': 'Update to coupled elasticity and Darcy pressure'}, {'body': '[Tracker item 2147](https://tracker.physiomeproject.org/show_bug.cgi?id=2147)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/51', 'title': 'Python bindings updates'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/50', 'title': 'Removing Nodal from FieldML input parameters'}, {'body': 'This is already taken care of within
FIELD_INTERPOLATION_PARAMETERS_ELEMENT_GET.

[Tracker item 3157](https://tracker.physiomeproject.org/show_bug.cgi?id=3157)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/49', 'title': 'Remove elasticity RHS scale factor multiplication'}, {'body': "Fix [tracker item 2751](https://tracker.physiomeproject.org/show_bug.cgi?id=2751) by adding face integration terms.

Add some documentation for Darcy's equation, [tracker item 2067](https://tracker.physiomeproject.org/show_bug.cgi?id=2067).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/48', 'title': 'Darcy equation updates'}, {'body': 'This fixes the calculation of geometric parameters and the surface get routines for regular geometric meshes, using the generated_mesh_regular_component_node_to_user_number routine written by Nancy (@xyan075). These changes are needed to account for the new node numbering scheme previously implemented.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/47', 'title': 'Fix generated mesh geometric calculation'}, {'body': 'Tracker item 2428

Prasad to review this.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bf0a400f2b5475e14ae265762a6c0505?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/46', 'title': 'Correcting membrane mechanics in 2D and 3D space '}, {'body': 'Nullify pointers, necessary for running CylinderInflation example with Intel compiler', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a220117fdfc8ff4a25f3961c8b6c63c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/45', 'title': 'Nullify pointer for Intel compiler'}, {'body': '[Tracker item 2147](https://tracker.physiomeproject.org/show_bug.cgi?id=2147)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/44', 'title': 'Initial Python bindings'}, {'body': 'Fix some outdated stuff and add a section on commit messages to the code style page, including a suggested commit message format.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/43', 'title': 'Documentation update'}, {'body': 'New subroutine "GENERATED_MESH_REGULAR_COMPONENT_NODES_TO_USER_NUMBERS" added to to replace "COMPONENT_NODES_TO_USER_NUMBERS" to compute node user numbers for regular type generated meshes

[Tracker item 3095](https://tracker.physiomeproject.org/show_bug.cgi?id=3095)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/42', 'title': 'Compute node user numbers for regular generated mesh'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/41', 'title': 'Fixes for Oslo so they can use OpenMPI'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/40', 'title': 'Fixes for Poiseuille Flow latex'}, {'body': 'I cannot build Latex locally using the Latex_make.sh
There seem to be missing style files.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a1b728b6a232cb16554fd216f45f6b73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/39', 'title': 'Latex Documentation'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/38', 'title': 'Code style changes.'}, {'body': "Tracker item 3073. Makefile doesn't work with parallel compilation (make -jX) -- https://tracker.physiomeproject.org/show_bug.cgi?id=3073
Tracker item 3074. Support m4 preprocessor in Makefile and CMakeLists.txt -- https://tracker.physiomeproject.org/show_bug.cgi?id=3074", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/37', 'title': 'Fixes and improvements in the build system (GNU Make and CMake): Tracker items 3073 and 3074'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/36', 'title': 'added GLOBAL_ITERATION_COUNTER to TIME_LOOP_TYPE'}, {'body': '[Tracker item 3039](https://tracker.physiomeproject.org/show_bug.cgi?id=3039). Include the effect of fluid influx on gravity loading and add another constitutive relation.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/35', 'title': 'Update to coupled Darcy pressure and elasticity'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/34', 'title': 'Fixes for LAPACK solver'}, {'body': "Fix for [tracker item 3049](https://tracker.physiomeproject.org/show_bug.cgi?id=3049). Fixes exelem and exnode export problems. Also fixed the indentation in field_IO_routines.f90 which was a horrible mix of 2 and 3 spaces so the full diff won't be very useful but the actual changes are all in other commits.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/33', 'title': 'Tracker item 3049'}, {'body': 'Remove references to BOUNDARY_CONDITIONS_VARIABLE%BOUNDARY_CONDITIONS_VALUES', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/32', 'title': 'Remove references to BOUNDARY_CONDITIONS_VALUES'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/31', 'title': 'Minor bug fixes following previous pull.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/30', 'title': 'Minor bug fixes following previous pull.'}, {'body': 'There were several memory leaks in the OpenCMISS framework that prevented me from finding my own ones using valgrind. Fixed them.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/29', 'title': 'Fixed memory leaks'}, {'body': '[Tracker item 3045](https://tracker.physiomeproject.org/show_bug.cgi?id=3045). Do some reorganising of solver_linear_direct_create_finish to avoid repetition and add support for LAPACK/PLAPACK solver libraries.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/28', 'title': '3045: Direct linear solver update'}, {'body': 'Adding data points to interface in types.f90; adding new routines for interface in data_point_routines.f90; adding new routines for interface data points to opencmiss.f90
Change old cmiss notation (ndp) to more readable system (data_point_idx) in data_point_routines.f90 and data_projection_routines.f90

Tracker item 2000', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7a242fa69692c232b8b2d1b14448b777?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/27', 'title': 'Adding data points to interface'}, {'body': '[Tracker item 3047](https://tracker.physiomeproject.org/show_bug.cgi?id=3047)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/26', 'title': '3047: Add missing nullify calls and fix typos'}, {'body': 'The combined rss feeds are created in [Yahoo pipe](http://pipes.yahoo.com/opencmiss). A document page listing and describing all the mailing lists and rss feeds are added to the programmer doxygen documentation. See [Tracker 3036](https://tracker.physiomeproject.org/show_bug.cgi?id=3036). ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/25', 'title': 'Add the documentation page about how to get updated with mailing lists and rss feeds'}, {'body': 'When the error handling mode is set to CMISSTrapError, the program
should exit with the error code, rather than zero.

Calling WRITE_ERROR was resetting the error code to zero before exiting.

[Tracker item 3029](https://tracker.physiomeproject.org/show_bug.cgi?id=3029)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/24', 'title': 'Make sure that programs exit with the error code'}, {'body': 'Use correct control time loop interation number.

[Tracker item 2067](https://tracker.physiomeproject.org/show_bug.cgi?id=2067)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/23', 'title': 'Fixes for failing Darcy and Darcy + finite elasticity examples'}, {'body': "Fix: Don't try to compile cmiss_cellml_dummy.f90, it's gone since commit eb8391e80652d415482f8449e8f979c1d831e73d. Instead use the preprocessor variable USECELLML to tell OpenCMISS, if it is supposed to use CellML or not.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/22', 'title': "Fix for CMake compilation: Don't try to compile cmiss_cellml_dummy.f90, but use the USECELLML preprocessor variable."}, {'body': 'Parallel compilation (make -j *) is very sensitive to the correct dependency settings and fails sometimes without them.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/21', 'title': 'Fix: Added missing dependencies to Makefile.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/20', 'title': 'Fixes for GNU 4.6 compilers'}, {'body': 'In "generated_mesh_routines.f90"

Tracker Item 2764

"coordinate_idx" did not increment and led to an infinite loop when one of the "MAXIMUM_EXTENT" parameter is zero.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/19', 'title': 'Bug fixed when generating a surface mesh in 3D space'}, {'body': 'The test target is added to the Makefile. In order to run "make test", the
OpenCMISS library should be built. The python testing tool, nose, should be
installed. By default, it will build with Intel compiler on a small set of
tests (those executed in the nightly build) under
directory. There are three options for the target:
* COMPILER=(intel|gnu)
* SIZE=(small|large), small for those tested in nightly build, large for those
tested in the weekly build.
* DIR=(DIR), will test examples under DIR from only.
Please see https://tracker.physiomeproject.org/show_bug.cgi?id=3013 for details.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/18', 'title': 'Add "make test" in Makefile to test all and/or selected examples'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8ae65723fc57d516c24f98d5b0f68def?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/17', 'title': 'Resubmitting pull request for FieldML API changes.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/16', 'title': 'coupled Monodomain Finite Elasticity'}, {'body': "Adds doxygen comments and changes how booleans are handled.

The C header now has:

typedef unsigned int CMISSBool;
const CMISSBool CMISSTrue = 1;
const CMISSBool CMISSFalse = 0;

Routines that take logicals take CMISSBool parameters and opencmiss_c.f90 just uses Fortran logicals of the default kind and converts C pointers straight to pointers to logicals without doing any allocation.

Fortan logicals default to 32 bits in both gfortran and ifort so we can use a C int to represent a logical, this can be updated later to account for other compilers if we have to. The size of _Bool in C99 is implementation dependent and can be 4 bytes but seems to be usually 1 byte, so I'm not sure how Fortan handles LOGICAL(KIND=C_BOOL), I guess it uses whatever size gcc uses.

There are some warnings when compiling opencmiss_c.f90 but I don't think there's any way to remove these unless we were to use LOGICAL(KIND=C_BOOL) everywhere:

Warning: Variable 'value' at (1) is a parameter to the BIND(C) procedure 'cmissfieldparametersetupdateconstantlcnum' but may not be C interoperable
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/15', 'title': 'Updates to C generation'}, {'body': 'Update doxygen installation instructions now that the repositories are hosted on GitHub.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/14', 'title': 'Doxygen documentation update'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/13', 'title': 'Formatting output'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/12', 'title': 'Fix Doxygen references'}, {'body': 'These changes add a python script to generated opencmiss.h and opencmiss_c.f90 from opencmiss.f90, and modify the Makefile to call this script. Some changes were also made to opencmiss.f90 to be able to generate the correct code.

I also removed ExampleMakefileC as it was out of sync with ExampleMakefile and seemed unnecessary, as ExampleMakefile already had everything required to build a C example but just needed a small fix.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/11', 'title': 'Generate opencmiss_c.f90 and opencmiss.h automatically'}, {'body': "Modified Makefile(s) and OpenCMISS interface module to:

* let the user define some paths using environment variables without modifying Makefiles (the latter usually brings conflicts when updating OpenCMISS)
* allow mvapich2 in ExampleMakefile (the Makefile of the OpenCMISS library already accepted it, but ExampleMakefile didn't)
* allow the consistent deactivation of FieldML in Makefile and ExampleMakefile (was a mess: Makefile had a variable to switch FieldML on/off, but when switched off, the compilation failed; ExampleMakefile allowed setting the switch variable from outside, while Makefile had it always turned on, unless you modified the Makefile)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/10', 'title': 'Makefile(s): More flexibility to allow non-standard, customized installations'}, {'body': 'It looks like finite_element_routines.f90 was a dead end?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/9', 'title': 'General cleanup stuff'}, {'body': 'gnu compiler 4.4 somehow misinterprets these statements if no extra parentheses are used. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/8', 'title': 'Minor bug fixes in generated_mesh_routines.f90'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/7', 'title': '2 little bug fixes'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/6', 'title': 'Remove extra line from macros.tex'}, {'body': 'Set it to OPENCMISS_ROOT/examples rather than OPENCMISS_ROOT/cm/examples', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/5', 'title': 'Change default value for OPENCMISSEXAMPLES_ROOT'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/4', 'title': 'Removing svn files accidently added.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/3', 'title': 'Fixing LaTeX notes.'}, {'body': 'These changes associate boundary conditions with solver equations rather than equations sets, so as to avoid having to repeat boundary conditions for some coupled problems and because it makes sense in a problem structure that the boundary conditions are part of the problem rather than the equations sets.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/2', 'title': 'Move boundary conditions to solver equations'}, {'body': "Set correct order in equations_set_setup equations and
fixed an error in equations_mapping_dynamic_variable_type_set

Before my multiple nonlinear variables change, if the equations were linear it checked that the time variable wasn't the same as the residual variable type, and this got carried through but seems to be a mistake.

@chrispbradley is it correct that the time variable shouldn't be the same as a linear variable type but should be a nonlinear variable type? This is how I had to change it to get the MultiPhysics/CoupledDiffusionDiffusion/MonolithicSchemeTest example to work.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/OpenCMISS/cm/pulls/1', 'title': 'Fix equations mapping for diffusion equations'}] \ No newline at end of file +[{"body": "Adding additional valgrind options to example makefile.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/126", "title": "Adding additional valgrind options to example makefile."}, {"body": "- Fix bindings generation to work with CRLF line endings in opencmiss.f90.
- Fixed problems Soroush had due to Fortran's case insensitivity.
- Update tests to account for changes to use NumPy arrays.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/125", "title": "Bindings generation updates"}, {"body": "...and should be commented out\n\nThe temporarily commented out lines were missed when Xiani Yan did a \"git pull upstream master\", and is now re-added into the main repository.\n\nTracker item: 1225", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/124", "title": "Comment out 'face_areas_calculate'"}, {"body": "This caused crashes in fluid_mechanics_IO_routines with my Navier Stokes example so I wanted to disable the control loop output.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/121", "title": "Allow disabling control loop timing output"}, {"body": "Fix a reference to MACHINE in the MacroDefinitions that should have been MACHNAME. Tracker item 3384.\n \nThis change seems to be needed to get OpenCMISS to build correctly on Debian Wheezy x86_64, because otherwise the system is detected as being 32-bit and the build fails if 32 bit libraries are not installed.\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/9adf7b51bc4c3822401db1e6fa6396d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/120", "title": "Fix a reference to MACHINE in the MacroDefinitions that should have been MACHNAME. Tracker item 3384."}, {"body": "Fix the syntax problem in tex.\nEnable clean of theory docs before build. \nNo relevant tracker item.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/119", "title": "Fix the syntax problem in tex"}, {"body": "Use NumPy arrays and matrices in the Python bindings. This means we can support getting a pointer to data allocated internally, eg. CMISSField_ParameterSetDataGet. The bindings still work with existing code that uses lists for input as these get converted to NumPy arrays internally.\n\nAdded routines to get matrices and vectors for solver and equations set equations, and public routines for getting the data arrays from these.\n\nAdded a method to the Python bindings to create a SciPy sparse matrix using the sparse matrix data from OpenCMISS.\n\nAllowed using Field.ParameterSetDataGet rather than needing to use Field.ParameterSetDataGetDP, Field.ParameterSetDataGetIntg etc. and similarly for other field routines with different data type variants.\n\n[Tracker item 2147](https://tracker.physiomeproject.org/show_bug.cgi?id=2147)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/118", "title": "Use NumPy for Python bindings"}, {"body": "Tiny change, no relevant tracker item.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/117", "title": "Add the -lpthread flag to link OpenMPI library."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/115", "title": "OpenMPI places the mpi.mod file in the library rather than include directory."}, {"body": "This broke problems with CellML equations as the solver was never marked as finished.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/114", "title": "Revert \"Rearrange solver finishing routines\""}, {"body": "Use a fixed length character array to store routine names, which saves a lot of time converting between characters and varying strings inside the enters routine.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/113", "title": "Performance improvement when using diagnostics or timing"}, {"body": "No relevant tracker item.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/112", "title": "Small correction of installation notes pointed by Tiong."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/111", "title": "Small typo fix."}, {"body": "I'd only ever used this with regular meshes and simple deformation modes so this error went unnoticed.\n\n PIOLA_TENSOR(2,3)=2.0_DP*P*AZU(1,2)\n\nshould have been:\n\n PIOLA_TENSOR(2,3)=2.0_DP*P*AZU(2,3)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/110", "title": "Fix typo in isotropic exponential constitutive relation"}, {"body": "The new generated_mesh_regular_component_node_to_user_number doesn't work with simplex elements so we need to use the original component_node_to_user_number function for simplex meshes.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/108", "title": "Fix getting a surface for a regular generated mesh with simplex elements"}, {"body": "Let me know if anybody wants to review this.\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/107", "title": "Fixes for simplex elements in export and mesh generation."}, {"body": "Let me know if anybody wants to review this.\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/106", "title": "New metrics routine to handle lines and surfaces in higher dimensional space"}, {"body": "Sorry I don't know how I didn't catch this error, maybe I had the diagnostic output disabled or something. I should probably have tried Ting's new buildbot stuff.\n\nI'd forgotten to change the size of the vectors in the diagnostic output when I changed from compressed column to compressed row storage.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/105", "title": "Fix Neumann sparsity diagnostic output"}, {"body": "[Tracker item 3283](https://tracker.physiomeproject.org/show_bug.cgi?id=3283)\n\n@prasadbabarendagamage, can you take a look at this thanks?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/104", "title": "Don't require fibre field for isotropic constitutive relations"}, {"body": "Hey Prasad can you please review it?\nCheers,\nNancy", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/103", "title": "Bug fix-- scale factor for du/ds2s3 dof, one-liner"}, {"body": "Data point based interpolation\n\nTracker item: 3194", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/102", "title": "Data point based interpolation"}, {"body": "The custom constructor isn't needed and was causing problems when exceptions were raised when running in a pool with the multiprocessing module, as it expected the constructor to take two arguments.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/101", "title": "Fix exception class in Python bindings"}, {"body": "Tracker item 3301.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/100", "title": "Add a link to the file that list all examples with invalid JSON configurations if they exist"}, {"body": "Reimplements the integration of point based Neumann conditions to give integrated nodal force values.\n\nTracker items [2111](https://tracker.physiomeproject.org/show_bug.cgi?id=2111) and [1809](https://tracker.physiomeproject.org/show_bug.cgi?id=1809).", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/99", "title": "Reimplement Neumann conditions"}, {"body": "I think we decided it was fine to disable these, I can create a tracker item if we should discuss this more?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/98", "title": "Disable PETSc signal handlers"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/97", "title": "Monodomain: fixes for multiple cell models."}, {"body": "This fixes the failing uniaxial extension Python example.

In the equations matrix diagnostic output, sparsity percentage was actually \"density\" so could be 100.0, which caused an error when formatting it with \"F5.2\".
I changed sparsity to the correct value and also allowed for a sparsity of 100.0 just in case.

Also changed a format string to work with the Intel compiler, it didn't like having an empty string in there for some reason?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/96", "title": "Fix bugs in diagnostic output"}, {"body": "Previously only the node numbers were updated, which caused errors when running the Meshes/MoreComplexMesh example.
Also changed the rest of the mesh_topology_elements_element_basis_set routine to use move_alloc.
[Tracker item 3284](https://tracker.physiomeproject.org/show_bug.cgi?id=3284).

@prasadbabarendagamage, can you review this?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/95", "title": "Update element node versions when changing an element basis"}, {"body": "Fixes errors running examples when OpenCMISS is compiled with the Intel compiler.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/94", "title": "Add missing nullify calls"}, {"body": "Just a minor change. This avoids getting segfaults later on if you pass a geometric field to the EquationsSet_CreateStart routine rather than a fibre field.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/93", "title": "Check for fibre field for finite elascitity equations"}, {"body": "... of opencmissextras from scratch. Tracker item 3265.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/92", "title": "Update the opencmiss installation document"}, {"body": "monodomain problem solved on several 1D meshes, which are embedded in one 1D mesh used for the solution of the finite elasticity problem.
Tested on 1 and 2 CPUs.
no relevant tracker item", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/91", "title": "coupled 1D bioelectrics - 3D finite elasticity problem"}, {"body": "[Tracker item 3052](https://tracker.physiomeproject.org/show_bug.cgi?id=3052)

Neumann conditions aren't currently working but they aren't working on the current master branch either, and will be cleaned up later.

@prasadbabarendagamage, are you able to review this?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/90", "title": "Split boundary conditions array into fixed/free and specific BC type"}, {"body": "Interface now has its own coordinate system attached and we no longer use its parent region's coordinate system, when getting the coordinate system for the field in the interface

Tracker item: 3118

Prasad could you please review it? It's just a small bug fix.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/89", "title": "Interface coordinate system"}, {"body": "Added in FieldML input/output support for linear and quadratic simplex (triangle and tetrahedron) types. I've tested this with with FieldML 0.4 and 0.5 on my 64-bit machine with gnu compilers.

Tracker #3132", "user": {"avatar_url": "https://secure.gravatar.com/avatar/af3149b10e18a2ddc8c42e8c540b2fac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/88", "title": "Fieldml support for simplex elements"}, {"body": "To support building a dynamic library for the Python bindings.

I've also updated the Makefiles for LAPACK and Pastix in OpenCMISSExtras (revision 694).", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/87", "title": "Compile with -fPIC under Intel compiler"}, {"body": "I used cherry pick to get the commits and applied them to a clean master (same as central repository, hopefully).

Tracker Item: 3118

Prasad could you please review the code?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/86", "title": "Add coordinate system to interface"}, {"body": "Tracker item: 3118

Prasad can you please kindly review it?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/84", "title": "Add coordinate system to interface"}, {"body": "Fix some issues Nancy found with the bindings generation script.

- Don't match interface routines where the subroutine is commented out.
- Match parameters when there's a comment immediately after the name without any space.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/83", "title": "Fixes for bindings generation script"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/82", "title": "Minor Spelling mistake"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/81", "title": "Adding CUBPACK library and re-enabling TAO now that it works with PETSc 3.2."}, {"body": "First off, apologies that this pull is unacceptably broad- I will definitely avoid doing this again in the future. There are some formatting fixes interspersed into actual functional changes, which I now also know is to be avoided. The changes to Navier_Stokes_equations_routines.f90 in particular are extensive and a pain to go through on Github. Chris, maybe we could go through the changes during our meeting time Thursday?

That said, this was one of my development branches for a while and there are 3 main changes I've added in this pull request. I've also run these changes with the nightly and weekly tests with only the same failures we've been getting for the master

1) Streamline Upwind Petrov-Galerkin (SUPG) formulation
Added stabilizing SUPG formulation for transient Navier-Stokes problems. Stabilization weights are based on element-wise metrics (length scale, cell Reynolds #) and added to the convective terms of the jacobian and residual calculations based on the dominant velocity direction (along the streamline). I've benchmarked this against a 2D lid driven cavity problem up to Re ~5000 with results in good agreement with classic literature values.

2) Analytic types
Previously, most of the analytic types for NSE were based on unit shapes (e.g. cube, square, tet) and solved with various mixed interpolations as part of the 42 testing steps. I've left these in as they are very useful for testing but also wanted analytic types with more classic analytic solutions. Currently the only new-style analytic types that are set up are 2D Poiseuille and Taylor-Green vortex types and I will add the corresponding examples to the examples repo. I also plan on adding a Womersley type and 3D types for these.

3) General clean-up
I've taken out the intermediate matrix allocations in the jacobian and residual evaluate routines, as this significantly reduces runtime (for instance it takes less than 1/2 the time to run a make test on the FluidMechanics directory examples). I have left them in the comments in case someone wants to use them for debug purposes in the future. I've also tried to make things a bit more readable, with the Equations_set_setup routines looking more like they do in the Burgers routines along with some formatting fixes throughout.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/af3149b10e18a2ddc8c42e8c540b2fac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/80", "title": "Navier Stokes analytic routines and general clean-up; add SUPG type and routine"}, {"body": "[Tracker item 3195](https://tracker.physiomeproject.org/show_bug.cgi?id=3195)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/79", "title": "Change the html output to add build only examples"}, {"body": "Updated OpenCmiss to be compatible with FieldML0.5. Also fixed a few bugs.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/23775a212a4f1f13702994bb131f7705?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/78", "title": "Updated OpenCmiss to be compatible with FieldML0.5."}, {"body": "Fixes the failing finite elasticity examples, [tracker item 3124.](https://tracker.physiomeproject.org/show_bug.cgi?id=3124)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/77", "title": "Call PETSC_FINALISE after MPI_COMM_FREE"}, {"body": "[Tracker Item 3129](https://tracker.physiomeproject.org/show_bug.cgi?id=3129)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/76", "title": "Small modification to display the links to logs for python build"}, {"body": "Somehow this one was missed originally, although it was updated in the examples where it is used.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/75", "title": "Update parameter order for another CellML routine"}, {"body": "[Tracker item 3188](https://tracker.physiomeproject.org/show_bug.cgi?id=3188)

@PrasadBabarendaGamage, can you review this and test it with your collapsed node examples?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/74", "title": "Support versions in exnode/exelem export"}, {"body": "[Tracker Item 3129](https://tracker.physiomeproject.org/show_bug.cgi?id=3129).
Please merge pull request #70 before merging this pull request.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/73", "title": "Add Python examples to buildbot testing"}, {"body": "Use upper case with underscores for constants, lower camel case for variables and separate type name from routine/method name with an underscore.

[Tracker item 3089](https://tracker.physiomeproject.org/show_bug.cgi?id=3089)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/72", "title": "Code style update for API"}, {"body": "Check if field parameter set is already created before creating it, to avoid errors when solving another problem with the same gravity field.

A couple of other small unrelated fixes too.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/71", "title": "Fix bug when reusing gravity field"}, {"body": "Originally, the html output does not handle several tests executing in the example directory and cause the exception. e.g. FiniteElasticity/Cantilever. This is the fix. In addition, test id is added to the log files' name to distinguish the logs for different tests. [Tracker item 3130](https://tracker.physiomeproject.org/show_bug.cgi?id=3130)

Adam, could you have a review of this? Thanks.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/70", "title": "Fix of several tests in the example directory. "}, {"body": "Wrap FieldML routine contents with ifdefs rather than ifdefing all the routines together, as the bindings generation isn't smart enough to parse the ifdefs and this is how the CellML routines work.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/69", "title": "Allow building Python bindings without FieldML"}, {"body": "Make the finite elasticity finite difference Jacobian calculation a general routine for any equations set. Had to put it in its own module to avoid circular dependencies.

Update it so that it works with multiple nonlinear variables and matches the new code style.

[Tracker item 3162](https://tracker.physiomeproject.org/show_bug.cgi?id=3162)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/68", "title": "Finite difference Jacobian calculation update"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/67", "title": "Fixing up mpi directory for mpl."}, {"body": "Allows make to run in parallel successfully.

Also add a Python script to check that they match the modules used in the source code.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/66", "title": "Fix Makefile dependencies"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/65", "title": "Fixing up MakefileCommon.inc"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/64", "title": "Fixing up MakefileCommon.inc"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/63", "title": "Fixing MakeCommon.inc"}, {"body": "This pull request updates code in pull request 46 (https://github.com/OpenCMISS/cm/pull/46).
The branch from which this pull request originates was created from the same branch from which Jessica created pull request 46.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/ea5df5d403f7b222c753bd6abbe2519e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/62", "title": "Updating membrane mechanics code from pull request 46"}, {"body": "Can Adam please review it please?

tracker item: 2764 \t", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/61", "title": "Fix derivative calcuation for regular meshes"}, {"body": "Re-apply changes from commit 4b70e4c5 to opencmiss.f90 as they were
accidentally reverted in commit 86313e036a4313f236e483404614a7bb242bf89e.

Adding data points to interface in types.f90; adding new routines for
interface in data_point_routines.f90; adding new routines for interface
data points to opencmiss.f90

Tracker item 2000", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/60", "title": "Adding data points to interface"}, {"body": "Chris's MPI branch but without the FieldML change, and with the MPI changes merged into utils/MakefileCommon.inc.

Instead of OpenCMISS/cm#56", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/59", "title": "MPI Changes"}, {"body": "Needs to be done after pull request 50", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/57", "title": "Fieldmlcpb"}, {"body": "Needs to be done with pull request 50.
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/56", "title": "Mpichange"}, {"body": "Added checks for the dimension of the generated mesh, to enable 1D and 2D examples
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/55", "title": "bug fix in GENERATED_MESH_REGULAR_GEOMETRIC_PARAMETERS_CALCULATE"}, {"body": "This reverts part of 2bf76dabb7594704fbe3170dcd89a27693da9257 and also updates the generated_mesh_geometric_parameters_calculate routine to use the correct component node to user number routine for simplex elements.

Tracker item 3095.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/54", "title": "Fix generated meshes with simplex elements"}, {"body": "Details see [Tracker item 3130](https://tracker.physiomeproject.org/show_bug.cgi?id=3130). Some commits in this pull request are related to [Tracker item 3121](https://tracker.physiomeproject.org/show_bug.cgi?id=3121).", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/53", "title": "Change format of the nightlytest.prop or weeklytest.prop to json object"}, {"body": " - Remove incorrect constitutive relation
- Add new constitutive relation
- Add a small amount of documentation

[Tracker item 3039](https://tracker.physiomeproject.org/show_bug.cgi?id=3039)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/52", "title": "Update to coupled elasticity and Darcy pressure"}, {"body": "[Tracker item 2147](https://tracker.physiomeproject.org/show_bug.cgi?id=2147)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/51", "title": "Python bindings updates"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/50", "title": "Removing Nodal from FieldML input parameters"}, {"body": "This is already taken care of within
FIELD_INTERPOLATION_PARAMETERS_ELEMENT_GET.

[Tracker item 3157](https://tracker.physiomeproject.org/show_bug.cgi?id=3157)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/49", "title": "Remove elasticity RHS scale factor multiplication"}, {"body": "Fix [tracker item 2751](https://tracker.physiomeproject.org/show_bug.cgi?id=2751) by adding face integration terms.

Add some documentation for Darcy's equation, [tracker item 2067](https://tracker.physiomeproject.org/show_bug.cgi?id=2067).", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/48", "title": "Darcy equation updates"}, {"body": "This fixes the calculation of geometric parameters and the surface get routines for regular geometric meshes, using the generated_mesh_regular_component_node_to_user_number routine written by Nancy (@xyan075). These changes are needed to account for the new node numbering scheme previously implemented.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/47", "title": "Fix generated mesh geometric calculation"}, {"body": "Tracker item 2428

Prasad to review this.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/bf0a400f2b5475e14ae265762a6c0505?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/46", "title": "Correcting membrane mechanics in 2D and 3D space "}, {"body": "Nullify pointers, necessary for running CylinderInflation example with Intel compiler", "user": {"avatar_url": "https://secure.gravatar.com/avatar/a220117fdfc8ff4a25f3961c8b6c63c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/45", "title": "Nullify pointer for Intel compiler"}, {"body": "[Tracker item 2147](https://tracker.physiomeproject.org/show_bug.cgi?id=2147)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/44", "title": "Initial Python bindings"}, {"body": "Fix some outdated stuff and add a section on commit messages to the code style page, including a suggested commit message format.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/43", "title": "Documentation update"}, {"body": "New subroutine \"GENERATED_MESH_REGULAR_COMPONENT_NODES_TO_USER_NUMBERS\" added to to replace \"COMPONENT_NODES_TO_USER_NUMBERS\" to compute node user numbers for regular type generated meshes

[Tracker item 3095](https://tracker.physiomeproject.org/show_bug.cgi?id=3095)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/42", "title": "Compute node user numbers for regular generated mesh"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/41", "title": "Fixes for Oslo so they can use OpenMPI"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/40", "title": "Fixes for Poiseuille Flow latex"}, {"body": "I cannot build Latex locally using the Latex_make.sh
There seem to be missing style files.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/a1b728b6a232cb16554fd216f45f6b73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/39", "title": "Latex Documentation"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/38", "title": "Code style changes."}, {"body": "Tracker item 3073. Makefile doesn't work with parallel compilation (make -jX) -- https://tracker.physiomeproject.org/show_bug.cgi?id=3073
Tracker item 3074. Support m4 preprocessor in Makefile and CMakeLists.txt -- https://tracker.physiomeproject.org/show_bug.cgi?id=3074", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/37", "title": "Fixes and improvements in the build system (GNU Make and CMake): Tracker items 3073 and 3074"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/36", "title": "added GLOBAL_ITERATION_COUNTER to TIME_LOOP_TYPE"}, {"body": "[Tracker item 3039](https://tracker.physiomeproject.org/show_bug.cgi?id=3039). Include the effect of fluid influx on gravity loading and add another constitutive relation.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/35", "title": "Update to coupled Darcy pressure and elasticity"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/34", "title": "Fixes for LAPACK solver"}, {"body": "Fix for [tracker item 3049](https://tracker.physiomeproject.org/show_bug.cgi?id=3049). Fixes exelem and exnode export problems. Also fixed the indentation in field_IO_routines.f90 which was a horrible mix of 2 and 3 spaces so the full diff won't be very useful but the actual changes are all in other commits.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/33", "title": "Tracker item 3049"}, {"body": "Remove references to BOUNDARY_CONDITIONS_VARIABLE%BOUNDARY_CONDITIONS_VALUES", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/32", "title": "Remove references to BOUNDARY_CONDITIONS_VALUES"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/31", "title": "Minor bug fixes following previous pull."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/30", "title": "Minor bug fixes following previous pull."}, {"body": "There were several memory leaks in the OpenCMISS framework that prevented me from finding my own ones using valgrind. Fixed them.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/29", "title": "Fixed memory leaks"}, {"body": "[Tracker item 3045](https://tracker.physiomeproject.org/show_bug.cgi?id=3045). Do some reorganising of solver_linear_direct_create_finish to avoid repetition and add support for LAPACK/PLAPACK solver libraries.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/28", "title": "3045: Direct linear solver update"}, {"body": "Adding data points to interface in types.f90; adding new routines for interface in data_point_routines.f90; adding new routines for interface data points to opencmiss.f90
Change old cmiss notation (ndp) to more readable system (data_point_idx) in data_point_routines.f90 and data_projection_routines.f90

Tracker item 2000", "user": {"avatar_url": "https://secure.gravatar.com/avatar/7a242fa69692c232b8b2d1b14448b777?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/27", "title": "Adding data points to interface"}, {"body": "[Tracker item 3047](https://tracker.physiomeproject.org/show_bug.cgi?id=3047)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/26", "title": "3047: Add missing nullify calls and fix typos"}, {"body": "The combined rss feeds are created in [Yahoo pipe](http://pipes.yahoo.com/opencmiss). A document page listing and describing all the mailing lists and rss feeds are added to the programmer doxygen documentation. See [Tracker 3036](https://tracker.physiomeproject.org/show_bug.cgi?id=3036). ", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/25", "title": "Add the documentation page about how to get updated with mailing lists and rss feeds"}, {"body": "When the error handling mode is set to CMISSTrapError, the program
should exit with the error code, rather than zero.

Calling WRITE_ERROR was resetting the error code to zero before exiting.

[Tracker item 3029](https://tracker.physiomeproject.org/show_bug.cgi?id=3029)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/24", "title": "Make sure that programs exit with the error code"}, {"body": "Use correct control time loop interation number.

[Tracker item 2067](https://tracker.physiomeproject.org/show_bug.cgi?id=2067)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/23", "title": "Fixes for failing Darcy and Darcy + finite elasticity examples"}, {"body": "Fix: Don't try to compile cmiss_cellml_dummy.f90, it's gone since commit eb8391e80652d415482f8449e8f979c1d831e73d. Instead use the preprocessor variable USECELLML to tell OpenCMISS, if it is supposed to use CellML or not.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/22", "title": "Fix for CMake compilation: Don't try to compile cmiss_cellml_dummy.f90, but use the USECELLML preprocessor variable."}, {"body": "Parallel compilation (make -j *) is very sensitive to the correct dependency settings and fails sometimes without them.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/21", "title": "Fix: Added missing dependencies to Makefile."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/20", "title": "Fixes for GNU 4.6 compilers"}, {"body": "In \"generated_mesh_routines.f90\"

Tracker Item 2764

\"coordinate_idx\" did not increment and led to an infinite loop when one of the \"MAXIMUM_EXTENT\" parameter is zero.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/39fc1ab6d8cb7918362948566b4b7362?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/19", "title": "Bug fixed when generating a surface mesh in 3D space"}, {"body": "The test target is added to the Makefile. In order to run \"make test\", the
OpenCMISS library should be built. The python testing tool, nose, should be
installed. By default, it will build with Intel compiler on a small set of
tests (those executed in the nightly build) under
directory. There are three options for the target:
* COMPILER=(intel|gnu)
* SIZE=(small|large), small for those tested in nightly build, large for those
tested in the weekly build.
* DIR=(DIR), will test examples under DIR from only.
Please see https://tracker.physiomeproject.org/show_bug.cgi?id=3013 for details.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8f71a9e021157c901253d21cb2c14749?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/18", "title": "Add \"make test\" in Makefile to test all and/or selected examples"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/8ae65723fc57d516c24f98d5b0f68def?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/17", "title": "Resubmitting pull request for FieldML API changes."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/16", "title": "coupled Monodomain Finite Elasticity"}, {"body": "Adds doxygen comments and changes how booleans are handled.

The C header now has:

typedef unsigned int CMISSBool;
const CMISSBool CMISSTrue = 1;
const CMISSBool CMISSFalse = 0;

Routines that take logicals take CMISSBool parameters and opencmiss_c.f90 just uses Fortran logicals of the default kind and converts C pointers straight to pointers to logicals without doing any allocation.

Fortan logicals default to 32 bits in both gfortran and ifort so we can use a C int to represent a logical, this can be updated later to account for other compilers if we have to. The size of _Bool in C99 is implementation dependent and can be 4 bytes but seems to be usually 1 byte, so I'm not sure how Fortan handles LOGICAL(KIND=C_BOOL), I guess it uses whatever size gcc uses.

There are some warnings when compiling opencmiss_c.f90 but I don't think there's any way to remove these unless we were to use LOGICAL(KIND=C_BOOL) everywhere:

Warning: Variable 'value' at (1) is a parameter to the BIND(C) procedure 'cmissfieldparametersetupdateconstantlcnum' but may not be C interoperable
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/15", "title": "Updates to C generation"}, {"body": "Update doxygen installation instructions now that the repositories are hosted on GitHub.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/14", "title": "Doxygen documentation update"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/13", "title": "Formatting output"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/12", "title": "Fix Doxygen references"}, {"body": "These changes add a python script to generated opencmiss.h and opencmiss_c.f90 from opencmiss.f90, and modify the Makefile to call this script. Some changes were also made to opencmiss.f90 to be able to generate the correct code.

I also removed ExampleMakefileC as it was out of sync with ExampleMakefile and seemed unnecessary, as ExampleMakefile already had everything required to build a C example but just needed a small fix.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/11", "title": "Generate opencmiss_c.f90 and opencmiss.h automatically"}, {"body": "Modified Makefile(s) and OpenCMISS interface module to:

* let the user define some paths using environment variables without modifying Makefiles (the latter usually brings conflicts when updating OpenCMISS)
* allow mvapich2 in ExampleMakefile (the Makefile of the OpenCMISS library already accepted it, but ExampleMakefile didn't)
* allow the consistent deactivation of FieldML in Makefile and ExampleMakefile (was a mess: Makefile had a variable to switch FieldML on/off, but when switched off, the compilation failed; ExampleMakefile allowed setting the switch variable from outside, while Makefile had it always turned on, unless you modified the Makefile)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/10", "title": "Makefile(s): More flexibility to allow non-standard, customized installations"}, {"body": "It looks like finite_element_routines.f90 was a dead end?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/9", "title": "General cleanup stuff"}, {"body": "gnu compiler 4.4 somehow misinterprets these statements if no extra parentheses are used. ", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e70211d980dc61a49c8b47722bf026fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/8", "title": "Minor bug fixes in generated_mesh_routines.f90"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4f800abd9299c80b356a0fc1ca3be9ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/7", "title": "2 little bug fixes"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/6", "title": "Remove extra line from macros.tex"}, {"body": "Set it to OPENCMISS_ROOT/examples rather than OPENCMISS_ROOT/cm/examples", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/5", "title": "Change default value for OPENCMISSEXAMPLES_ROOT"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/4", "title": "Removing svn files accidently added."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/3", "title": "Fixing LaTeX notes."}, {"body": "These changes associate boundary conditions with solver equations rather than equations sets, so as to avoid having to repeat boundary conditions for some coupled problems and because it makes sense in a problem structure that the boundary conditions are part of the problem rather than the equations sets.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/2", "title": "Move boundary conditions to solver equations"}, {"body": "Set correct order in equations_set_setup equations and
fixed an error in equations_mapping_dynamic_variable_type_set

Before my multiple nonlinear variables change, if the equations were linear it checked that the time variable wasn't the same as the residual variable type, and this got carried through but seems to be a mistake.

@chrispbradley is it correct that the time variable shouldn't be the same as a linear variable type but should be a nonlinear variable type? This is how I had to change it to get the MultiPhysics/CoupledDiffusionDiffusion/MonolithicSchemeTest example to work.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c48ed994ee7731ac99147d0161bd81e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/OpenCMISS/cm/pulls/1", "title": "Fix equations mapping for diffusion equations"}] \ No newline at end of file diff --git a/ScrapeRepoPulls.py b/ScrapeRepoPulls.py index 97a64660e9..bd481cfe6b 100644 --- a/ScrapeRepoPulls.py +++ b/ScrapeRepoPulls.py @@ -7,8 +7,8 @@ # define each repo you are scraping in this run # user_name/repo_name as set in the URL repos = [ - #"OpenCMISS/cm", - #"twitter/bootstrap", + "OpenCMISS/cm", + "twitter/bootstrap", "rails/rails", "nathanmarz/storm", ] @@ -67,7 +67,7 @@ # save this JSON file print "Saving " + repo missiles = open(repo.replace('/','-') + ".json", 'w') - missiles.write( str( output_pulls[index] ) ) + missiles.write( json.dumps( output_pulls[index] ) ) missiles.close() # go to next repo diff --git a/nathanmarz-storm.json b/nathanmarz-storm.json index 4717ca20f4..5935eff0bc 100644 --- a/nathanmarz-storm.json +++ b/nathanmarz-storm.json @@ -1 +1 @@ -[{'body': 'I found that by setting the supervior_id to optional in the struct definition I am able to get a response from

```ruby
client.getClusterInfo()
```

When it is set as required I am getting

```
Thrift::Exception: Required field supervisors is unset!
```

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f565202919771fbcdf236a3ee06d5b10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/399', 'title': 'set supervisor_id as optional'}, {'body': 'Display stack trace instead of plain white screen when exception happens in action method of UI.
It\'s very useful for me to see exception in browser. For example, I can understand when nimbus isn\'t available or topology with specified name isn\'t exists, etc.

Screenshot: http://f.slukjanov.name/storm/ui-errors-demo.png

P.S. we can write tons of handlers to write error message like "Nimbus isn\'t available", but I think that this information is easy parseable from stack traces.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/395', 'title': 'catch-errors middleware added'}, {'body': 'Simple way to kill all topologies in Storm cluster.

build: http://f.frostman.ru/tsc-dists/storm-0.8.2-wip15-killall.zip', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/394', 'title': 'kill --all flag'}, {'body': 'for issue #334', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/388', 'title': 'expose testing/test-tuple into java api'}, {'body': 'for issue #324', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/387', 'title': 'add projection validation for stream methods'}, {'body': 'This provides a valid command for shell processes send back an exception or general error message. This would allow a viewable error in the UI for ease in production.

I continue to see "failed tuples" in my shell processes, but I can not see the underlying reason for them without seeking out the individual worker log and line.

This change should allow a user to see the passed exception from the shell process straight to the UI for easy diagnoses and debugging.

The only edit I would make is to either move this functionality to the "log" command or create a specific exception class like ShellTupleException for more clear messages.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f8e6593112a03bd822ecf2da64630c24?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/380', 'title': 'Add a way to send an exception through shellbolt'}, {'body': 'fix for #374

After adding lein version check we should parse the sixth line of project.clj instead of first to take version from it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/375', 'title': 'bin/build_release.sh fixed'}, {'body': 'Currently "lein (uber)jar" silently fails when using lein >= 2, and "lein test" complains about missing files on the classpath.

This is a pain when you\'re trying to get your dev environment setup for Storm, after following every instruction to a tee, only to have nothing work. As long as Storm is incompatible with lein 2.x, a big warning should be included somewhere in the docs telling the user to use lein 1.x
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2410b95d82bae7b93788a5d40e14d736?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/366', 'title': 'Include a warning about Leiningen 2.x in docs'}, {'body': "This lets you run the jetty server alongside the repl, which makes it easier to do development on the UI. The use of 'defonce' lets you recompile without worrying that the server gets redefined. The following commands start/stop the server from the repl:

(.start server)
(.stop server)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2410b95d82bae7b93788a5d40e14d736?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/364', 'title': 'Make UI friendly to repl development by not joining jetty thread'}, {'body': 'Issue 308: https://github.com/nathanmarz/storm/issues/308
Leaving supervisors alone for now.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ae80494d1dab44bcee77271ce4f63017?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/354', 'title': 'Add Configuration Information to UI'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/349', 'title': 'IntelliJ IDEA project/workspace files added to gitignore'}, {'body': 'Some screenshots: http://f.frostman.ru/storm/ui-tplg-actions/', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/348', 'title': 'Topology base actions buttons added to the UI'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2ab1b5a01dc6ab3dabd65f1070f6a57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/346', 'title': 'Update src/multilang/py/storm.py'}, {'body': 'A storm user was not printing exceptions thrown by StormSubmitter, wasted a bit of time because nimbus.log had no info about it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/344', 'title': 'log topology submission issues'}, {'body': 'for issue #332', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/339', 'title': 'add api for specifing name for stream/bolt'}, {'body': 'for issue #324', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/338', 'title': 'add validation for the projection field'}, {'body': 'Hostname of Nimbus should be taken from conf files instead of hardcoded "localhost".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/329', 'title': 'Storm UI: take nimbus host from the conf'}, {'body': 'https://github.com/nathanmarz/storm/issues/289', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/328', 'title': 'Create Trident interface for getting full contents of a state'}, {'body': 'https://github.com/nathanmarz/storm/issues/267', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/327', 'title': 'Make it possible to submit topology in inactive state'}, {'body': "I could also rewrite this to be slightly more pythonic as opposed to using globals if you'd like. Are there tests for this script?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/082fc9da4328aa0cebfecf836d1b66c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/320', 'title': 'Default to ipv4'}, {'body': 'Adds `boolean contains(String field)` method to `Fields` and `Tuple` to check whether a tuple contains a specified field or not as in 0.7.*. Please see also #317.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ef45a84b10aa3cb5acd2ea0c9846bd3b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/319', 'title': "add 'contains' method to Fields and Tuple."}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f89adbc8e686e72004d8be6902a89d74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/318', 'title': 'Fix directory bug in install_zmq.sh'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/315', 'title': 'support kryo decorators'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e48a04bbe3a75a9686f689ef8c6378a1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/314', 'title': 'Fixes typo in CHANGELOG.md'}, {'body': 'for #243.
Added -conffile option to use original yaml file.
>storm jar allmycode.jar -conffile org.yaml org.me.MyTopology arg1 arg2 arg3
( Conf filename must be written in relative path from ~/.storm/)

Also added -confdir option to use orignal confdir, instead of ~/.storm . ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5de063e47d0da381a3848e761a059a7a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/312', 'title': 'original conf file #243.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/300', 'title': 'log4j switched to logback & upgrade to leiningen 2'}, {'body': "Hi Nathan,\n\nHere's a quick fix to upgrade slf4j-* deps for storm to the latest 1.6.6 version.\nNamely, the most-wanted feature in slf4j-api 1.6.0 not available in1.5.* is\nhttp://slf4j.org/faq.html#paramException\n\nslf4j-api is already there from thrift7 deps so I had to add it explicitly in the list of deps (backward compatible)\n\nthanks\n-adrian\n\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b853a8b2fbf5d4026d4ca660e05daa4b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/295', 'title': 'Update slf4j-* to 1.6.6 version'}, {'body': 'After doing some profiling of a real-life topology implemented in Python, I found that a lot of time was spent communicating between ShellSpout or ShellBolt and the actual spout or bolt code in Python. After making the attached changes to ShellSpout and ShellBolt, and making a couple of changes to storm.py, the communication time was 2.5x faster.\n\nThe primary change to storm.py was adding an optional "need_task_ids" parameter to emitSpout() and emitBolt().\n\nI followed this up by adding new storm.py functions emitManySpout() and emitManyBolt(). Using these functions to batch up the emission of tuples improved communication performance about another 25%.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37a1fc4b6d13be9f49dc08937fd815ab?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/294', 'title': 'Change ShellSpout and ShellBolt so that returning task IDs to the spout or bolt is optional'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/293', 'title': 'switch log4j to logback'}, {'body': 'This is for issue https://github.com/nathanmarz/storm/issues/280', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/291', 'title': 'detect existing topology before uploading jar'}, {'body': "Sorry, reverting partially my change.\n\nI'm currently busy with implementing a MongoDB State and It's just impossible to have something like:\n\n```java\nstate = new MongoState>(template, TransactionalValue.class);\ncachedMap = new CachedMap>(state, opts.localCacheSize);\nreturn TransactionalMap.build(cachedMap);\n```\n\nAnd i need to pass the entityClass as argument because i need it for the mongo template to automaticly serialize / deserialize the pojo. \n\n```java\nstate = new MongoState(template, TransactionalValue.class);\ncachedMap = new CachedMap(state, opts.localCacheSize);\nreturn TransactionalMap.build(cachedMap);\n```\n\nit will be then", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37564a5a58c789097a6caef80b8d5629?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/288', 'title': 'Reverting the generics tightening because nested generics in java are limited'}, {'body': 'Fix for issue #285', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37564a5a58c789097a6caef80b8d5629?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/286', 'title': 'Fixes for Generics usage in Trident'}, {'body': 'Debos-MacBook-Pro:bin ddutta$ git diff e264a25\ndiff --git a/bin/install_zmq.sh b/bin/install_zmq.sh\nindex 016af46..f70772d 100755\n--- a/bin/install_zmq.sh\n+++ b/bin/install_zmq.sh\n@@ -1,5 +1,5 @@\n #!/bin/bash\n-export JAVA_HOME=$(/usr/libexec/java_home)\n+export JAVA_HOME=${JAVA_HOME:/usr/libexec/java_home}\n \n if [ ! -d "$JAVA_HOME/include" ]; then\n echo "\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ac5fd0906704549d69a72834866dc8fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/284', 'title': 'Solves Issue 273 + we need to set JAVA_HOME from env vars'}, {'body': 'This is a simple bump to the latest version of netflix/curator that maintains compatibility with zookeeper 3.3.x.\n\n**Notes related to upgrading to curator 1.1.x/zookeeper 3.4.x:**\n- zookeeper 3.4.x uses Netty internally rather than NIO directly - this will impact the method for creating an in-process zookeeper in "zookeeper.clj" (mk-inprocess-zookeeper).\n- The above issue can possibly be addressed by using some of the curator-test classes for creating in-proc zookeeper servers.\n- Looks like there are some authentication options in the latest version of curator/zookeeper.\n\nI tried a bump to curator 1.1.16/zookeeper 3.4.5 by reusing curator test classes (modified the the mk-inprocess-zookeeper method). It made the tests run excruciatingly slow with a bunch of stacktraces. Tests passed, but I didn\'t trust the result. I\'ll continue investigating at some point.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/423abccbed514c8464e12ae1479003a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/277', 'title': 'Update Curator Version'}, {'body': 'Currently Cluster.getNeedsSchedulingExecutorToComponents returns all the executors rather than just the executors needs scheduling. It is fixed by change the type of ExecutorDetails.startTask/endTask from Integer to int, because `new Integer(10) != new Integer(10)`. Also done some cleanup.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/275', 'title': 'fix Cluster.getNeedsSchedulingExecutorToComponents & some cleanup'}, {'body': 'The location currently specified does not exist.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7fbbdb7f7f1f23c01d2fe69e143f623f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/271', 'title': 'Modifying URI to download zeromq-2.1.7 from.'}, {'body': "I've added any ouput from the error stream of the subprocess to the detail message of the RuntimeException thrown to make it easier to figure out why the subprocess exited unexpectedly.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7fbbdb7f7f1f23c01d2fe69e143f623f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/270', 'title': 'More detailed error messages when the shell subprocess pipe closes.'}, {'body': "implemented the java version of 'testing'", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/266', 'title': 'Issue72'}, {'body': 'I moved the call to {Bolt, BasicBolt, Spout}.initialize into the try ... except block in storm.py so that exceptions during initialization get logged.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3bfcb61f363fa990002448607fed123b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/256', 'title': 'Moved initialize call in Bolt and BasicBolt into try ... except block'}, {'body': 'Bolth.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c8a7750a333cfb27a1c72aa61b73b763?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/249', 'title': 'Clears up a lot of confusing nomenclature.'}, {'body': 'This patch forces supervisor realize task-ids that it will flush into the local state file. Without the realization, supervisor can stop due to ClassNotFoundException in some rare cases.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/478f1804873811a3f4207377b8d638a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/246', 'title': '0.7.2'}, {'body': "Add info about the taskId that is emtting, failing, or acking tuples, and the spout taskId to which ack and fail events are sent. This would be very useful for, say, a custom monitoring system implemented on top of the hooks. The taskId allows all of the events to be correlated to the local worker JVM's tasks.\n\nI didn't see any tests for hooks.\n\nI have other ideas for extending hooks:\n- Add an event for calling execute(tuple) on a bolt task\n- Add hooks for starting and cleaning up a child worker\n- Add documentation :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ff98cf6f84857684c813d81c7a40b12a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/242', 'title': '0.8.0 better hooks'}, {'body': 'for issue #164', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/239', 'title': 'storm pluggable scheduler'}, {'body': "Using os.system() for creating the JVM forks a child of the Python\nprocess. This makes it difficult for process managers like daemontools\nor runit to kill/restart the process at admins' command: the process\nmanager tracks the PID of the Python process instead of that of the JVM;\nand terminating the Python process unfortunately doesn't kill its JVM\nchild.\n\nSome process managers let you configure the number of times the service\nforks, or try to detect forks, but it's a bit of a rabbit-hole. Better\nto make the service not fork in the first place.\n\nFor that reason I've replaced the call to os.system() with os.execvp(),\nwhich replaces the Python process with the JVM, and thus lets the\nprocess manager track the right PID.\n\nos.execvp() requires that you give command-line arguments as an array of\nstrings, rather than one long whitespace-separated string, so I had to\nchange some of the surrounding code accordingly. Note this has the\npleasant side-effect that Storm should now also run if you install it in\na directory that has spaces in its path name.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0d4ef9af8e4f0cf5c162b48ba24faea6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/238', 'title': 'Use exec instead of forked child process for JVM'}, {'body': 'I think this is simpler bug-fix version than yours.\nin my code, I make the CoordinatedBolt ack the tuple from COORDINATED_STREAM_ID stream only if its received tuple count is equal to expectedTupleCount for the specified source task. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/33b70c796b9b0e6563ea1bcccbeccfee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/237', 'title': 'a simpler bug fix version for CoordinatedBolt'}, {'body': "I have seen your fix version and think it's too complicated.\nI make a simple fix , please have a look. Thank you!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/33b70c796b9b0e6563ea1bcccbeccfee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/236', 'title': 'a bug fix for CoordinatedBolt'}, {'body': 'for issue #233', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/234', 'title': 'Fix TransactionalTopologyBuilder NPE'}, {'body': 'Replaces the Curator 1.0.x series dependency with 1.1.3, which introduces ZooKeeper 3.4.2. Changed the in-process ZK server to use the new NIOServerCnxnFactory in ZooKeeper 3.4.x.\n\nZK 3.4.x clients are compatible with ZK 3.3.x ensembles.\n\nThis change makes Storm compatible with HBase 0.92, which requires the new ZK 3.4 API.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/335167822802991c14298e9bcd86c45e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/225', 'title': 'Update to Curator 1.1.3/ZooKeeper 3.4.x'}, {'body': 'for issue #164', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/224', 'title': 'pluggable scheduler for storm'}, {'body': 'for issue #89', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/213', 'title': 'add a button in storm-ui to show/hide system stats'}, {'body': 'executeBinary returns java.nio.ByteBuffer, legacy "execute" method now
converts from ByteBuffer to String using default encoding', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/283b8cef7a285ecd06b5a1cf1c98daa7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/211', 'title': 'Converted the DRPC mechanism to use binary (ByteBuffer) results sets but preserve String output for existing users.'}, {'body': 'for issue #97', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/207', 'title': 'change to do worker-heartbeat rather than task-heartbeat'}, {'body': 'for issue #205', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/206', 'title': 'validate storm components subscribe from existing components/streams'}, {'body': 'for issue #172

I changed the messaging protocol a little:
* the connection no longer listen on virtual-port(task-id), they listen on a worker port now.
* send-local-task-empty function is removed -- because the task does not listen on a socket anymore, we dont need to unblock the socket, we can just put an empty byte-array into the receive-queue directly.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/200', 'title': 'Optimize sending tuples between tasks colocated in same worker'}, {'body': 'To enable proper subclassing including super() usage, new-style classes are required.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/de1963fbed1a7d77e6d9a319ae406c1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/197', 'title': 'multilang: Use new-style classes in Python.'}, {'body': 'Since exceptions (e.g. when the shell process crashes) are thrown in new threads now, the ShellBolt keeps on running.

Does this patch fix all such issues?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/195', 'title': 'fix issue with shell bolts not restarting'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fa3a5cda172454dc81fd57e77419dfb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/193', 'title': 'clojure 1.4 compat'}, {'body': 'note the version of my carbonite fork needs to be changed. I issued a separate pull request on storm/carbonite for that.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fa3a5cda172454dc81fd57e77419dfb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/192', 'title': 'bumped to clojure 1.4, all tests passing'}, {'body': 'perfect solution for issue #109 :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/187', 'title': 'ensure each process use its unique zk port in local mode(perfect solution)'}, {'body': 'for issue #185', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/186', 'title': 'fix the issue: "Timeouts in CoordinatedBolt can cause NPE later on"'}, {'body': 'for issue #162 . I added a new config: **topology.max.blot.pending** to let user specify the threshold.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/183', 'title': 'log warnning message when un-acked tuples in a bolt gets too large'}, {'body': 'for issue #120', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/182', 'title': 'add a config in storm.yaml to override local hostname'}, {'body': 'for issue #109 , changed much code in **cluster_test.clj**, because added a **let** clause in each test method, need to format the existing code a little bit.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/181', 'title': 'ensure each process use its unique zk port in local mode'}, {'body': 'for issue #170', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/178', 'title': 'add warnning message when not enough slots available for topology'}, {'body': 'for issue #92', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/177', 'title': 'resolved the issue that when a topology has not been assigned a task, the storm-ui breaks'}, {'body': 'for issue #166', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/175', 'title': "implemented the command: 'storm list'"}, {'body': 'for issue #169', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/174', 'title': 'add storm release version in storm-ui'}, {'body': 'Without the changes, slf4j-log4j12 resolves to version 1.5.8, which ends up conflicting with slf4j-api 1.6 resolved by sbt in a build of ScalaStorm:

```[error] SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6]```
```[error] SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.```

With the changes, Storm uses the current slf4j 1.6.4, and everyone seems happy.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aaa2e907159f6919c4a4c8039d46752f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/167', 'title': 'replace slf4j 1.5.8 with slf4j 1.6.4'}, {'body': 'I changed the protocol like so:

```
-> {"pidDir": "...", "conf": {...}, "context": {...}}
<- {"pid": 123}
-> {"command": "next"}
<- {"tuple":["bertels\u4eba"],"id":1,"command":"emit"}
-> [3]
<- {"command":"sync"}
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/165', 'title': 'JSON compliance in shell protocol, with Python and Ruby impls'}, {'body': 'Just uses JSON for everything, including the pid/piddir, which cleans up both the Java implementation and multilang implementations slightly.

This is currently based on your fix-shell-encoding.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/161', 'title': 'Simplify shell protocol'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/607bc440dcb87a0649b380e0e217590e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/159', 'title': 'for issue #44'}, {'body': "Fields receives a list of strings that is stored internally on an ArrayList however it is indexed with a HashMap and field indexes can be retrieved by name (Tuple fields can be retrieved by name too) therefore Fields should prevent duplicates to avoid ambiguity and internal inconsistencies between _index and _fields.

I couldn't find tests for this class so I've added those as well.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a17ce5cbbdb0d5053d75eac39107b66b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/157', 'title': 'prevent duplicates on Fields'}, {'body': 'I have made the modifications we talked about :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/607bc440dcb87a0649b380e0e217590e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/156', 'title': 'for issue #111'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/607bc440dcb87a0649b380e0e217590e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/152', 'title': 'for issue #145'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/148', 'title': 'allow destructuring of tuple arg in defbolt'}, {'body': "If the seq is partially consumed it shouldn't return the count of the full list of fields. See ASeq.count()", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2147c68b7ec5d32424a717c801525d56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/147', 'title': 'The count of a seq is 1 + the number of remaining seqs through next()'}, {'body': 'A minor convenience...', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/143', 'title': 'add `:debug true` shortcut for components in clojure dsl'}, {'body': "right now symlinking the bin onto PATH doesn't work properly, because abspath doesn't follow the symlink.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/592c29d1042d5f0da1524ff17bbe25da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/142', 'title': 'Allow symlinking of the storm binary'}, {'body': 'The _readTaskIds/_readTuple trampoline/queue stuff in the Python implementation seems funny.. not sure about that \u2014 I am not fluent in Python. Still working on a node.js version where the lack of synchronization around task ids after emits is no problem.

I haven\'t yet tested reliable spouts. Will do that sometime soon.

I made a small change to the protocol, expecting and "end\\n" after the pid as well, to be consistent. I could easily add back in the special case.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/138', 'title': 'ShellSpout, async ShellBolt, python implementation'}, {'body': 'this request is for issue #89 .
Add checkbox to hide components that prefixed with "__".
But I don\'t know where the checkbox should be placed.
Please try it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5de063e47d0da381a3848e761a059a7a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/136', 'title': '#89 Show/hide implicit parts of topology in Storm UI'}, {'body': 'pull request for this issue: https://github.com/nathanmarz/storm/issues/104', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/135', 'title': 'pull request for this issue: https://github.com/nathanmarz/storm/issues/104'}, {'body': 'Only commit 1f63ad98 is needed. I am sorry that I can not produce a pull request just contains the commit.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4dc8343c41c91296bf91327486679238?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/133', 'title': 'fix for issuse 122'}, {'body': 'This patch fix issue #122
Add URLEncoder for ui.core to use space character in spout/bolt id.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5de063e47d0da381a3848e761a059a7a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/128', 'title': 'URLEncoder for ui.core (issue 122 )'}, {'body': 'This is a small change DRPCClient.java to add a timeout option to the underlying TSocket.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dda7171e6ae0e26e7e0d8d7ddf2a56cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/127', 'title': 'Add a timeout option to DRPCClient'}, {'body': 'it can be used like this:

./bin/storm -c nimbus.host=XXX -c nimbus.thrift.port=6627

all the simple config values can be overriden except for the complex types like zk addresses, which is an array.

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/93bdbcfba6143e54a614bc20b7c16d4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/125', 'title': 'push request for issue: 95 '}, {'body': 'This patch should fix issue #119', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c6826a52ca5c09a29445dd98416edea7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/123', 'title': 'Fix string encoding in ShellBolt protocol (send UTF-8).'}, {'body': 'Use the storm.home env property to make the logs path absolute

With the default configuration , if start the storm not in the storm home folder, the logs will be written into the relative path of the working directory, which is hard to trace.

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/93bdbcfba6143e54a614bc20b7c16d4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/121', 'title': 'add storm home for default log4j configuration to use absolute path for logs folder'}, {'body': 'Updated ``bin/storm``:

* usage message update
* help message per commands (e.g. ``bin/storm help ui``)
* simple error handling
* fix some Python misc
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b9b7a5ffa24e2af6f877a7950461ba0f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/116', 'title': 'Help message per commands for Storm client'}, {'body': "...se .project and .classpath files by running lein eclipse.

I'm used to working in eclipse for projects (as I guess are quite a few Java developers) so it would be great if the lein-eclipse plugin could be added to make support for that easier.

Thanks,", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/209774f1ccb34b954bd58efc00f07935?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/114', 'title': 'Added the lein eclipse plugin to the project.clj. You can generate eclip...'}, {'body': "...112

Found this bug whilst I was testing out storm drpc for some projects I'm working on. This should make the error logged more clear if users don't add servers to the drpc list before they run a drpc topology.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/209774f1ccb34b954bd58efc00f07935?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/113', 'title': 'Added check for null servers list on the setup of the DRPCSpout. Fixes #...'}, {'body': "* Changed supervisor() to use supervisor.childopts (looks like just a copy/paste/nochange)
* Created a 'storm help' command that re-uses the existing print_usage
* Made unknown commands default to 'storm help' instead of stacktracing
* Added ui.childopts to ui(), to include JVM args to ui processes
* Added default -Xmx768m to ui.childopts entry in defaults.yaml, based on what had been in bin/storm", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/971445e43a398fe51c1be4844d69044a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/105', 'title': 'Update childopts for supervisor; add childopts for ui; bin/storm polish'}, {'body': "We ran into a problem on a Windows system when Storm is deleting files from the tmp directory. We should be using the canonical path from the File object. This is especially important on Windows systems in my experience. Here is the exception it was throwing.

java.io.IOException: Unable to delete file: C:\\Users\\KALYOS~1\\AppData\\Local\\Temp\\8cfaaa2d-a34f-4a9f-a30a-ef74a0721260\\version-2\\log.1
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1390) t org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381)
at backtype.storm.util$rmr.invoke(util.clj:277)
at backtype.storm.testing$kill_local_storm_cluster.invoke(testing.clj:156)
at backtype.storm.LocalCluster$_shutdown.invoke(LocalCluster.clj:21)
at backtype.storm.LocalCluster.shutdown(Unknown Source)
at com.idexx.data.etl.storm.DataServicesETLTopology.shutdownLocalTopology(DataServicesETLTopology.java:167)
at integration.com.idexx.data.etl.AbstractDataEltHsqldbTopologyTests.afterSuite(AbstractDataEltHsqldbTopologyTests.java:56)

This doesn't completely fix the problem we're having, but eliminates a potential problem. Now the problem appears to be that there may be another process or thread holding a lock on that file.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb3640e66e92fe6a3315007455d645d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/102', 'title': 'File delete problem on Windows'}, {'body': 'This should be a fix for issue #82. It checks the url that the supervisor gets from the getResource call for "jar:" on the front to determine if it\'s inside a jar file. It calls the Java function Utils.copyResourcesFromJar() which extracts the files from the jar and copies them to the given directory.

I didn\'t do extensive testing, but it worked here for me on a couple of different situations.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb3640e66e92fe6a3315007455d645d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/101', 'title': 'Fix for Issue #82 (Storm should extract resources dir in local mode when appropriate)'}, {'body': 'This patch adds two new options for zookeeper:

storm.zookeeper.retry.times
storm.zookeeper.retry.interval

They define zookeeper clients retry policy.Please check the difference.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0a1fc541b9d8681ee21af5591766297d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/100', 'title': 'Adds storm.zookeeper.retry.times and storm.zookeeper.retry.interval '}, {'body': 'These commits address #25 and add some improved semantics to the Clojure DSL.

Stream/component/task info on a tuple is now accessible from the meta data.

Tuples now implement ILookup, IPersistentMap, Indexed, Seqable, IFn, and Map so that things like (nth tuple 1), (tuple :foo-field), (:foo-field tuple), etc. work.

Added an IndifferentAccessMap to allow tuple field names to be treated as either keywords or strings.

Tuples can now be "modified" like clojure maps with assoc/dissoc. This is useful for building up values to emit. This is kind of a naive implementation, but I think it works pretty well for the task at hand.

From the Clojure side, emit-bolt!/emit-bolt-direct! can now take its values as either a list or a map. If it is provided a map, then it will find the output fields for the stream and construct the values list from the map based on that (currently null for any fields not present in the map, which I think is sensible). We\'ve been using a pattern like this on our project at NabeWise and I find it to be very powerful/convenient.

I apologize in advance that my java-fu is somewhat weak, so let me know if I need to fix any style or other issues.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d3ab72cca9386f19daf37d57e4a0a9d2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/94', 'title': 'Clojure tuples'}, {'body': 'This is meant to close issue #34 (Nimbus should clean inbox)

Adds two new config variables to control how often the cleaner job
runs and how old a jar needs to be before it will be deleted.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/529ae28793695d549f9aa034a7e64d2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/93', 'title': 'Delete nimbus inbox jars with a simple scheduled delete job'}, {'body': 'Fixed issue 68: use curator to handle zookeeper.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0a1fc541b9d8681ee21af5591766297d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/81', 'title': 'Fixed issue 68'}, {'body': 'This time...with less noise. Sorry for all the confusion!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/57abd59dd9f19b6f9cbd6a7ca7319896?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/80', 'title': 'Shell Spout & Python Lib Spout'}, {'body': 'Changed the ShellBolt to use a String[] as its arg so this can be passed to the ProcessBuilder directly. This allows you to pass command line param to your ShellBolt.

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/881091b27cc75786cf4dc106785399eb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/67', 'title': 'Changed the ShellBolt to use a String[] as its arg so this can be passed to the ProcessBuilder directly...'}, {'body': "Nathan, I used the multi-lang protocol wiki page, and the ShellBolt class to build out this class to implement ShellSpouts.

Let me know if there's something major missing, or it's missing something I can implement.

Cheers,

Jim", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/57abd59dd9f19b6f9cbd6a7ca7319896?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/56', 'title': 'Implemented the ShellSpout class to allow us to write multi-lang ShellSpouts'}, {'body': 'I took a stab at implementing this, and it seems to work for me. I just changed 1 line and added a utility function.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/38a2400e9f8848c0729cefcbf8ea0ec7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/50', 'title': 'Patch for Issue #2 (pick available port for Zookeeper in Local Mode)'}, {'body': 'This pull request adds a `lettuple` macro which provides a convenient way for unpacking tuples in bolts. It saves you from having to manage indices, and allows you to conveniently specify per-value transformations.

Example:


(lettuple tuple [i Integer h (String read-json)]
(prn i)
(prn h))


expands to:


(let [tuple79 tuple
i (. tuple79 getInteger 0)
h (-> (. tuple79 getString 1) read-json)]
(prn i)
(prn h))


Note that `tuple79` is a symbol generated by the compiler that will be guaranteed to be unique. The first binding of `tuple79` to `tuple` ensures that `tuple` is only evaluated once.

The syntax is:


(lettuple tuple [bindings*] exprs*)


`binding`s are of the form `var-symbol type-expr`.

If `type-expr` is not a sequence, it is combined with `"get"` to make a method name, e.g. `Integer` becomes `getInteger`, `DoesntExist` becomes `getDoesntExist`. This method is then invoked on `tuple` with the index of the binding.

If `type-expr` is a sequence, the first element of the sequence is treated as above, and the remaining arguments are threaded with `->`. See the example above.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/223139cd460f00528796f94dc2415633?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/36', 'title': 'Add lettuple macro'}, {'body': "I attempted a small fix to this issue, with my addition the only difference is that the process doesn't halt instead it just fails (which works OK for me because i always shutdown a local-topology after some time, but i need to further patch this to shutdown automatically when an error is thrown).

Can you please provide assistance on how to shutdown everything from within task or within worker/mk-worker so i can pass it down to mk-tasks? I can retry the patch again.

I saw kill-local-storm-cluster in testing.clj but i don't seem to have for example a reference to nimbus.
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4aac499fafdb5e019d22ed857e731d2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/29', 'title': "When developing in local mode when a task fails we don't want the whole process to halt"}, {'body': 'was having some trouble getting "production" cluster running locally. I was getting an exception in NimbusClient.java. Looks like the YAML parser was giving back an ArrayList and we were casting it to a String. This fixes the issue, but given no one else has run into this I wonder if its because I was doing something else wrong.



', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1c4dcea8dfecc86a2727bc9e6cc0a582?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/26', 'title': 'fixed possible client config parsing issue'}, {'body': 'Upgraded to thrift version 0.6.1 to enable compatibility with latest version of Cassandra.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/423abccbed514c8464e12ae1479003a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/24', 'title': 'Upgrade Thrift'}, {'body': "This small patch adds a __repr__ method to the Tuple class in the Python library. It's very helpful for debugging bolts :-)

Regards,
Tom", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/223139cd460f00528796f94dc2415633?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/20', 'title': 'Add Tuple.__repr__ to Python library'}, {'body': 'I\'m trying to register a custom serializer using `config.addSerialization(33, SimpleJSONSerializer.class)`, but I can\'t get it to compile. I get: "The method addSerialization(int, Class) in the type Config is not applicable for the arguments (int, Class)"

My memory of Java generics is pretty rusty, but I think it\'s because the type `Class` is too strict, and the only value I can pass to it is `ISerialization.class` (which compiles, but obviously doesn\'t work). I believe the intended parameter type is actually `Class`, which can be passed any `Foo.class` so long as `Foo implements ISerialization`.

If I fall back to

```java
config.put(Config.TOPOLOGY_SERIALIZATIONS, Collections.singletonMap(33, "uk.co.samstokes.storm.serializer.SimpleJSONSerializer"));
```

then it works fine, so my serialiser is definitely working.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56cd5f806a8cebda6c8d1a33799724df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/9', 'title': 'Config.addSerialization() parameter type is too strict?'}, {'body': 'by removing dependencies on clojure.contrib material', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2fcc875f98607b3007909fe4be99160d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/nathanmarz/storm/pulls/1', 'title': 'make it easier to move to clojure 1.3'}] \ No newline at end of file +[{"body": "I found that by setting the supervior_id to optional in the struct definition I am able to get a response from

```ruby
client.getClusterInfo()
```

When it is set as required I am getting

```
Thrift::Exception: Required field supervisors is unset!
```

", "user": {"avatar_url": "https://secure.gravatar.com/avatar/f565202919771fbcdf236a3ee06d5b10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/399", "title": "set supervisor_id as optional"}, {"body": "Display stack trace instead of plain white screen when exception happens in action method of UI.
It's very useful for me to see exception in browser. For example, I can understand when nimbus isn't available or topology with specified name isn't exists, etc.

Screenshot: http://f.slukjanov.name/storm/ui-errors-demo.png

P.S. we can write tons of handlers to write error message like \"Nimbus isn't available\", but I think that this information is easy parseable from stack traces.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/395", "title": "catch-errors middleware added"}, {"body": "Simple way to kill all topologies in Storm cluster.

build: http://f.frostman.ru/tsc-dists/storm-0.8.2-wip15-killall.zip", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/394", "title": "kill --all flag"}, {"body": "for issue #334", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/388", "title": "expose testing/test-tuple into java api"}, {"body": "for issue #324", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/387", "title": "add projection validation for stream methods"}, {"body": "This provides a valid command for shell processes send back an exception or general error message. This would allow a viewable error in the UI for ease in production.

I continue to see \"failed tuples\" in my shell processes, but I can not see the underlying reason for them without seeking out the individual worker log and line.

This change should allow a user to see the passed exception from the shell process straight to the UI for easy diagnoses and debugging.

The only edit I would make is to either move this functionality to the \"log\" command or create a specific exception class like ShellTupleException for more clear messages.
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/f8e6593112a03bd822ecf2da64630c24?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/380", "title": "Add a way to send an exception through shellbolt"}, {"body": "fix for #374

After adding lein version check we should parse the sixth line of project.clj instead of first to take version from it.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/375", "title": "bin/build_release.sh fixed"}, {"body": "Currently \"lein (uber)jar\" silently fails when using lein >= 2, and \"lein test\" complains about missing files on the classpath.

This is a pain when you're trying to get your dev environment setup for Storm, after following every instruction to a tee, only to have nothing work. As long as Storm is incompatible with lein 2.x, a big warning should be included somewhere in the docs telling the user to use lein 1.x
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2410b95d82bae7b93788a5d40e14d736?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/366", "title": "Include a warning about Leiningen 2.x in docs"}, {"body": "This lets you run the jetty server alongside the repl, which makes it easier to do development on the UI. The use of 'defonce' lets you recompile without worrying that the server gets redefined. The following commands start/stop the server from the repl:

(.start server)
(.stop server)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2410b95d82bae7b93788a5d40e14d736?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/364", "title": "Make UI friendly to repl development by not joining jetty thread"}, {"body": "Issue 308: https://github.com/nathanmarz/storm/issues/308
Leaving supervisors alone for now.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/ae80494d1dab44bcee77271ce4f63017?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/354", "title": "Add Configuration Information to UI"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/349", "title": "IntelliJ IDEA project/workspace files added to gitignore"}, {"body": "Some screenshots: http://f.frostman.ru/storm/ui-tplg-actions/", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/348", "title": "Topology base actions buttons added to the UI"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e2ab1b5a01dc6ab3dabd65f1070f6a57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/346", "title": "Update src/multilang/py/storm.py"}, {"body": "A storm user was not printing exceptions thrown by StormSubmitter, wasted a bit of time because nimbus.log had no info about it.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/344", "title": "log topology submission issues"}, {"body": "for issue #332", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/339", "title": "add api for specifing name for stream/bolt"}, {"body": "for issue #324", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/338", "title": "add validation for the projection field"}, {"body": "Hostname of Nimbus should be taken from conf files instead of hardcoded \"localhost\".", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e4234ee8fa255d88d737672485bc12c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/329", "title": "Storm UI: take nimbus host from the conf"}, {"body": "https://github.com/nathanmarz/storm/issues/289", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/328", "title": "Create Trident interface for getting full contents of a state"}, {"body": "https://github.com/nathanmarz/storm/issues/267", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/327", "title": "Make it possible to submit topology in inactive state"}, {"body": "I could also rewrite this to be slightly more pythonic as opposed to using globals if you'd like. Are there tests for this script?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/082fc9da4328aa0cebfecf836d1b66c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/320", "title": "Default to ipv4"}, {"body": "Adds `boolean contains(String field)` method to `Fields` and `Tuple` to check whether a tuple contains a specified field or not as in 0.7.*. Please see also #317.\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/ef45a84b10aa3cb5acd2ea0c9846bd3b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/319", "title": "add 'contains' method to Fields and Tuple."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/f89adbc8e686e72004d8be6902a89d74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/318", "title": "Fix directory bug in install_zmq.sh"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/315", "title": "support kryo decorators"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/e48a04bbe3a75a9686f689ef8c6378a1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/314", "title": "Fixes typo in CHANGELOG.md"}, {"body": "for #243.
Added -conffile option to use original yaml file.
>storm jar allmycode.jar -conffile org.yaml org.me.MyTopology arg1 arg2 arg3
( Conf filename must be written in relative path from ~/.storm/)

Also added -confdir option to use orignal confdir, instead of ~/.storm . ", "user": {"avatar_url": "https://secure.gravatar.com/avatar/5de063e47d0da381a3848e761a059a7a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/312", "title": "original conf file #243."}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/300", "title": "log4j switched to logback & upgrade to leiningen 2"}, {"body": "Hi Nathan,\n\nHere's a quick fix to upgrade slf4j-* deps for storm to the latest 1.6.6 version.\nNamely, the most-wanted feature in slf4j-api 1.6.0 not available in1.5.* is\nhttp://slf4j.org/faq.html#paramException\n\nslf4j-api is already there from thrift7 deps so I had to add it explicitly in the list of deps (backward compatible)\n\nthanks\n-adrian\n\n\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/b853a8b2fbf5d4026d4ca660e05daa4b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/295", "title": "Update slf4j-* to 1.6.6 version"}, {"body": "After doing some profiling of a real-life topology implemented in Python, I found that a lot of time was spent communicating between ShellSpout or ShellBolt and the actual spout or bolt code in Python. After making the attached changes to ShellSpout and ShellBolt, and making a couple of changes to storm.py, the communication time was 2.5x faster.\n\nThe primary change to storm.py was adding an optional \"need_task_ids\" parameter to emitSpout() and emitBolt().\n\nI followed this up by adding new storm.py functions emitManySpout() and emitManyBolt(). Using these functions to batch up the emission of tuples improved communication performance about another 25%.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/37a1fc4b6d13be9f49dc08937fd815ab?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/294", "title": "Change ShellSpout and ShellBolt so that returning task IDs to the spout or bolt is optional"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/293", "title": "switch log4j to logback"}, {"body": "This is for issue https://github.com/nathanmarz/storm/issues/280", "user": {"avatar_url": "https://secure.gravatar.com/avatar/74c804ddbe8b3e9caa3d30c88d8c9665?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/291", "title": "detect existing topology before uploading jar"}, {"body": "Sorry, reverting partially my change.\n\nI'm currently busy with implementing a MongoDB State and It's just impossible to have something like:\n\n```java\nstate = new MongoState>(template, TransactionalValue.class);\ncachedMap = new CachedMap>(state, opts.localCacheSize);\nreturn TransactionalMap.build(cachedMap);\n```\n\nAnd i need to pass the entityClass as argument because i need it for the mongo template to automaticly serialize / deserialize the pojo. \n\n```java\nstate = new MongoState(template, TransactionalValue.class);\ncachedMap = new CachedMap(state, opts.localCacheSize);\nreturn TransactionalMap.build(cachedMap);\n```\n\nit will be then", "user": {"avatar_url": "https://secure.gravatar.com/avatar/37564a5a58c789097a6caef80b8d5629?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/288", "title": "Reverting the generics tightening because nested generics in java are limited"}, {"body": "Fix for issue #285", "user": {"avatar_url": "https://secure.gravatar.com/avatar/37564a5a58c789097a6caef80b8d5629?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/286", "title": "Fixes for Generics usage in Trident"}, {"body": "Debos-MacBook-Pro:bin ddutta$ git diff e264a25\ndiff --git a/bin/install_zmq.sh b/bin/install_zmq.sh\nindex 016af46..f70772d 100755\n--- a/bin/install_zmq.sh\n+++ b/bin/install_zmq.sh\n@@ -1,5 +1,5 @@\n #!/bin/bash\n-export JAVA_HOME=$(/usr/libexec/java_home)\n+export JAVA_HOME=${JAVA_HOME:/usr/libexec/java_home}\n \n if [ ! -d \"$JAVA_HOME/include\" ]; then\n echo \"\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/ac5fd0906704549d69a72834866dc8fc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/284", "title": "Solves Issue 273 + we need to set JAVA_HOME from env vars"}, {"body": "This is a simple bump to the latest version of netflix/curator that maintains compatibility with zookeeper 3.3.x.\n\n**Notes related to upgrading to curator 1.1.x/zookeeper 3.4.x:**\n- zookeeper 3.4.x uses Netty internally rather than NIO directly - this will impact the method for creating an in-process zookeeper in \"zookeeper.clj\" (mk-inprocess-zookeeper).\n- The above issue can possibly be addressed by using some of the curator-test classes for creating in-proc zookeeper servers.\n- Looks like there are some authentication options in the latest version of curator/zookeeper.\n\nI tried a bump to curator 1.1.16/zookeeper 3.4.5 by reusing curator test classes (modified the the mk-inprocess-zookeeper method). It made the tests run excruciatingly slow with a bunch of stacktraces. Tests passed, but I didn't trust the result. I'll continue investigating at some point.\n", "user": {"avatar_url": "https://secure.gravatar.com/avatar/423abccbed514c8464e12ae1479003a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/277", "title": "Update Curator Version"}, {"body": "Currently Cluster.getNeedsSchedulingExecutorToComponents returns all the executors rather than just the executors needs scheduling. It is fixed by change the type of ExecutorDetails.startTask/endTask from Integer to int, because `new Integer(10) != new Integer(10)`. Also done some cleanup.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/275", "title": "fix Cluster.getNeedsSchedulingExecutorToComponents & some cleanup"}, {"body": "The location currently specified does not exist.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/7fbbdb7f7f1f23c01d2fe69e143f623f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/271", "title": "Modifying URI to download zeromq-2.1.7 from."}, {"body": "I've added any ouput from the error stream of the subprocess to the detail message of the RuntimeException thrown to make it easier to figure out why the subprocess exited unexpectedly.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/7fbbdb7f7f1f23c01d2fe69e143f623f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/270", "title": "More detailed error messages when the shell subprocess pipe closes."}, {"body": "implemented the java version of 'testing'", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/266", "title": "Issue72"}, {"body": "I moved the call to {Bolt, BasicBolt, Spout}.initialize into the try ... except block in storm.py so that exceptions during initialization get logged.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/3bfcb61f363fa990002448607fed123b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/256", "title": "Moved initialize call in Bolt and BasicBolt into try ... except block"}, {"body": "Bolth.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c8a7750a333cfb27a1c72aa61b73b763?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/249", "title": "Clears up a lot of confusing nomenclature."}, {"body": "This patch forces supervisor realize task-ids that it will flush into the local state file. Without the realization, supervisor can stop due to ClassNotFoundException in some rare cases.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/478f1804873811a3f4207377b8d638a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/246", "title": "0.7.2"}, {"body": "Add info about the taskId that is emtting, failing, or acking tuples, and the spout taskId to which ack and fail events are sent. This would be very useful for, say, a custom monitoring system implemented on top of the hooks. The taskId allows all of the events to be correlated to the local worker JVM's tasks.\n\nI didn't see any tests for hooks.\n\nI have other ideas for extending hooks:\n- Add an event for calling execute(tuple) on a bolt task\n- Add hooks for starting and cleaning up a child worker\n- Add documentation :)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/ff98cf6f84857684c813d81c7a40b12a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/242", "title": "0.8.0 better hooks"}, {"body": "for issue #164", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/239", "title": "storm pluggable scheduler"}, {"body": "Using os.system() for creating the JVM forks a child of the Python\nprocess. This makes it difficult for process managers like daemontools\nor runit to kill/restart the process at admins' command: the process\nmanager tracks the PID of the Python process instead of that of the JVM;\nand terminating the Python process unfortunately doesn't kill its JVM\nchild.\n\nSome process managers let you configure the number of times the service\nforks, or try to detect forks, but it's a bit of a rabbit-hole. Better\nto make the service not fork in the first place.\n\nFor that reason I've replaced the call to os.system() with os.execvp(),\nwhich replaces the Python process with the JVM, and thus lets the\nprocess manager track the right PID.\n\nos.execvp() requires that you give command-line arguments as an array of\nstrings, rather than one long whitespace-separated string, so I had to\nchange some of the surrounding code accordingly. Note this has the\npleasant side-effect that Storm should now also run if you install it in\na directory that has spaces in its path name.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/0d4ef9af8e4f0cf5c162b48ba24faea6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/238", "title": "Use exec instead of forked child process for JVM"}, {"body": "I think this is simpler bug-fix version than yours.\nin my code, I make the CoordinatedBolt ack the tuple from COORDINATED_STREAM_ID stream only if its received tuple count is equal to expectedTupleCount for the specified source task. ", "user": {"avatar_url": "https://secure.gravatar.com/avatar/33b70c796b9b0e6563ea1bcccbeccfee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/237", "title": "a simpler bug fix version for CoordinatedBolt"}, {"body": "I have seen your fix version and think it's too complicated.\nI make a simple fix , please have a look. Thank you!", "user": {"avatar_url": "https://secure.gravatar.com/avatar/33b70c796b9b0e6563ea1bcccbeccfee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/236", "title": "a bug fix for CoordinatedBolt"}, {"body": "for issue #233", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/234", "title": "Fix TransactionalTopologyBuilder NPE"}, {"body": "Replaces the Curator 1.0.x series dependency with 1.1.3, which introduces ZooKeeper 3.4.2. Changed the in-process ZK server to use the new NIOServerCnxnFactory in ZooKeeper 3.4.x.\n\nZK 3.4.x clients are compatible with ZK 3.3.x ensembles.\n\nThis change makes Storm compatible with HBase 0.92, which requires the new ZK 3.4 API.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/335167822802991c14298e9bcd86c45e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/225", "title": "Update to Curator 1.1.3/ZooKeeper 3.4.x"}, {"body": "for issue #164", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/224", "title": "pluggable scheduler for storm"}, {"body": "for issue #89", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/213", "title": "add a button in storm-ui to show/hide system stats"}, {"body": "executeBinary returns java.nio.ByteBuffer, legacy \"execute\" method now
converts from ByteBuffer to String using default encoding", "user": {"avatar_url": "https://secure.gravatar.com/avatar/283b8cef7a285ecd06b5a1cf1c98daa7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/211", "title": "Converted the DRPC mechanism to use binary (ByteBuffer) results sets but preserve String output for existing users."}, {"body": "for issue #97", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/207", "title": "change to do worker-heartbeat rather than task-heartbeat"}, {"body": "for issue #205", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/206", "title": "validate storm components subscribe from existing components/streams"}, {"body": "for issue #172

I changed the messaging protocol a little:
* the connection no longer listen on virtual-port(task-id), they listen on a worker port now.
* send-local-task-empty function is removed -- because the task does not listen on a socket anymore, we dont need to unblock the socket, we can just put an empty byte-array into the receive-queue directly.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/200", "title": "Optimize sending tuples between tasks colocated in same worker"}, {"body": "To enable proper subclassing including super() usage, new-style classes are required.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/de1963fbed1a7d77e6d9a319ae406c1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/197", "title": "multilang: Use new-style classes in Python."}, {"body": "Since exceptions (e.g. when the shell process crashes) are thrown in new threads now, the ShellBolt keeps on running.

Does this patch fix all such issues?", "user": {"avatar_url": "https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/195", "title": "fix issue with shell bolts not restarting"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/fa3a5cda172454dc81fd57e77419dfb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/193", "title": "clojure 1.4 compat"}, {"body": "note the version of my carbonite fork needs to be changed. I issued a separate pull request on storm/carbonite for that.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/fa3a5cda172454dc81fd57e77419dfb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/192", "title": "bumped to clojure 1.4, all tests passing"}, {"body": "perfect solution for issue #109 :)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/187", "title": "ensure each process use its unique zk port in local mode(perfect solution)"}, {"body": "for issue #185", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/186", "title": "fix the issue: \"Timeouts in CoordinatedBolt can cause NPE later on\""}, {"body": "for issue #162 . I added a new config: **topology.max.blot.pending** to let user specify the threshold.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/183", "title": "log warnning message when un-acked tuples in a bolt gets too large"}, {"body": "for issue #120", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/182", "title": "add a config in storm.yaml to override local hostname"}, {"body": "for issue #109 , changed much code in **cluster_test.clj**, because added a **let** clause in each test method, need to format the existing code a little bit.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/181", "title": "ensure each process use its unique zk port in local mode"}, {"body": "for issue #170", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/178", "title": "add warnning message when not enough slots available for topology"}, {"body": "for issue #92", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/177", "title": "resolved the issue that when a topology has not been assigned a task, the storm-ui breaks"}, {"body": "for issue #166", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/175", "title": "implemented the command: 'storm list'"}, {"body": "for issue #169", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/174", "title": "add storm release version in storm-ui"}, {"body": "Without the changes, slf4j-log4j12 resolves to version 1.5.8, which ends up conflicting with slf4j-api 1.6 resolved by sbt in a build of ScalaStorm:

```[error] SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6]```
```[error] SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.```

With the changes, Storm uses the current slf4j 1.6.4, and everyone seems happy.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/aaa2e907159f6919c4a4c8039d46752f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/167", "title": "replace slf4j 1.5.8 with slf4j 1.6.4"}, {"body": "I changed the protocol like so:

```
-> {\"pidDir\": \"...\", \"conf\": {...}, \"context\": {...}}
<- {\"pid\": 123}
-> {\"command\": \"next\"}
<- {\"tuple\":[\"bertels\u4eba\"],\"id\":1,\"command\":\"emit\"}
-> [3]
<- {\"command\":\"sync\"}
```", "user": {"avatar_url": "https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/165", "title": "JSON compliance in shell protocol, with Python and Ruby impls"}, {"body": "Just uses JSON for everything, including the pid/piddir, which cleans up both the Java implementation and multilang implementations slightly.

This is currently based on your fix-shell-encoding.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/161", "title": "Simplify shell protocol"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/607bc440dcb87a0649b380e0e217590e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/159", "title": "for issue #44"}, {"body": "Fields receives a list of strings that is stored internally on an ArrayList however it is indexed with a HashMap and field indexes can be retrieved by name (Tuple fields can be retrieved by name too) therefore Fields should prevent duplicates to avoid ambiguity and internal inconsistencies between _index and _fields.

I couldn't find tests for this class so I've added those as well.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/a17ce5cbbdb0d5053d75eac39107b66b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/157", "title": "prevent duplicates on Fields"}, {"body": "I have made the modifications we talked about :)", "user": {"avatar_url": "https://secure.gravatar.com/avatar/607bc440dcb87a0649b380e0e217590e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/156", "title": "for issue #111"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/607bc440dcb87a0649b380e0e217590e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/152", "title": "for issue #145"}, {"body": "", "user": {"avatar_url": "https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/148", "title": "allow destructuring of tuple arg in defbolt"}, {"body": "If the seq is partially consumed it shouldn't return the count of the full list of fields. See ASeq.count()", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2147c68b7ec5d32424a717c801525d56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/147", "title": "The count of a seq is 1 + the number of remaining seqs through next()"}, {"body": "A minor convenience...", "user": {"avatar_url": "https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/143", "title": "add `:debug true` shortcut for components in clojure dsl"}, {"body": "right now symlinking the bin onto PATH doesn't work properly, because abspath doesn't follow the symlink.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/592c29d1042d5f0da1524ff17bbe25da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/142", "title": "Allow symlinking of the storm binary"}, {"body": "The _readTaskIds/_readTuple trampoline/queue stuff in the Python implementation seems funny.. not sure about that \u2014 I am not fluent in Python. Still working on a node.js version where the lack of synchronization around task ids after emits is no problem.

I haven't yet tested reliable spouts. Will do that sometime soon.

I made a small change to the protocol, expecting and \"end\\n\" after the pid as well, to be consistent. I could easily add back in the special case.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/86f15f999f6d493bbe34f517a9cc2816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/138", "title": "ShellSpout, async ShellBolt, python implementation"}, {"body": "this request is for issue #89 .
Add checkbox to hide components that prefixed with \"__\".
But I don't know where the checkbox should be placed.
Please try it.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/5de063e47d0da381a3848e761a059a7a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/136", "title": "#89 Show/hide implicit parts of topology in Storm UI"}, {"body": "pull request for this issue: https://github.com/nathanmarz/storm/issues/104", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2e4b76a1b6ac1809a564333068ba1760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/135", "title": "pull request for this issue: https://github.com/nathanmarz/storm/issues/104"}, {"body": "Only commit 1f63ad98 is needed. I am sorry that I can not produce a pull request just contains the commit.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4dc8343c41c91296bf91327486679238?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/133", "title": "fix for issuse 122"}, {"body": "This patch fix issue #122
Add URLEncoder for ui.core to use space character in spout/bolt id.
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/5de063e47d0da381a3848e761a059a7a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/128", "title": "URLEncoder for ui.core (issue 122 )"}, {"body": "This is a small change DRPCClient.java to add a timeout option to the underlying TSocket.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/dda7171e6ae0e26e7e0d8d7ddf2a56cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/127", "title": "Add a timeout option to DRPCClient"}, {"body": "it can be used like this:

./bin/storm -c nimbus.host=XXX -c nimbus.thrift.port=6627

all the simple config values can be overriden except for the complex types like zk addresses, which is an array.

", "user": {"avatar_url": "https://secure.gravatar.com/avatar/93bdbcfba6143e54a614bc20b7c16d4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/125", "title": "push request for issue: 95 "}, {"body": "This patch should fix issue #119", "user": {"avatar_url": "https://secure.gravatar.com/avatar/c6826a52ca5c09a29445dd98416edea7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/123", "title": "Fix string encoding in ShellBolt protocol (send UTF-8)."}, {"body": "Use the storm.home env property to make the logs path absolute

With the default configuration , if start the storm not in the storm home folder, the logs will be written into the relative path of the working directory, which is hard to trace.

", "user": {"avatar_url": "https://secure.gravatar.com/avatar/93bdbcfba6143e54a614bc20b7c16d4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/121", "title": "add storm home for default log4j configuration to use absolute path for logs folder"}, {"body": "Updated ``bin/storm``:

* usage message update
* help message per commands (e.g. ``bin/storm help ui``)
* simple error handling
* fix some Python misc
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/b9b7a5ffa24e2af6f877a7950461ba0f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/116", "title": "Help message per commands for Storm client"}, {"body": "...se .project and .classpath files by running lein eclipse.

I'm used to working in eclipse for projects (as I guess are quite a few Java developers) so it would be great if the lein-eclipse plugin could be added to make support for that easier.

Thanks,", "user": {"avatar_url": "https://secure.gravatar.com/avatar/209774f1ccb34b954bd58efc00f07935?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/114", "title": "Added the lein eclipse plugin to the project.clj. You can generate eclip..."}, {"body": "...112

Found this bug whilst I was testing out storm drpc for some projects I'm working on. This should make the error logged more clear if users don't add servers to the drpc list before they run a drpc topology.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/209774f1ccb34b954bd58efc00f07935?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/113", "title": "Added check for null servers list on the setup of the DRPCSpout. Fixes #..."}, {"body": "* Changed supervisor() to use supervisor.childopts (looks like just a copy/paste/nochange)
* Created a 'storm help' command that re-uses the existing print_usage
* Made unknown commands default to 'storm help' instead of stacktracing
* Added ui.childopts to ui(), to include JVM args to ui processes
* Added default -Xmx768m to ui.childopts entry in defaults.yaml, based on what had been in bin/storm", "user": {"avatar_url": "https://secure.gravatar.com/avatar/971445e43a398fe51c1be4844d69044a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/105", "title": "Update childopts for supervisor; add childopts for ui; bin/storm polish"}, {"body": "We ran into a problem on a Windows system when Storm is deleting files from the tmp directory. We should be using the canonical path from the File object. This is especially important on Windows systems in my experience. Here is the exception it was throwing.

java.io.IOException: Unable to delete file: C:\\Users\\KALYOS~1\\AppData\\Local\\Temp\\8cfaaa2d-a34f-4a9f-a30a-ef74a0721260\\version-2\\log.1
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1390) t org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1044)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:977)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1381)
at backtype.storm.util$rmr.invoke(util.clj:277)
at backtype.storm.testing$kill_local_storm_cluster.invoke(testing.clj:156)
at backtype.storm.LocalCluster$_shutdown.invoke(LocalCluster.clj:21)
at backtype.storm.LocalCluster.shutdown(Unknown Source)
at com.idexx.data.etl.storm.DataServicesETLTopology.shutdownLocalTopology(DataServicesETLTopology.java:167)
at integration.com.idexx.data.etl.AbstractDataEltHsqldbTopologyTests.afterSuite(AbstractDataEltHsqldbTopologyTests.java:56)

This doesn't completely fix the problem we're having, but eliminates a potential problem. Now the problem appears to be that there may be another process or thread holding a lock on that file.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/eb3640e66e92fe6a3315007455d645d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/102", "title": "File delete problem on Windows"}, {"body": "This should be a fix for issue #82. It checks the url that the supervisor gets from the getResource call for \"jar:\" on the front to determine if it's inside a jar file. It calls the Java function Utils.copyResourcesFromJar() which extracts the files from the jar and copies them to the given directory.

I didn't do extensive testing, but it worked here for me on a couple of different situations.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/eb3640e66e92fe6a3315007455d645d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/101", "title": "Fix for Issue #82 (Storm should extract resources dir in local mode when appropriate)"}, {"body": "This patch adds two new options for zookeeper:

storm.zookeeper.retry.times
storm.zookeeper.retry.interval

They define zookeeper clients retry policy.Please check the difference.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/0a1fc541b9d8681ee21af5591766297d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/100", "title": "Adds storm.zookeeper.retry.times and storm.zookeeper.retry.interval "}, {"body": "These commits address #25 and add some improved semantics to the Clojure DSL.

Stream/component/task info on a tuple is now accessible from the meta data.

Tuples now implement ILookup, IPersistentMap, Indexed, Seqable, IFn, and Map so that things like (nth tuple 1), (tuple :foo-field), (:foo-field tuple), etc. work.

Added an IndifferentAccessMap to allow tuple field names to be treated as either keywords or strings.

Tuples can now be \"modified\" like clojure maps with assoc/dissoc. This is useful for building up values to emit. This is kind of a naive implementation, but I think it works pretty well for the task at hand.

From the Clojure side, emit-bolt!/emit-bolt-direct! can now take its values as either a list or a map. If it is provided a map, then it will find the output fields for the stream and construct the values list from the map based on that (currently null for any fields not present in the map, which I think is sensible). We've been using a pattern like this on our project at NabeWise and I find it to be very powerful/convenient.

I apologize in advance that my java-fu is somewhat weak, so let me know if I need to fix any style or other issues.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/d3ab72cca9386f19daf37d57e4a0a9d2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/94", "title": "Clojure tuples"}, {"body": "This is meant to close issue #34 (Nimbus should clean inbox)

Adds two new config variables to control how often the cleaner job
runs and how old a jar needs to be before it will be deleted.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/529ae28793695d549f9aa034a7e64d2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/93", "title": "Delete nimbus inbox jars with a simple scheduled delete job"}, {"body": "Fixed issue 68: use curator to handle zookeeper.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/0a1fc541b9d8681ee21af5591766297d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/81", "title": "Fixed issue 68"}, {"body": "This time...with less noise. Sorry for all the confusion!", "user": {"avatar_url": "https://secure.gravatar.com/avatar/57abd59dd9f19b6f9cbd6a7ca7319896?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/80", "title": "Shell Spout & Python Lib Spout"}, {"body": "Changed the ShellBolt to use a String[] as its arg so this can be passed to the ProcessBuilder directly. This allows you to pass command line param to your ShellBolt.

", "user": {"avatar_url": "https://secure.gravatar.com/avatar/881091b27cc75786cf4dc106785399eb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/67", "title": "Changed the ShellBolt to use a String[] as its arg so this can be passed to the ProcessBuilder directly..."}, {"body": "Nathan, I used the multi-lang protocol wiki page, and the ShellBolt class to build out this class to implement ShellSpouts.

Let me know if there's something major missing, or it's missing something I can implement.

Cheers,

Jim", "user": {"avatar_url": "https://secure.gravatar.com/avatar/57abd59dd9f19b6f9cbd6a7ca7319896?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/56", "title": "Implemented the ShellSpout class to allow us to write multi-lang ShellSpouts"}, {"body": "I took a stab at implementing this, and it seems to work for me. I just changed 1 line and added a utility function.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/38a2400e9f8848c0729cefcbf8ea0ec7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/50", "title": "Patch for Issue #2 (pick available port for Zookeeper in Local Mode)"}, {"body": "This pull request adds a `lettuple` macro which provides a convenient way for unpacking tuples in bolts. It saves you from having to manage indices, and allows you to conveniently specify per-value transformations.

Example:


(lettuple tuple [i Integer h (String read-json)]
(prn i)
(prn h))


expands to:


(let [tuple79 tuple
i (. tuple79 getInteger 0)
h (-> (. tuple79 getString 1) read-json)]
(prn i)
(prn h))


Note that `tuple79` is a symbol generated by the compiler that will be guaranteed to be unique. The first binding of `tuple79` to `tuple` ensures that `tuple` is only evaluated once.

The syntax is:


(lettuple tuple [bindings*] exprs*)


`binding`s are of the form `var-symbol type-expr`.

If `type-expr` is not a sequence, it is combined with `\"get\"` to make a method name, e.g. `Integer` becomes `getInteger`, `DoesntExist` becomes `getDoesntExist`. This method is then invoked on `tuple` with the index of the binding.

If `type-expr` is a sequence, the first element of the sequence is treated as above, and the remaining arguments are threaded with `->`. See the example above.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/223139cd460f00528796f94dc2415633?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/36", "title": "Add lettuple macro"}, {"body": "I attempted a small fix to this issue, with my addition the only difference is that the process doesn't halt instead it just fails (which works OK for me because i always shutdown a local-topology after some time, but i need to further patch this to shutdown automatically when an error is thrown).

Can you please provide assistance on how to shutdown everything from within task or within worker/mk-worker so i can pass it down to mk-tasks? I can retry the patch again.

I saw kill-local-storm-cluster in testing.clj but i don't seem to have for example a reference to nimbus.
", "user": {"avatar_url": "https://secure.gravatar.com/avatar/4aac499fafdb5e019d22ed857e731d2f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/29", "title": "When developing in local mode when a task fails we don't want the whole process to halt"}, {"body": "was having some trouble getting \"production\" cluster running locally. I was getting an exception in NimbusClient.java. Looks like the YAML parser was giving back an ArrayList and we were casting it to a String. This fixes the issue, but given no one else has run into this I wonder if its because I was doing something else wrong.



", "user": {"avatar_url": "https://secure.gravatar.com/avatar/1c4dcea8dfecc86a2727bc9e6cc0a582?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/26", "title": "fixed possible client config parsing issue"}, {"body": "Upgraded to thrift version 0.6.1 to enable compatibility with latest version of Cassandra.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/423abccbed514c8464e12ae1479003a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/24", "title": "Upgrade Thrift"}, {"body": "This small patch adds a __repr__ method to the Tuple class in the Python library. It's very helpful for debugging bolts :-)

Regards,
Tom", "user": {"avatar_url": "https://secure.gravatar.com/avatar/223139cd460f00528796f94dc2415633?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/20", "title": "Add Tuple.__repr__ to Python library"}, {"body": "I'm trying to register a custom serializer using `config.addSerialization(33, SimpleJSONSerializer.class)`, but I can't get it to compile. I get: \"The method addSerialization(int, Class) in the type Config is not applicable for the arguments (int, Class)\"

My memory of Java generics is pretty rusty, but I think it's because the type `Class` is too strict, and the only value I can pass to it is `ISerialization.class` (which compiles, but obviously doesn't work). I believe the intended parameter type is actually `Class`, which can be passed any `Foo.class` so long as `Foo implements ISerialization`.

If I fall back to

```java
config.put(Config.TOPOLOGY_SERIALIZATIONS, Collections.singletonMap(33, \"uk.co.samstokes.storm.serializer.SimpleJSONSerializer\"));
```

then it works fine, so my serialiser is definitely working.", "user": {"avatar_url": "https://secure.gravatar.com/avatar/56cd5f806a8cebda6c8d1a33799724df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "merge", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/9", "title": "Config.addSerialization() parameter type is too strict?"}, {"body": "by removing dependencies on clojure.contrib material", "user": {"avatar_url": "https://secure.gravatar.com/avatar/2fcc875f98607b3007909fe4be99160d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"}, "outcome": "reject", "id": "https://api.github.com/repos/nathanmarz/storm/pulls/1", "title": "make it easier to move to clojure 1.3"}] \ No newline at end of file diff --git a/rails-rails.json b/rails-rails.json index 27b1909a27..d0a845a87b 100644 --- a/rails-rails.json +++ b/rails-rails.json @@ -1 +1 @@ -[{'body': "Hi,\n\nthis is a small deprecation notice improvement. I think we should give the user at least a keyword what to google for if he's unaware of strong_parameters.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0d323d2a13856a6a36fa52c3d4f546ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8260', 'title': 'Point user to strong_parameters as the new protection model'}, {'body': "I'm implementing the Rails 4 Queue API for queue_classic. I use `constantize` on the job name to trigger the rails autoloading before I unmarshal the job object. AM adds the following job when sending an email asynchronously: `ActionMailer::QueuedMessage::DeliveryJob`\n\ncalling `constantize` on this class results in a `#`\n\nI added the necessary `autoload` statement to `ActionMailer` to get it working.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8259', 'title': 'make ActionMailer::QueuedMessage autoloadable'}, {'body': 'Rebased and adapted #2303 onto master as requested buy @steveklabnik.\n\nThis test case failed with rails 3.1, but it works with 3.2 and current master. :beers: ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c11579192bd480035b95d6cc82a79907?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8258', 'title': 'Add test to ensure preloading works as expected with "group", "select" and "includes".'}, {'body': 'I verified that AM tests are passing', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8255', 'title': 'Bump mailer version to 2.5.0'}, {'body': 'The link for all the references to http://api.rubyonrails.org/ were broken and was giving 404 error. \n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9f6ebf1d479bc851fae2eca3577171a4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8253', 'title': 'Fixing broker links in README files'}, {'body': 'Preview1 has failures: https://travis-ci.org/rails/rails\n\nruby-head as of the time of this commit does not.\n\nTherefore, we should wait until preview2 to add ruby 2.0 back\nto travis. No sense in building things that are just going to\nbe broken.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8252', 'title': 'Remove ruby 2.0 from travis.'}, {'body': 'The `ActiveRecord::Fixtures::find_table_name` method was removed from "master" 11 months ago, but it was never deprecated. Here is a deprecated implementation, as suggested by @carlosantoniodasilva in the discussion of #4481.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/63c72161fba6e27cb05c078651c5e969?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8251', 'title': 'Add a deprecation before removing ActiveRecord::Fixtures::find_table_name'}, {'body': "This isn't ready to merge, as we're not totally fixed yet: https://travis-ci.org/rails/rails\n\nBut I was hopeful that we were, so I wrote it before the failures actually failed, and figured I'd get the PR in while I had the patch handy.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8250', 'title': 'Remove Ruby 2.0 from allowed_failures.'}, {'body': "@joshk said it's okay. :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8249', 'title': 'Add Ruby 2.0 to .travis.yml.'}, {'body': "this is in response to http://twitter.com/alindeman/status/269595485692624896 -- basically, you shouldn't use diff, and if you do, you **really** shouldn't use it building up the message raw. That means you're spending the cost whether your assertion passes or fails. I'll poke and look for others.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/16c4b19d8670085a428787f8b2438223?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8248', 'title': 'Removed extra call to #diff in #assert_recognizes'}, {'body': 'Adding sqlserver.yml template to satisfy "-d sqlserver" being passed to invocations of "rails new". Fixes issue #6882. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ce86257a874d7f32b95f1817ef1b50ee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8247', 'title': 'Adding sqlserver.yml template to satisfy "-d sqlserver" '}, {'body': 'This pull request reverts commit 8d8fd13179cacd86f307e87396474bdfab9f3462\nbecause Now mysql gem can be built on ruby 2.0.0-preview1.\n\n- ruby 2.0.0-preview1 used\n```ruby\n$ ruby -v\nruby 2.0.0dev (2012-11-01 trunk 37411) [x86_64-linux]\n```\n\n- MySQL 5.6.8 rc\n```ruby\n$ mysql -V\nmysql Ver 14.14 Distrib 5.6.8-rc, for Linux (x86_64) using EditLine wrapper\n```\n\n- bundler 1.2.2 required to execute bundler successfully.\n\n```ruby\n$ cd activerecord\n$ gem update\nUpdating installed gems\nUpdating bundler\nFetching: bundler-1.2.2.gem (100%)\nSuccessfully installed bundler-1.2.2\nUpdating rake\nFetching: rake-10.0.1.gem (100%)\nSuccessfully installed rake-10.0.1\nGems updated: bundler, rake\nInstalling ri documentation for bundler-1.2.2...\nInstalling ri documentation for rake-10.0.1...\nInstalling RDoc documentation for bundler-1.2.2...\nInstalling RDoc documentation for rake-10.0.1...\n```\n\n- mysql gem can be installed\n\n```ruby\n$ gem install mysql\nFetching: mysql-2.8.1.gem (100%)\nBuilding native extensions. This could take a while...\nSuccessfully installed mysql-2.8.1\n1 gem installed\nInstalling ri documentation for mysql-2.8.1...\nInstalling RDoc documentation for mysql-2.8.1...\n```\n\n- rake test_mysql finishes successfully without any failures/errors\n\n```\n$ bundle update\n... snip ...\nYour bundle is updated! Use `bundle show [gemname]` to see where a bundled gem is installed.\n\n$ rake test_mysql\n... snip ...\n3477 tests, 10113 assertions, 0 failures, 0 errors, 7 skips\n$\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8244', 'title': 'Now mysql gem can be built on ruby 2.0.0-preview1'}, {'body': "Add support for different MySQL engines for different tables; Add support for MyISAM fulltext indexes in migrations, and schema.rb.\n\nIn a project I was working on we wanted to use MyISAM fulltext indexes for a single table, but continue to use InnoDB for the remaining tables. This patch adds support for that. Without this patch it's impossible to use the [full-text search query syntax](http://dev.mysql.com/doc/refman/5.5/en//fulltext-search.html), because in the test database it would continue to use the default engine for all, and not add the fulltext option to the index that is create (just a standard key would be created, which isn't what we needed).\n\n* When dumping the schema to schema.rb, include engine information, and add a flag for fulltext indexes.\n* When engine and fulltext index flags are in the migration, create the index as a fulltext one.\n\n__Sources:__\n\nIntegrated: [multiple engine support from this gist](https://gist.github.com/1374003)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a9b8f5273d934fe57daa8cf54c3a017?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8239', 'title': 'Support Different Engines for Different Tables; Support MyISAM FULLTEXT indexes'}, {'body': "Avoid using `Integer#/`, as it is redefined by the 'mathn' stdlib to return rationals.\n\nOtherwise the methods gives a strange result.\n\nNote that `Integer#div` is more clear in its intent anyways.\n\nI didn't use Integer#divmod because it is less efficient than a separate `div` and `%` (because of the intermediate array :-( )\n\nI couldn't resist simplifying slightly the method (and making it slightly faster too).\n\nFixes #7087", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8236', 'title': 'Use div'}, {'body': 'This is a list of mime types where template text is not html escaped\nby default. It prevents `Jack & Joe` from rendering as\n`Jack & Joe` for the whitelisted mime types. The default whitelist\ncontains text/plain.\n\nThis follows a whitelist approach where plain text templates are\nnot escaped, and all the others (json, xml) are. The mime type is\nassumed to be set by the abstract controller.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/756daf26a0d77df3f9136534e32c7b3c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8235', 'title': 'Introduce `ActionView::Template::Handlers::ERB.escape_whitelist`'}, {'body': "Bundler <= 1.2.1 and Ruby 2.0.0 can raise an error since the commit below (incompatible change was added to Error class):\n\nhttps://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/37292\n\nIt's been now fixed in bundler 1.2.2. I think it's better for Rails 4 to update the dependency on bundler to `~> 1.2.2` toward the next coming Ruby 2.0.0, in advance.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/23f4d5d797a91b6d17d627b90b5a42d9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8234', 'title': 'Updated dependency on bundler to ~> 1.2.2'}, {'body': 'Since Rails 4.0 config.threadsafe! is enabled by default.\nI think we have to strongly warn users about it by not only showing deprecated warnings when\nuser use this option, but also writing deprecated warnings in config file.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/00e1c3b772c2c10d962ccba549f0e1d6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8232', 'title': 'Write config.threasafe! deprecated waning in config/environments/production.rb'}, {'body': "This is a follow up to my PR #7932. As @NZKoz pointed out, it is not a framework matter but left to the user to mark strings as `html_safe` when they contain '&' characters. I added the necessary documentation to `javascript_include_tag` to make the behavior clear.\n\nCloses #7931", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8228', 'title': 'document that `javascript_include_tag` will html escape sources.'}, {'body': 'The `plugin new` generator always adds the dummy app rake tasks,\nwhen a dummy app was created.\n\nCloses #8224\n\nI had to backport the commit 00fbee5bbf7896d38ccf3a26d4b6f36f9a63f358 also. Otherwise the error from #6251 would popup.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8227', 'title': 'backport #8139, `plugin new` adds dummy app tasks when necessary'}, {'body': 'Since pretty much in most of Rails we use ```instance_eval```. I think it will be good to have it in the migrations. \n\n```ruby\n\ncreate_table :user do |t|\n t.string :email, :name\n t.timestamps\nend\n\n# changes to:\n\ncreate_table :user do\n string :email, :name\n timestamps\nend\n\n```\n\nThis pull request contains the code to do this. It aslo includes the same behaviour for ```create_join_table``` and ```change_table```.\n\nI still have to:\n\n* Describe it in the rdocs\n* Possibly use this in the schema.rb generation\n* Change the tests and internal usage of the ```do |t| ``` pattern\n* Deprecation ?\n* Update CHANGELOG\n\nBut first, I want to know if such feature will be accepted.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7a0e72a6f55811246bb5d9a946fd2e49?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8226', 'title': 'Instance eval in migrations'}, {'body': "Avoid using `Integer#/`, as it is redefined by the 'mathn' stdlib to return rationals.

Otherwise the methods gives a strange result.

Note that `Integer#div` is more clear in its intent anyways.

I didn't use Integer#divmod because it is less efficient than a separate `div` and `%` (because of the intermediate array :-( )", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8222', 'title': "Avoid using Integer#/, as it is redefined by the 'mathn' stdlib"}, {'body': '`XmlMini.with_backend` now may be safely used with threads:

```ruby
Thread.new do
XmlMini.with_backend("REXML") { rexml_power }
end
Thread.new do
XmlMini.with_backend("LibXML") { libxml_power }
end
```

Each thread will use it\'s own backend.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8219', 'title': 'Make XmlMini.with_backend usable with threads'}, {'body': 'Examples on http://api.rubyonrails.org are inconsistent with behaviour.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d1f6be71bb64f418e87bc3e861594fc4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8218', 'title': '[ci skip] Correct examples for form_tag helper.'}, {'body': 'I came across this blog post:

http://collectiveidea.com/blog/archives/2012/11/12/tests-oddly-slow-might-be-bcrypt/

...which suggests putting the following into a your `test_helper`:

`BCrypt::Engine::DEFAULT_COST = 1`

...for a speedier test suite.

I tested this out on a few apps, found a noticeable speedup, and worked with @jeremy on this pull request after reviewing the feedback on this existing pull request: https://github.com/rails/rails/pull/285', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c0b6fb3807d7d4f255463ed168c75897?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8216', 'title': "Use BCrypt's MIN_COST in the test environment for speedier tests"}, {'body': 'Adverb: In the future (used after a period of time).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dffb1e16b6fa875efe7ce5dc36adafb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8210', 'title': 'hence /hens/'}, {'body': 'This is a backport of #8176 to fix #7551

I had to modify the patch, since the code looks different on `3-2-stable` than on master. Effectively it does the exact same thing tough. Since `spawn` was not available I used `clone`. Also I had to use `pluck` with an Array (in the test case) because multiple arguments are not supported on `3-2-stable`', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8209', 'title': 'backport #8176, `#pluck` can be used on a relation with `select` clause.'}, {'body': 'This is backport #8074.
I send this PR, because 3.2.9 was released.

Please see #6951 for more details.

/cc @rafaelfranca', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8205', 'title': 'Backport #8074 to 3-2-stable. Use query cache/uncache, when using not only database.yml but also DATABASE_URL.'}, {'body': "It's safe to use `nil?` instead of `blank?` because it's impossible to get an array on finder with bang; `all_by` fi

Fixes #7238", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8204', 'title': 'Use nil? instead of blank? to check dynamic finder result'}, {'body': 'See #7238 for details.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8202', 'title': 'Regression test for #7238'}, {'body': 'Issue #8195 was fixed in #6376. This test may be backported to `3-2-stable` as well as #6376.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8201', 'title': 'Add a regression test on #8195'}, {'body': 'Two commits (716bdfc01d45a61d211dbd766f494cb984fc9f9c & c3e186ec8dcb2ec26d5d56f3e89123b1350c4a6f) are fixes for problems that existed prior to the release of Mocha v0.13.0, but have remained unnoticed.

The other two commits (5573c1d29565f17aca48b6a320a676bf9f962f20 & 3791cac8747b5e36fe9619301a55d69f8feff982) fix Rails v3.2 to work with Mocha v0.13.0.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8200', 'title': 'Fix 3-2-stable to work with Mocha v0.13.0'}, {'body': 'This is a backport of #8185 to fix #8182', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8199', 'title': 'backport #8185, `#as_json` isolates options when encoding a hash.'}, {'body': 'Change

Rails 3.2.9 (unreleased)

to\t

Rails 3.2.9 (Nov 12, 2012)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4dea5cf83d2d6c1228750b76e579b38d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8193', 'title': 'Add release date of Rails 3.2.9 to documentation'}, {'body': "This is an attempt to fix this very un-DRY pattern that happens a lot:

```erb
<% if something == true %>
<%= content_tag(:div, :class => 'wrapper') do %>
Content
# ... and more stuff
<% end %>
<% else %>
Content
# ... and more of the same stuff as above
<% end %>
```
Now it's collapsible to this:

```erb
<%= content_tag_if(something == true, :div, :class => 'wrapper') do %>
Content
# ... and more stuff
<% end %>
```

Also added `content_tag_unless` for convenience sake.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0fd3f116897f75ec1de34a4ec77cac88?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8190', 'title': 'Adding suppport for conditional content_tag'}, {'body': '...l with optimistic locking enabled. Fixes #5332. Issue #5334.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6972cb84a97a2457c0744b34dc685cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8188', 'title': 'Fix deleting from a HABTM join table upon destroying an object of a mode...'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6972cb84a97a2457c0744b34dc685cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8186', 'title': 'Fix deleting from a HABTM join table upon destroying an object of a model with optimistic locking enabled. Fixes #5332. '}, {'body': "I modified the `Encoder` so that duplicates of the original `options` hash are passed around. I'm not sure if there are cases where we actually wan't the side effects but all the tests passed.

This is a fix #8182", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8185', 'title': '`#as_json` isolates options when encoding a hash. Closes #8182'}, {'body': 'Merge redundant tests and add new ones to has_and_belongs_to_many and has_many_through associations for null relation usage on new records.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f459742822cf8347e83d5c445378a934?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8184', 'title': 'Merge and add tests related to 5215'}, {'body': "These commits fix a number of subtle mocha-related bugs that have been present for a while :-

* Mocha was raising a `MiniTest::Assertion` instead of a
`Mocha::ExpectationError` as intended. The latter is not recognized by
MiniTest as an assertion failure and so it is recorded as a test
*error*, not a test *failure* as it ought to. This leads to
potentially confusing output in the test results.

* Mocha verification should happen as part of the test. The verification
of expectations is equivalent to a set of assertions. These assertions
should happen as *part of* the test so that they have a chance to
cause the test to fail, and not just as part of the teardown. Also if
an assertion fails during the test, then there is no need to verify
expectations, because only the first assertion failure is normally
reported and all subsequent bets are off.

* Expectation verification should be counted as an assertion. Mocha
cannot record each expectation verification as an assertion, because
we weren't passing in an assertion counter to `#mocha_verify`.

The code has unfortunately become relatively complicated to support different versions of mocha. If it is acceptable to only support the latest version of mocha (v0.13.0) onwards, I'd suggest it would be preferable to accept [this other pull request](https://github.com/rails/rails/pull/8180) which simplifies the code considerably.

I'd be more than happy to provide back-ported fixes to 3-x-stable branches if these would be useful.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8181', 'title': 'Mocha fixes'}, {'body': "As well as simplifying the code considerably and reducing coupling to mocha, these changes also fix a few subtle mocha-related bugs present in the current implementation :-

* Mocha was raising a `MiniTest::Assertion` instead of a
`Mocha::ExpectationError` as intended. The latter is not recognized by
MiniTest as an assertion failure and so it is recorded as a test
*error*, not a test *failure* as it ought to. This leads to
potentially confusing output in the test results.

* Mocha verification should happen as part of the test. The verification
of expectations is equivalent to a set of assertions. These assertions
should happen as *part of* the test so that they have a chance to
cause the test to fail, and not just as part of the teardown. Also if
an assertion fails during the test, then there is no need to verify
expectations, because only the first assertion failure is normally
reported and all subsequent bets are off.

* Expectation verification should be counted as an assertion. Mocha
cannot record each expectation verification as an assertion, because
we weren't passing in an assertion counter to `#mocha_verify`.

These changes only work with mocha v0.13.0 or later. In case you would prefer to support older versions of mocha, I will submit an alternative pull request, however the code in that pull request will be necessarily more complicated/messy.

I'd be more than happy to provide back-ported fixes to 3-x-stable branches if these would be useful.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8180', 'title': 'Simplify code by taking advantage of latest mocha (v0.13.0).'}, {'body': "I changed `#pluck` to spawn a new relation and then modify the `select_values` directly to ignore previously present `select` clauses. This patch simply ignores present `select` clauses.

There was also trailing whitespace in the `CHANGELOG.md` (created a separate commit to remove it, so that it's easier to backport)

This is a fix for #7551

The `ActiveRecord::Calculations` module has a couple of methods, which modify the `select_values` of a relation directly. I thought about a small refactoring to expose a method on `ActiveRecord::QueryMethods` to assign fields directly to `select_values` instead of concatenate them as `select` does. This could be named something like `#select_only` or `#force_select` (could also be implemented with a parameter to `select` like `:force => true` or `:override => true`.
I wanted to submit this PR first though to ask wether this is necessary or not.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8176', 'title': '`#pluck` can be used on a relation with `select` clause (#7551)'}, {'body': "This is from: https://github.com/rails/rails/pull/3457 and the following commit: https://github.com/joevandyk/rails/commit/939ed09983a4dabbf9ef239b01fa2fce083078f0

I have set the proper author of the commit.

It wasn't updated for quite a while and a rebase would be needed so I thought it would be interest to give it some love.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56e905e1e4a9137194df95dce0a73a30?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8174', 'title': 'Allow DateTime comparison to Infinity/-Infinity'}, {'body': 'There is no need in `value_under_case.class.to_s` conversion since `case` already matches classes with `Class === value_under_case`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8173', 'title': 'Match classes without to_s conversions.'}, {'body': 'Remove annoying `diff` deprecation message in `ActiveSupport` tests.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8172', 'title': 'Test Hash#diff deprecation, also prevent deprecation message in AS tests'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8170', 'title': 'Removing warning : ambiguous first argument'}, {'body': 'Sometimes your git directory is an ancestor of your application root
directory.

For example:
./repo/.git/
./repo/app/Rakefile

In this case rake test:uncommitted will be unable to detect your SCM.

This patch fixes this and add a test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3da82a61d5fbd74242cc6f671a5a32e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8169', 'title': 'Rake test:uncommitted finds git directory in ancestors.'}, {'body': 'Sometimes your git directory is an ancestor of your application root
directory.

For example:
./repo/.git/
./repo/app/Rakefile

In this case rake test:uncommitted will be unable to detect your SCM.

This patch fixes this and add a test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3da82a61d5fbd74242cc6f671a5a32e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8168', 'title': 'Rake test:uncommitted finds git directory in ancestors.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8165', 'title': 'Removing warning : assigned but unused variable'}, {'body': 'We should not need any `serialized_attributes` checks outside `ActiveRecord::AttributeMethods::Serialization` module.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8164', 'title': 'Keep the code related to serialization in Serialization module.'}, {'body': 'Just fixing a copy-paste bug in the comments.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f976da892dd9c316b21876c824495b35?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8162', 'title': 'Trivial documentation fix for ActiveModel::Naming comment'}, {'body': "Rails is failing with sprockets >= 2.3, see #8099 for reference and discussion.

I think we should address the issue anyway and relax the dependency again later but right now this is being a blocker for 3.2.9 release since last week.

We isolated the problem to sass-rails but we don't have much idea right now about how to fix it", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8161', 'title': 'Lock sprockets to 2.2.x'}, {'body': "It's no longer used in Rails any more.

See https://github.com/rails/rails/pull/8142\\#issuecomment-10227297 for more.

I didn't add a CHANGELOG yet because I wanted to make sure the rest was okay. Let me know and I'll add it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8158', 'title': 'Deprecate Hash#diff.'}, {'body': 'These two things were 100% identical.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8157', 'title': 'Removing duplication in callback normalization.'}, {'body': 'Example:

```
> Developer.new.build_profile
(0.3ms) BEGIN
(0.1ms) COMMIT
=> #
> ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8154', 'title': 'Remove unwanted transaction when has one association is built'}, {'body': 'See
https://github.com/rails/rails/commit/cb7d19b66badfbd1846c195913419c331701074e#commitcomment-2127148.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8153', 'title': 'Fix message about include_blank option.'}, {'body': 'We tell people how to do this all the time in the Issues tracker,
so now we can just point them here.

This is a first commit pairing by @kytrinyx and I, so @fxn, can you check the authorship and make sure it makes sense?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8152', 'title': 'Add note about squashing in contributor guide.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8151', 'title': "delegate PathSet's enumerator methods"}, {'body': 'From issue: https://github.com/rails/rails/pull/8146', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56e905e1e4a9137194df95dce0a73a30?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8150', 'title': "Don't eagerload the app directory"}, {'body': 'this is a backport of #8115 to fix #7842

The problem was already fixed in master, the solution used for `3-2-stable` is different.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8149', 'title': 'backport: handle trailing slash with engines'}, {'body': 'DRYed up and organized the gemspec file 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.
* Used a loop to add dependencies for all Rails components that use the
same version.
* Minor whitespace fixes such as padding the comma on the first line.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8147', 'title': 'Reformat gemspec'}, {'body': 'See https://github.com/rails/rails/pull/8138#issuecomment-10193937', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c2dc9c02ce7a041285725a4fc9e5f6d2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8145', 'title': 'Add test to avoid regression of 58e48d5'}, {'body': '### `diff` vs `deep_diff` vs `MiniTest#diff`

Here is `deep_diff` usage example:

```ruby
{ a: { b: 1 }}.deep_diff(a: { b: 1 }) # => {}
{ a: { b: 1, c: 2 } }.deep_diff(a: { b: 1 }) # => { a: { c: 2 } }
{ a: { b: 1 } }.deep_diff(a: { b: 1, c: 2 }) # => { a: { c: 2 } }
```

---

`diff` was introduced in @891a962a1 to improve failed assertion message. So `deep_diff` will be more useful when you need descriptive messages. So I\'m wondering are there any such cases when `diff` is a better choice than `deep_diff`?

Also here is a couple of strings from Rails using `diff`:

```ruby
# FIXME: minitest does object diffs, do we need to have our own?
message ||= sprintf("The recognized options <%s> did not match <%s>, difference: <%s>",
request.path_parameters, expected_options, expected_options.diff(request.path_parameters))
assert_equal(expected_options, request.path_parameters, message)
```

`FIXME` says that there is a `MiniTest` alternative which is way less descriptive:

```shell
[15] pry(main)> diff({a: 1, b: 2}, {b: 2})
=> "Expected: {:a=>1, :b=>2}\\n Actual: {:b=>2}"
```

So WDYT is the best way we should act here?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8142', 'title': '`Hash#deep_diff`, the recursive difference between two hashes'}, {'body': 'All classes are inherited from Object.
No need to monkeypatch thme all.

Checked AM and AR tests - all pass.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8141', 'title': 'Remove overmonkeypatching for Object#to_json'}, {'body': "This patch adds the dummy app Rake tasks to the Rakefile template when `rails plugin new` is called with `--skip-test-unit` and `--dummy-path`. Since `--dummy-path` generates the dummy app even when test unit is skipped I think it's ok to also add in the Rake tasks.

I added a CHANGELOG entry and also created the `with_dummy_app?` method to reuse the condition.

This is a fix for #8121", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8139', 'title': 'Add app Rake tasks when -T and --dummy-path is passed to `plugin new`'}, {'body': 'Fix for #8131', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c2dc9c02ce7a041285725a4fc9e5f6d2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8138', 'title': 'Fix accepts_nested_attributes for child classes'}, {'body': 'Just ran into this one while working on a legacy Rails 2.3 site.

Try `YAML.load(YAML.dump(t))` where `t` is an instance of `ActiveSupport::TimeWithZone`. Under Ruby 1.9.3, this fails with the following message:

NoMethodError: undefined method `period_for_utc\' for nil:NilClass
\t from /home/alex/Programming/Ruby/rails/activesupport/lib/active_support/time_with_zone.rb:58:in `period\'
\t from /home/alex/Programming/Ruby/rails/activesupport/lib/active_support/time_with_zone.rb:44:in `time\'
\t from /home/alex/Programming/Ruby/rails/activesupport/lib/active_support/time_with_zone.rb:304:in `respond_to?\'
\t from /home/alex/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:284:in `init_with\'

The solution is to backport `TimeWithZone#encode_with` from Rails 3.

Under Ruby 1.8.7, `YAML.dump` also fails, with a different message:

NoMethodError: private method `gsub\' called for #
\t from ./activesupport/lib/active_support/time_with_zone.rb:145:in `to_yaml\'

Under Syck, `YAML.dump` passes a `StringIO` to `to_yaml` (rather than the "options" Hash which the author of `TimeWithZone#to_yaml` seemed to expect). Naturally, `gsub` fails on the `StringIO` object. The solution is simply to convert it to a String first.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5dbfc386f986b9d600324cd02dae266d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8134', 'title': 'Make YAML.dump work with ActiveSupport::TimeWithZone (under both Ruby 1.8/1.9)'}, {'body': 'Just ran into this one while working on a legacy Rails 2.3 site.

Try `YAML.load(YAML.dump(t))` where `t` is an instance of `ActiveSupport::TimeWithZone`. Under Ruby 1.9.3, this fails with the following message:

NoMethodError: undefined method `period_for_utc\' for nil:NilClass
\t from /home/alex/Programming/Ruby/rails/activesupport/lib/active_support/time_with_zone.rb:58:in `period\'
\t from /home/alex/Programming/Ruby/rails/activesupport/lib/active_support/time_with_zone.rb:44:in `time\'
\t from /home/alex/Programming/Ruby/rails/activesupport/lib/active_support/time_with_zone.rb:304:in `respond_to?\'
\t from /home/alex/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:284:in `init_with\'

The solution is to backport `TimeWithZone#encode_with` from Rails 3.

Under Ruby 1.8.7, `YAML.dump` also fails, with a different message:

NoMethodError: private method `gsub\' called for #
\t from ./activesupport/lib/active_support/time_with_zone.rb:145:in `to_yaml\'

Under Syck, `YAML.dump` passes a `StringIO` to `to_yaml` (rather than the "options" Hash which the author of `TimeWithZone#to_yaml` seemed to expect). Naturally, `gsub` fails on the `StringIO` object. The solution is simply to convert it to a String first.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5dbfc386f986b9d600324cd02dae266d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8133', 'title': 'Make YAML.dump work with ActiveSupport::TimeWithZone (under both Ruby 1.8/1.9)'}, {'body': 'In rails/strong_parameters#57, I filed a bug report:

------------

#### #permitted? survives :except, but not :slice

I would expect that calling `:slice` on a permitted Parameters hash would return another permitted hash, just as `:except` does. But no:

```
> params = ActionController::Parameters.new(:foo => 42, :bar => 1337).permit(:foo, :bar)
=> {"foo"=>42, "bar"=>1337}
> params.except(:bar).permitted?
=> true
> params.slice(:foo).permitted?
=> false
```

Is this a feature, or is it a bug?

------------

DHH et al confirmed that it\'s a bug. I made a pull request rails/strong_parameters#58, which got merged in, and @rafaelfranca asked me to open a pull request for Rails core as well. Here is the description of the original pull request (with SHAs changed to match the current pull request):

------------

#### Permitted should be sticky when calling slice

This pull request solves 3 different things:

1. Some of the parameters_taint tests were broken. Fixed in 5b3b9b0ebcbe35038adaf7b1636032e6f436ed1c
1. The "permitted is sticky" tests are actually testing that "tainted is sticky". "Tainted" seems to not be used anymore, so I changed their titles to "not permitted is sticky" in 93eaffe59b713e94424212540a8788f0b273f8eb \u2013 and added a test for #except in 1a0f14e0453d3a36f134989752721292aed54892
1. I made a set of new "permitted is sticky" tests, basically inverted copies of the existing tests, only testing on a `permitted` object: 478d80fd5788a4b3e7c8482bfd3713eef7d00884 \u2013 with the #slice bug fixed in 344364990436d9fcb7e77d5deb1beeb9c34a2b85

------------', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f9d47b3d6001500a435163fa341f3a4d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8132', 'title': 'Permitted should be sticky on #slice'}, {'body': 'I was getting javascript exceptions from jQuery using `$.post(...)` to an action that rendered using `head :ok` because head returns a blank response body (which is not valid JSON) even though $.post requested "application/json" and the response type was "application/json".

I went ahead and modified "head" put valid JSON in the response body if the response format is "application/json".

This may turn into a philosophical argument, but I would say that if the response claims that its content type is "application/json" that its body be valid for that type.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9a868e949f8d6880f74207a33898ff5b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8124', 'title': '"head" renders valid JSON if response type is "application/json"'}, {'body': "Now that the validator has been put on the confirmation attribute there is the possibility of the confirmation validator passing when it shouldn't.

This fix resolves the following usecase:

```ruby
class User < ActiveRecord::Base
attr_accessor :password
validates :password => { :confirmation => true }
end

u = User.new(:password => 'test')
u.valid?
# => true
```

The logic in the validator would skip if `password_confirmation` evaluates to `nil` which is very likely for many cases.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8122', 'title': "Don't allow confirmation to pass if confirmation value is nil and doesn't match value"}, {'body': '* move ActiveModel::Errors tests to errors_test.rb
* add spec coverage for add_on_empty and add_on_blank', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8118', 'title': 'use Array() instead of flatten'}, {'body': 'This kills the repetitive ```"th"```.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8117', 'title': 'Refactor ActiveSupport::Inflector#ordinal'}, {'body': "This is a fix for #7993. I introduced a `counter_cache` option for `has_many` associations. This option is only necessary, when the name of the counter cache was customized on the `belongs_to` association.

I updated the `CHANGELOG` and provided documentation for the `:counter_cache` option. I'm not sure if the wording is good enough though.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8116', 'title': ':counter_cache option for to support custom named counter caches'}, {'body': "This PR adds a test case to make sure that we don't get any regressions on #7842. Also I removed obsolete code from the `_generate_prefix` method.

The issue described in #7842 has been fixed on master but is still present on `3-2-stable`. The attached test case will fail on `3-2-stable` and passes on master.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8115', 'title': 'handle trailing slash with engines (test case for #7842)'}, {'body': "1) **Sign cookies using key deriver**
Rails will derive keys if config.secret_key_base is set instead of the old config.secret_key. If secret_key_base is not set to keep backwards compatibility Rails will not derive and just use the raw secret_key as in previous versions.
Users can change the default salt for signing cookies through config.action_dispatch.signed_cookie_salt setting which is by default 'signed cookie'.

2) **cookie.encrypted method => EncryptedCookieJar**
This adds a encrypted method to CookieJar that returns a jar that'll automatically encrypt cookie values before sending them to the client and will decrypt them for read.
It also prevents from tampering by the user (or a 3rd party) throwing an ActiveSupport::MessageVerifier::InvalidSignature exception.
You must set config.secret_token_base to be able to use this feature.
Users are allowed to change the default salt used for encryption by changing config.action_dispatch.encrypted_cookie_salt which defaults to 'encrypted cookie' and can also change the salt using for signing by changing config.action_dispatch.encrypted_signed_cookie_salt which defaults to 'signed encrypted cookie'

3) **encrypted cookie store**
This adds encrypted cookie store. You now can set config.session_store :encrypted_cookie_store, key: '_myapp_session' in order to use encrypted cookies to store your session. This also makes new apps to use encrypted cookie store but default.

4) **Use derive keys for http authentication**
Just that it changes http authentication to use derived keys.
Users are allowed to change the default salt by changing config.action_dispatch.http_auth_salt which defaults to 'http authentication'

In general, please help me reviewing all this. Help me improving the docs for all this. And help me suggesting better names for the options, mostly \u2026

config.secret_key_base
config.action_dispatch.signed_cookie_salt
config.action_dispatch.encrypted_cookie_salt
config.action_dispatch.encrypted_signed_cookie_salt
config.action_dispatch.http_auth_salt

**Note to committers**: Leave this for me to merge :).

/cc @NZKoz @meder @thaidn @emboss @nahi please help me reviewing giving crypto review :).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d04d064616ae7fd752fdcb8daa5abdd6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8112', 'title': 'Encrypted cookies'}, {'body': '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.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8111', 'title': 'Use `tag!` instead of `method_missing` in `to_xml` conversions.'}, {'body': 'First pull request, so sorry in advance for potential improper git techniques or poor etiquette

Changed `Active Support - Inflections - parameterize` method to delete apostrophes, as suggested in this issue for Friendly ID: https://github.com/norman/friendly_id/issues/329#issuecomment-10001285

Added one test case in `inflector_test_cases.rb` under `StringToParameterized` and making it pass didnt seem to break anything!
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e600bd229c588891a7616f303e30efd9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8110', 'title': 'Changed ActiveSupport inflections parameterize to remove apostrophes'}, {'body': "When you have an explicit index set, then when you build an input tag with :multiple => true, it doesn't add [] to the end of its name, although it should.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/602f1b8ccf99dc47c43da83d53b4ffd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8108', 'title': 'Support :multiple option on input tags that also have :index'}, {'body': 'This is the kind of thing that drives me crazy.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8106', 'title': 'Fixed grammar in migration pending error.'}, {'body': 'Fixes #8095.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8097', 'title': 'Fixed mapping of Solomon Islands.'}, {'body': "The code introduced in #7377 assumes that `first` and `last` always return a single record. This is incorrect for calling `first` with an integer argument.

The attached commit (against 3-2-stable) handles this case correctly and includes a test.

I'm not super-happy with the resulting code; there's way too much `is_a?` checking going on in `first_or_last`, but this will work for now to get 3.2.9 out.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6883e5ef03484d4fcef507d7b4f1d243?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8094', 'title': 'set inverses correctly for first(n) and last(n)'}, {'body': "Now `BestStandardsSupport` middleware appends it's `X-UA-Compatible` value to app's value.
Also test for `BestStandardsSupport` middleware added.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8093', 'title': 'Fix #8086 (BestStandardsSupport rewrites app X-UA-Compatible header)'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8092', 'title': 'Small change to remove warning unused variable.'}, {'body': 'Fixed issue where routes with globs caused constraints on that glob to be ignored. A regular expression constraint gets overwritten when the routes.rb file is processed. Changed the overwriting to an ||= instead of an = assignment. Added regression test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aab52c6dcb1eff73baa17f973b2ab1e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8090', 'title': 'Glob Constraints Fix '}, {'body': 'Fixed issue where routes with globs caused constraints on that glob to be ignored. A regular expression constraint gets overwritten when the routes.rb file is processed. Changed the overwriting to an ||= instead of an = assignment. Added a regression test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aab52c6dcb1eff73baa17f973b2ab1e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8089', 'title': 'Glob Constraint Fix '}, {'body': "This is in response to the discussion at https://bugs.ruby-lang.org/issues/7241

I think an `each_with_hash` method would be a very useful addition. It provides a nice shortcut for the common `each_with_object({})`, but it also supports setting a default value or proc for the Hash. It also provides a shortcut for a common use of `Hash.new( )`, which is setting the default value on a hash key when it is looked up. Here's an example of how you could write less code using that feature:

```ruby
# using each_with_object:

[1,2,3,2].each_with_object(Hash.new(&-> hash, key { hash[key] = [] })) {|el, hash| hash[el] << el ** 2 }
#=> {1=>[1], 2=>[4, 4], 3=>[9]}

# using each_with_hash:

[1,2,3,2].each_with_hash([], true) {|hash, el| hash[el] << el ** 2}
#=> {1=>[1], 2=>[4, 4], 3=>[9]}
```

I would love to be able to easily use `<<` with arrays, instead of having to write `hash[el] += [el ** 2]`.


If this gets merged, it would be awesome if it could also be included in `3-2-stable`.


Thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4931eceec58528529fd004e56af197c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8088', 'title': 'ActiveSupport: Added `each_with_hash` to Enumerable'}, {'body': "If a unknown format is passed in a request, the methods html?, xml?, json? ...etc
Nil Exception.

This patch add a class NullMimeTypeObject, that is returned when request.format is unknown
and it responds false to the methods that ends with '?'.

It refers to #7837, not fixes because it's not considered a improvement not a bug.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8084', 'title': 'if format is unknown NullMimeTypeObject is returned'}, {'body': 'I think I have a fix for incorrect return value from `ActiveRecord#update_column` method.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5adcc3757d6c4f5609aa2dc3b41f4705?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8083', 'title': 'Fix ActiveRecord#update_column return value'}, {'body': 'Public method attributes_before_type_cast used to return internal AR structure (ActiveRecord::AttributeMethods::Serialization::Attribute), patch fixes this. Now behaves like read_attribute_before_type_cast and returns unserialised values.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8082', 'title': 'Backport #8078: Fix `attributes_before_type_cast` for serialised attributes'}, {'body': 'Public method `attributes_before_type_cast` used to return internal AR structure (ActiveRecord::AttributeMethods::Serialization::Attribute), patch fixes this. Now behaves like `read_attribute_before_type_cast` and returns unserialised values.

Also it may need a backport to 3-2-stable.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8078', 'title': 'Fix `attributes_before_type_cast` for serialised attributes.'}, {'body': 'When setting an array column (or other PostgreSQL-specific data type) to be validated for uniqueness, the resulting SQL query is generated with syntax errors, like this:

SELECT 1 AS one FROM "postgresql_arrays" WHERE "postgresql_arrays"."nicknames" = \'["john", "johnny"]\' LIMIT 1

This happens because Ruby Arrays must be type-casted to their PostgreSQL equivalent. This small patch fixes this issue, calling the adapter\'s type_cast method.

I have added a test case for this, but since it\'s PostgreSQL-specific (it skips for other adapters), I\'m not sure if it belongs in the validate_uniqueness_test.rb or if I should put it with other PostgreSQL tests.

Thanks,', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/12767e9533d7fb1e1553c96891cecf9e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8075', 'title': 'ActiveRecord: support for validates_uniqueness_of in PostgreSQL array columns'}, {'body': "This PR closes #6951.

If we use `DATABASE_URL`, `ActiveRecord::Base.configurations` is not populated. Thus we can't use query cache with DATABASE_URL.

See https://github.com/rails/rails/blob/master/activerecord/lib/active_record/query_cache.rb#L7", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8074', 'title': 'Fix #6951. Use query cache/uncache, when using not only database.yml but also DATABASE_URL.'}, {'body': 'Hi,

Here is a fix for find_in_batches when Model#id is a string. In fact when calling find_in_batches (or find_each) without the start option it generates a wrong SQL statement:

Subscriber.find_each { |subscriber| ... }
# Generates SQL:
# SELECT "subscribers".* FROM "subscribers" WHERE ("subscribers"."nick" >= 0) ...

That statement is invalid with strict databases such as PostgreSQL, because it tries to compare a string against an integer.

With more tolerant databases such as SQLite it\'s passing, but in fact it skips IDs starting with a lower character than \'0\'.

Once accepted and merged, I plan to backport that fix in pull request #7987 for rails 3.2.

cc @spastorino', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7181ef90f3b8bf3c5b39d4dce67576c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8073', 'title': 'Fix find_in_batches against string IDs when start option is not specified'}, {'body': "When I executed rails's testcases, I found the following warnings. And I wanted to fix this.

```
activesupport/lib/active_support/core_ext/module/attribute_accessors.rb:11: warning: method redefined; discarding old include_root_in_json
activesupport/lib/active_support/core_ext/class/attribute.rb:83: warning: previous definition of include_root_in_json was here
activesupport/lib/active_support/core_ext/module/attribute_accessors.rb:31: warning: method redefined; discarding old include_root_in_json=
activesupport/lib/active_support/core_ext/class/attribute.rb:80: warning: previous definition of include_root_in_json= was here
```

But I thought `include_root_in_json` should be `class_attribute` (inheritance-able attribute), and my testcase was not passed.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8072', 'title': 'include_root_in_json attribute allows inheritance.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/26b5e23b3f4913c916f9f50ecf7c08c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8066', 'title': 'Add test for code change introduced in this commit f20032f'}, {'body': "- It's easier to order the keys afterwards than to unorder.
- Normally, we shouldn't waste some time to order the keys as it is a json object, the ordering doesn't matter.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/26b5e23b3f4913c916f9f50ecf7c08c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8065', 'title': 'Remove the sort in the serialization methods used by as_json'}, {'body': "It's sometimes hard to quickly find where deprecated call was performed, especially in case of migrating between Rails versions. So this is an attempt to improve the call stack part of the warning message by providing caller explicitly.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/956e1f1d80bf09a129a5d0e483667794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8063', 'title': 'Provide a call stack for deprecation warnings where needed.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aaf06d234d37270caaedfed79969f9f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8061', 'title': 'ref'}, {'body': 'As we did here 1adb78424fa79075806704ad6f79c159795828c1', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8059', 'title': 'JSON gem is not required for 1.9 rubies.'}, {'body': 'I added the missing test. Related #7867.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8057', 'title': 'SQLite3Adapter#type_cast should not mutate arguments'}, {'body': "...ributes.

This fixes the following behaviour:

class Person < ActiveRecord::Base
belongs_to :company
end

# Before:
person = Person.select('id').first
person[:name] # => nil
person.name # => ActiveModel::MissingAttributeError: missing_attribute: name
person[:company_id] # => nil
person.company # => nil

# After:
person = Person.select('id').first
person[:name] # => ActiveModel::MissingAttributeError: missing_attribute: name
person.name # => ActiveModel::MissingAttributeError: missing_attribute: name
person[:company_id] # => ActiveModel::MissingAttributeError: missing_attribute: company_id
person.company # => ActiveModel::MissingAttributeError: missing_attribute: company_id

Fixes #5433.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8056', 'title': 'AR::AttributeMethods#[] raises AM::AttributeMissingError for missing att...'}, {'body': "...attribute is missing

This fixes the following behaviour:

class Person < ActiveRecord::Base
belongs_to :company
end

# Before:
person = Person.select('id').first
person[:name] # => nil
person.name # => ActiveModel::MissingAttributeError: missing_attribute: name
person[:company_id] # => nil
person.company # => nil

# After:
person = Person.select('id').first
person[:name] # => ActiveModel::MissingAttributeError: missing_attribute: name
person.name # => ActiveModel::MissingAttributeError: missing_attribute: name
person[:company_id] # => ActiveModel::MissingAttributeError: missing_attribute: company_id
person.company # => ActiveModel::MissingAttributeError: missing_attribute: company_id

Fixes #5433.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8055', 'title': 'AR::AttributeMethods#[] should raise AM::AttributeMissingError if given ...'}, {'body': "This patch adds error handling to `create_table` when the primary_key is being redefined.

I added a separate refactoring commit for the `SQLite3Adapter#copy_table` method. This method redefined the primary key multiple times, wich of course raised exceptions with the patch. I looked over the tests for `copy_table` and made some additions to lock the current behavior down before refactoring (I think it would be good to glance over to make sure I didn't forget anything).

Also there might be a better description for the error message, just leave a comment if you got a better text.

This is a fix for #6378", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8054', 'title': 'create_table raises an ArgumentError when the primary key is redefined.'}, {'body': "Didn't work before because it updated the model-in-memory first, so the DB query couldn't find the record.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4a551074ddba4460f95d011c47190d0e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8053', 'title': 'Unbreak update_column/update_columns for the primary key attribute.'}, {'body': "Don't log on pending migration check

Conversation from: #6665 cc/ @rafaelfranca", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8052', 'title': "Don't log on pending migration check "}, {'body': 'There are two completely identical modules called `ModelNaming` in actionpack. One lives in `ActionView` the other in `ActionController`. I moved the module to `ActionPack` (not sure if that is the right place for it, feedback welcome) and adjusted the references.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8051', 'title': 'refactoring, remove ModelNaming duplication in actionpack'}, {'body': 'As I understand, submit input was accidentally omitted.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/741fd27ca37edcfee12ba481ef35c704?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8050', 'title': 'fix typo in button_to helper example'}, {'body': "I like the Idea behind CodeClimate. Since rails is already listed there I added the batch to the README.

I'm not sure what the opinion about CodeClimate is on the core-team, so feel free to just close.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8049', 'title': 'add CodeClimate batch to the README'}, {'body': 'I introduced a `NullMail` class. When `mail()` is never called an instance of `NullMail` is returned in place of a regular `Mail`.

This refactoring fixes #7761', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8048', 'title': "Do not render views when mail() isn't called. (NullMail refactoring)"}, {'body': "It's only required for 1.8 and for JRuby!
I was fixing a bug with JSON pure on 1.8.7
and I found that we have included json for other
1.8 > rubies also.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8047', 'title': 'Removing JSON for other ruby'}, {'body': "It was noticed while profiling 'assets:precompile' in JRuby that
exception creation was consuming a large portion of time, and
some of that was due to File.atomic_write.

Testing first with File.exists? eliminates the need for an exception
which should be a performance improvement on both JRuby and MRI.
In this case, the stat() isn't even extra overhead, since it is always
called anyway.

See some [benchmarks on exception vs stat overhead](http://polycrystal.org/2012/10/25/comparing_ruby_exceptions_to_additional_stat_test.html).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/27598e1b77ce41fb0bd8a6fc4a3715d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8046', 'title': 'Replace flow-control exception with explicit test.'}, {'body': 'Fixed issue where routes with globs caused constraints on that glob to
be ignored. A regular expression constraint gets overwritten when the
routes.rb file is processed. Changed the overwriting to an ||= instead
of an = assignment.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aab52c6dcb1eff73baa17f973b2ab1e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8045', 'title': 'Fixed issue where routes with globs caused constraints to be ignored'}, {'body': 'If I happen to use a `.rb` file inside `app/assets` it can get automatically loaded, this probably holds true for `app/views`.\n\nI think this is not the intended behavior, [railties has](https://github.com/rails/rails/blob/master/railties/lib/rails/engine/configuration.rb#L38):\n\n```ruby\npaths.add "app", :eager_load => true, :glob => "*"\npaths.add "app/assets", :glob => "*"\npaths.add "app/controllers", :eager_load => true\npaths.add "app/helpers", :eager_load => true\npaths.add "app/models", :eager_load => true\npaths.add "app/mailers", :eager_load => true\npaths.add "app/views"\n```\n\nseems quite clear that the first line refers to all non-specified paths\n\n\nOf course I can fix this per application by adding to `application.rb`:\n\n```ruby\n config.before_initialize do\n config.eager_load_paths = config.eager_load_paths.dup - Dir["#{Rails.root}/app/{assets,views}"]\n end\n```\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c82630c82a3c675d2928804f432fcf17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7587', 'title': 'Should not eager_load app/assets'}, {'body': "I've been browsing the actionpack source lately and submitted a few patches.\nThere were occasions of trailing whitespace and to keep the commit diffs clean,\nI removed them all in one go.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8043', 'title': 'remove trailing whitespace within actionpack'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8040', 'title': 'fix failing isolated tests in activemodel'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8038', 'title': 'Fix AM::Serializers::Xml dependency'}, {'body': 'This fixes activesupport tests.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8037', 'title': 'Worker and consumer logs failed jobs instead of raising an exception'}, {'body': 'Two pet peeves fixed:

* ```for foo in foos``` becomes ```foos.each do |foo|```
* ```foo.empty? ? nil : foo``` becomes ```foo.presence```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8036', 'title': 'HTML::Selector Minor Refactor'}, {'body': 'The abort on exception flag makes sure that exceptions outside the begin..rescue block have effect. Otherwise the thread would just die without an error message.

The thread name makes it easier to see what the thread is for in Phusion Passenger thread backtraces.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/02f0ee0da223f90bb9996ef252e528c1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8035', 'title': 'Make ThreadedQueueConsumer abort on exception and set a thread name.'}, {'body': ' * Organized code status badges into a "Code Status" section.
* Moved the OSI MIT License link inline (bullets are for unordered
lists).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8034', 'title': 'Organize README'}, {'body': '"~> 2.2.2" from "~> 2.1.1". Also removed a hash rocket in the Gemfile on
that same line, and created another that was necessary because the 1.9
syntax messed up syntax highlighters.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8031', 'title': 'Update redcarpet dependency'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dffb1e16b6fa875efe7ce5dc36adafb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8030', 'title': 'Fix gratuitous use of ternary operator'}, {'body': "Previously this code just assumed it is capable of changing the file
ownership, both user and group. This will fail in a lot of scenario's
unless:
* The process is run as a superuser (root);
* The owning user and group are already set to the user and group we're
trying to chown to;
* The user chown'ing only changes the group to another group it is a
member of.
If either of those conditions are not met the filesystem will simply
deny the operation throwing an error.

It is also not always possible to do a chmod, there might be a SELinux
policy or another limitation preventing the user to change the file
mode. To this end the chmod call has also been added to the rescue
block.

I've also added a little comment above the chmod command that doing a
chmod on a file which has an ACL set will cause the ACL to be
recalculated / modified.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c8a0e35858af86b1e6f2fb886585faba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8027', 'title': "Atomic.rb assumes it may chown/chmod a file but doesn't handle the EPERM error."}, {'body': "Fixes #8025

I'm not sure if there's a good way to test this?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8026', 'title': 'Make sure that RAILS_ENV is set when accessing Rails.env'}, {'body': 'Before (penultimate line):

class Person
def to_param
"#{id}-#{name.parameterize}"
end
end

@person = Person.find(1)
# => #

<%= link_to(@person.name, person_path %>
# => Donald E. Knuth

After (penultimate line):

class Person
def to_param
"#{id}-#{name.parameterize}"
end
end

@person = Person.find(1)
# => #

<%= link_to(@person.name, person_path) %>
# => Donald E. Knuth', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f94f8f42364591025aaed622d499f27?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8022', 'title': 'Adding a missing parenthesis in the doc of String#parameterize.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5cba606090e5f29f910274796748f20a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8021', 'title': 'Fix incorrect markdown by removing extra space.'}, {'body': 'There is no need in additional `@calculated_ip` instance variable as we
can use `defined?` to check if `@ip` instance variable is already
assigned.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8019', 'title': 'memoize calculated ip without additional variable'}, {'body': "As stated here, changing the implementation of FlashHash can break people's sessions.

https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/flash.rb#L73-76

This happened between Rails 2 and 3, and the ivars have again changed since 3.2, for example replacing `@used` with `@discard`.

So, this patch avoids this issue altogether by mapping the flash object onto a simple data structure for storage in the session. The intention is that this representation remain stable while still allowing the implementation to change, without invalidating existing sessions.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/81eec7f220df03d5b8cadf106a2c14c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8017', 'title': 'Store FlashHashes in the session as plain hashes'}, {'body': 'PR #5075 added a nice feature to provider client-side with full error messages arranged by model fields. With this patch, it\'s now possible to provide that option directly to `respond_with`, e.g.:

```ruby
respond_to :json

def update
@user.update_attributes(params[:user])
respond_with(@user, full_messages: true)
end
```

To achieve the following output:
```json
{ "errors": {
"name": "Name cannot be blank." } }
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d28da594945b3665f6c06bd4e7dc8e10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8016', 'title': 'Pass :full_messages option from Responder to AM::Errors'}, {'body': 'I think this name was copy pasted from [here](https://github.com/rails/rails/blob/v3.2.8.rc2/railties/test/generators/controller_generator_test.rb#L15)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5e083b9550b21448a93a5ce4f2f5251e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8014', 'title': 'changed test case name'}, {'body': "It would be convient to pass the key to the block on `cache.fetch` when their is a miss. When I use `cache.fetch` I always have to store the key I'm attempting to write away to pass to the computation function:

```ruby
query = complex_calculation(params[:q])

Rails.cache.fetch(query) do
ExpensiveOperation.execute(query)
end
```

vs. after my commit:

```ruby
Rails.cache.fetch(complex_calculation(params[:q])) do |query|
ExpensiveOperation.execute(query)
end
```

This is low-risk, medium-reward commit. Existing code will *just work* if the block doesn't receive a variable and future code will be cleaner in this very common pattern.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bac90e5a544362200fdb2f0c4ffcfa2d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8013', 'title': 'Pass key to block in cache.fetch on miss'}, {'body': "When a hash like this is created:

# params = { :member => {
# :name => 'joe', :posts_attributes => [
# { :title => 'Kari, the awesome Ruby documentation browser!' },
# { :title => 'The egalitarian assumption of the modern citizen' },
# { :title => '', :_destroy => '1' } # this will be ignored
# ]
# }}

We can't call the :member attributes like this:

# params['member']

We should call it like this:

# params[:member]", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a15b0863f6c299c2b516754aab2830ec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8012', 'title': 'Fixed typo on ActiveRecord nested_attributes.'}, {'body': 'This is the backport for issue 7521.

- added tests to confirm establish_connection uses DATABASE_URL and
Rails.env correctly even when no arguments are passed in.
- updated rake db tasks to support DATABASE_URL, and added tests to
confirm correct behavior for these rake tasks. (Removed
establish_connection call from some tasks since in those cases
the :environment task already made sure the function would be called)
- updated Resolver so that when it resolves the database url, it
removes hash values with empty strings from the config spec (e.g.
to support connection to postgresql when no username is specified).
- updated ResolverTest to use current_adapter? to check the type of
the current adapter.

(note: this backport is slightly different from master due to update to ResolverTest to make sure the tests get run when the adapter is mysql.)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d308241c047f7d688b21835a0d47b369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/8009', 'title': 'fixed support for DATABASE_URL for rake db tasks'}, {'body': "Actually we have two lines under the turbo links.

So my commit permits to have only one line.

Before:

gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'


# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

After:

gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f94f8f42364591025aaed622d499f27?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8006', 'title': 'Remove extra line in Gemfile generated'}, {'body': "there is a chance that `value` is a Set or an object that reponses to `include?` method so let's handle this case", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/8002', 'title': 'check_box value can be not only an object of Array class'}, {'body': "This fixes #733.

Because of the spotty wifi in RubyConfAR, I couldn't get `bundle` going, and so I couldn't run the tests. I wanted to get this up here, though, and @clemenshelm says that it works fine in their application.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7997', 'title': 'Add i18n scope to disance_of_time_in_words.'}, {'body': 'This reverts commit 98043c689f945cabffc043f4bdc80ab2a7edc763. See #7994 .

Because if every time `debug.log` is truncated, developers have no way to see the previous ActiveRecord unit test results.

`debug.log` file size can be easily reduced by executing `$ touch /dev/null > debug.log` periodically.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7996', 'title': 'Revert "truncate debug.log on each test run"'}, {'body': 'Moved "activerecord.errors.messages.taken" to "errors.messages.taken so that translations" for, e.g., "errors.attributes.email.taken" don\'t get overridden. This also makes the \'taken\' message consistent with the other error messages which are defined in "errors.messages".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9a868e949f8d6880f74207a33898ff5b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7995', 'title': 'Small change to active_record/locale/en.yml'}, {'body': 'Yesterday, I found a big 1GB file called "debug.log" inside the activerecord/test directory. It\'s better if we truncate the log on each test run.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7994', 'title': 'truncate debug.log on each test run'}, {'body': 'I probably look like the most massive smart ass right now. Don\'t hate me.

```Ruby
"lol".pluralize # => "lulz"
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7992', 'title': 'Add inflection for lulz'}, {'body': "Hey,

in my pull request that was already commited https://github.com/rails/rails/pull/6671
I forgot to include credit in the changelog (by the way, is it customary to put credit in any other place as well?). Since I see all the other changes have credit attributed I would like to include credit to myself and Egor Homakov who described the issue.
I'm not sure what the best way to do this is, so that it would not be a single commit just for this, perhaps the next time the ActiveModel changelog is changed?
Just in case I am attaching a pull request.

I'm sorry for the trouble :S

Thanks,
Jan", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eda6e2638857d20ae499d26432e1a221?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7990', 'title': 'Credit for previous commit'}, {'body': 'this is a backport of #7969.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7989', 'title': 'backport: active_model/validations requires necessary files to run'}, {'body': 'Back port @spastorino fix (https://github.com/rails/rails/pull/7652) from rails4 into 3.2.

I also noticed that find_in_batches is broken with string IDs when start option is not provided, but it works perfectly when start has been given. I fixed it with a test case in commit 827942195cdf4c6f09f540b60ee7c1b7a0d051b6. Maybe I went too far with that last commit?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7181ef90f3b8bf3c5b39d4dce67576c5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7987', 'title': 'Fix find_in_batches with customized primary_key on 3-2-stable'}, {'body': 'This patch fixes issue rails/rails#7951 for 3.2.8. I created a blank app and can confirm that this change restores the desired behavior to `rake db:structure:load`.

(Sorry for the messed up pull request earlier)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dd7b1fd9b81dd06cde1db2ee2ca905bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7986', 'title': 'Fix behavior of `rake db:structure:load` for 3.2.8'}, {'body': 'This patch fixes issue rails/rails#7951 for 3.2.8. I created a blank app and can confirm that this change restores the desired behavior to `rake db:structure:load`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dd7b1fd9b81dd06cde1db2ee2ca905bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7985', 'title': 'Fix behavior of `rake db:structure:load` for 3.2.8'}, {'body': "An unsaved parent that `has_many` children shouldn't say that its children include any child with a `nil` foreign key:

child = Child.create(parent_id: nil)
Parent.new.children.include?(child) # => false

Adds a test and fixes it by backporting 4bc2ae0da1dd812aee759f6d13ad428354cd0e13.

See #7950 for the original issue, and #7959 for an attempted fix (before I realised it was already fixed on master) and discussion of backporting.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/46caf38e6cbc74005d6c643fd9186ef7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7983', 'title': 'Backport 4bc2ae0 to fix #7950'}, {'body': 'This depends on https://github.com/lautis/uglifier/pull/37', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7982', 'title': 'uglifier compressor will be set by uglifier gem'}, {'body': 'Alright @rafaelfranca, got another thing.

It seems to work pretty good if the Sprockets Railtie just defines its own `config.assets` as an options set.

https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/railtie.rb#L48-55', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7981', 'title': 'Move config.assets out into sprockets-rails plugin'}, {'body': 'Continuation of https://github.com/rails/rails/pull/6943', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/756daf26a0d77df3f9136534e32c7b3c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7976', 'title': "Don't HTML escape ActionMailer plaintext templates"}, {'body': "This is clone of pull request https://github.com/rails/rails/pull/5553
During the rebasing from rails/master github close my previous pull request with very strange comment... so I just copy/paste explanation from the closed pull request.


Often we need to have date selectors with different styles. (Most often different width.) Unfortunately date_select helper don't provide possibility to set different CSS classes. This commit extend date_select helper with option :css_by_type that set special classes for generated 'select' tags. Class names equal data type, for example:
f.date_select :birthday, :css_by_type => true
generate:
```


```
Hope it will by helpfully.
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a3ab353191f97f7a782e5d64fc3bda3c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7975', 'title': 'Extend date_select helper functionality.'}, {'body': 'Change made in the generation of tabs.

Now to generate can be done:

#### language en:

rake guides:generate # he will recognize the language en
rake guides:generate GUIDES_LANGUAGE=en # so this being declared the language

#### language pt_br:

rake guides:generate GUIDES_LANGUAGE=pt_br

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/38a5304eddfa2ff08657a3c3f64067d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7974', 'title': 'Update Doc Guides'}, {'body': 'A recent commit to edge Rails rails/rails@1fab518
correctly considers marked for destruction associations as blank, but
incorrectly adds a duplicate error for blank has_one and belongs_to associations.

This pull request fixes this.

Example:
Boy.validates_presence_of(:face)
b = Boy.new
b.errors.full_messages

["Face can\'t be blank", "Face can\'t be blank"]

Fumbled the git squash so opened a second pull request.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a696c1ee9fbddd70b58f0603317e31b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7972', 'title': 'Fix bug with presence validation of associations.'}, {'body': "After calling `replace` all calls to `key?` return false.

```ruby
hash = HashWithIndifferentAccess.new(a: 42)
hash.key?('a') #=> true
hash.replace(b: 12) #=> {b: 12}
hash.key?('b') #=> false
hash.key?(:b) #=> false
```

This branch adds a simple implementation of replace so key? will work.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/82787f3fcc9e392fa214f5ac4ea4a3d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7971', 'title': 'Implement HashWithIndifferentAccess#replace so key? works correctly.'}, {'body': 'A recent commit to edge Rails https://github.com/rails/rails/commit/1fab518c6a75dac5773654646eb724a59741bc13
correctly considers marked for destruction associations as blank, but
incorrectly adds a duplicate error for blank has_one and belongs_to associations.

This pull request fixes this.

Example:
Boy.validates_presence_of(:face)
b = Boy.new
b.errors.full_messages

["Face can\'t be blank", "Face can\'t be blank"]

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a696c1ee9fbddd70b58f0603317e31b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7970', 'title': 'Fix duplicate validates_presence_of errors'}, {'body': 'While writing isolated unit-tests I noticed that `active_model/validations` does not require the necessary files to run.

```shell
ruby -I activemodel/lib -I activesupport/lib -e "require \'active_support/all\'; require \'active_model/validations\'"
```

results in

```
/rails/activemodel/lib/active_model/validations/acceptance.rb:5:in `\': uninitialized constant ActiveModel::Validations::EachValidator (NameError)
```

I added the necessary require statement to get everything working.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7969', 'title': 'active_model/validations requires necessary files to run'}, {'body': 'This has been bugging me forever.

I have a few packaged asset gems that have other loose files under their load path like README.mds. Those get copied over and digested to `public/assets`. This happens more often with bower packages.

The other thing is that these libraries have many optional parts. You don\'t always want all the images and other stuff copied over unless you say so.

I\'m suggesting that we only auto compile "loose" files under `app/asset` paths. This would include railtie gems. So if you do `app/assets` in your gem, those are auto included. `lib/assets` and `vendor/assets` are by hand. I think that this models Rails\' default autoloading strategy of `app/` is autoloaded and autorequired, while `lib/` and `vendor/` have to be explicit.

Depends on #7964 being merged first.

/cc @dhh
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7968', 'title': 'Only compile non-js/css under app/assets by default'}, {'body': 'Hi,

Just a little pull request thanks to @jeremy, just a little fix to ensure users can load the debugger gem if they have a version which allows him to load it.

Have a nice day.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7967', 'title': "Add an if statement to not raise an exception when the user can't use the debugger gem"}, {'body': "I've got railties passing under [my sprockets-rails](https://github.com/josh/sprockets-rails) variant, not without some changes in behavior.

I've started outlining intentional changes in [the README](https://github.com/josh/sprockets-rails/blob/master/README.md). Any other behavior changes are probably an oversight on my part.

I think the idea is I'd move my branch over to `rails/sprocket-rails` when this is approved.

/cc @dhh @jeremy @rafaelfranca @guilleiguaran
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7964', 'title': 'Switch to new sprockets-rails plugin'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7963', 'title': 'redcarpet gem will not work with JRuby!'}, {'body': 'Currently, the mysql adapters use blob types for all `binary` columns. Blobs require extra care when used as keys in indexes, and have some performance caveats [1].

This change uses `varbinary` for `binary` columns that specify a `limit` <= 255 bytes. The test changes indirectly verify the code, as the `add_index` statement fails if the `tiny_blob` column uses a blob type. I can add a direct test if that is desirable.

Thank you for considering this pull request!


[1] http://dev.mysql.com/doc/refman/5.5/en/blob.html ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d7b97642d7aeaf1011ec19e5779144e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7960', 'title': 'Use the MySQL varbinary type when appropriate in migrations'}, {'body': 'Fixes incorrect behaviour of `#include?` on `has_many` associations for unsaved records. See issue #7950 for code examples and a discussion of the bug.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/46caf38e6cbc74005d6c643fd9186ef7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7959', 'title': 'Fixes #7950: Has many include for new records'}, {'body': 'I originally contributed these aliases 10 months ago and just never got it added to the Rails 4.0 release notes. Here they are.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fa4b5f21ddfec459b530bfce99079e54?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7958', 'title': 'Adding reference a few Time and Date aliases in Rails 4.0 release notes'}, {'body': 'This one\'s pretty straight forward.

``` ruby
javascript_path "foo.js?body=1"

# common font-face icon hack
font_path "octicons.eot#iefix"
```

/cc @rafaelfranca', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7956', 'title': 'Ignore asset url query string or anchor when generating path'}, {'body': 'Trying to fix an "issue" where an unnoticed typo in the type parameter
of a migration could lead to data loss.

Using this example :

class PeopleWriteBuggyMigrations < ActiveRecord::Migration
def self.up
add_column "people", "type_typos", :bool
end

def self.down
remove_column "people", "type_typos"
end
end

This migration will run fine and without warning(s), but if you try to
remove this column later, active record would fail :
- SQLite cannot directly drop a column, so a temp table is used.
- AR then tries to create a temp table with the same structure.
- the #simplified_type method of the Column class is called at some point
- since the type doesn\'t exists it returns nil
- migration fails in a very ugly fashion.
- user has to fix it manually (dangerous and time comsuming) but will
be tempted to fix the faulty migration, drop the db and migrate
again.

This commit add tests for this issue and runs rake test_sqlite3 without error.


This is my first rails pull request, so i hope althought i read the guidelines i didn\'t make too big mistakes. I would really enjoy getting comments on this PR.

Thanks lovely community.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4575f8149445a00cb7e7711a6539cb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7954', 'title': 'Adds an :unknown column type.'}, {'body': 'Since SanitizeHelper includes ActiveSupport::Concern,
extending of it ClassMethods is no needed.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/afbeac88d096ee5a31793d64d157b556?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7953', 'title': 'Removed useless "extend SanitizeHelper::ClassMethods"'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ecd20118eccc74fbe790e75a923de7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7952', 'title': 'Minor cleanup, helper method was only used once'}, {'body': '`ENV[\'RAILS_ENV\']` is not defined unless explicitly specified on the
command line when running `rake db:structure:load`. This patch lets
the rake task retrieve the environment from `Rails.env` which defaults
to "development".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dd7b1fd9b81dd06cde1db2ee2ca905bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7951', 'title': "Use `Rails.env` instead of `ENV['RAILS_ENV']`"}, {'body': 'get scope_value only one time dependig on reflection', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7947', 'title': 'refactoring of uniqueness validate_each'}, {'body': 'get scope_value only one time dependig on reflection', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7946', 'title': 'refactor of validates_each of uniqueness'}, {'body': 'Now you can do things like this:
respond_with @authors, include: [books: { order: "price ASC", limit: 5, where: ["price < ?", 5] }]
or just
@authors.to_xml(include: [books: { order: "price ASC", limit: 5, where: ["price < ?", 5] }])', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/66bb6f8eee55156c9afbc62d178eb342?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7945', 'title': 'Query methods allowed for include option for collections.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/144314100b686db946ff68c7ae1065d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7943', 'title': "remove 'then' from conditional statement"}, {'body': 'Before this commit when saving or creating a model with an inet or cidr attribute I got the error:

```ruby
NoMethodError: undefined method `includes?\' for ["inet", "cidr"]:Array
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/df4ca44714f099ef998e8821615e0085?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7942', 'title': 'Fix typo in inet and cidr saving'}, {'body': 'Hello,

Just a little pull request that use 1.9 Hash syntax for railties. I have not made these changes to the test directory. Do I should ? If I should edit something else, please let me know.

By the way, all the tests are green.

Have a nice day.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7941', 'title': 'Use 1.9 Hash syntax in railties'}, {'body': 'See issue #7914 and pull request 7937 for more info.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a812dec16b0581384b02c590c8a29d97?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7940', 'title': 'Backport fix of issue #7914 to 3-2-stable'}, {'body': 'See issue #7914 and pull request 7937 for more info.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a812dec16b0581384b02c590c8a29d97?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7939', 'title': 'Backport fix of issue #7914 to 3-2-stable'}, {'body': 'Please, read issue #7914 for details about the bug, and commit messages for details about the fix and changes.

Let me know what branches you want me to backport the changes to.

Thanks,

Arturo', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a812dec16b0581384b02c590c8a29d97?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7937', 'title': "Fixes issue #7914 - PostgreSQL adapter doesn't fetch column defaults when using multiple schemas and domains"}, {'body': 'Please, read issue #7914 for details about the bug, and commit messages for details about the fix and changes.

Let me know what branches you want me to backport the changes to.

Thanks,

Arturo', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a812dec16b0581384b02c590c8a29d97?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7936', 'title': "Fixes issue #7914 - PostgreSQL adapter doesn't fetch column defaults when using multiple schemas and domains"}, {'body': 'This is very minor, but I will not be able to sleep tonight unless this is merged :neckbeard: :zzz:

Cheers,
Lee :beers:', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8058c2c00149cbe4104ddc9fa814443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7935', 'title': 'Clean up Gemfile entry (replace double quotes with single quotes)'}, {'body': 'This patch allow only valid params to be send to PGconn to avoid exceptions in case other params are typed in database.yml (Sometime required by customs adapter based on Postgresql-adapter. e.q postgis-adapter)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e3f2c4402c93ec006f9c5218a4c7bab2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7934', 'title': 'ActiveRecord::ConnectionHandling.postgresql_connection : White list params instead of black listing.'}, {'body': 'fixes #7931
bonus thing - added default RAILS_VERSION in install.rb. Annoyed with typing it every time :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7933', 'title': 'Not sanitize src attr'}, {'body': 'This patch prevents `javascript_include_tag` from sanitizing the url to the script.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7932', 'title': 'javascript_include_tag does no longer sanitize the script url'}, {'body': 'Assuming that config.queue will be a class


Fails => https://travis-ci.org/#!/rails/rails/jobs/2770868/L618', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7930', 'title': 'Build fix for queue changes.'}, {'body': "Follow up #7923. Theres a couple things happening here.

**asset_path, asset_url**

Originally inspired the [current sprockets rails plugin](https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/rails/helpers/rails_helper.rb#L55-60), bd38d9f2118b1005718f8db4292b21a73879409e adds general purpose `asset_path` and `asset_url` helpers. All the other helpers simply funnel through this main point. Makes it possible for extensions to change the behavior of all the helpers w/o redefining each.

**Remove AssetPaths**

There doesn't not a whole lot of documentation indicating that this class was ever okay to use publicly. And theres no tests asserting it either. Just :fire:ing it.

The core of it is replaced by inline helper methods, `compute_asset_path` and `compute_asset_host`. Both these methods should now be considered public. Apps or plugins can call them directly or override them to change there behavior.

**Isolate old asset id code**

I've move all the old asset id mtime query stuff into a separate module, `AssetIdHelper`. It uses the now `compute_asset_path` to set itself up.

Since this is now modular, it wouldn't be a bad time to kill it or move it out into an optional plugin. I'd like to get @dhh's take on this.

* :fire: it
* extract it into a plugin
* or just leave it as is

**Bonus**

You should be able to include `ActionView::Helpers::AssetUrlHelper` into `AC::Base` just fine now.

/cc @dhh @steveklabnik @guilleiguaran @rafaelfranca
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7927', 'title': 'Refactor AssetUrlHelper'}, {'body': 'while browsing the source I noticed that the file `query_methods.rb` is littered. To prevent a polluted diff, when this file will be changed in the future.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7926', 'title': 'trailling whitespace cleanup in query_methods.rb'}, {'body': 'Backported from master, per #7859

If you create a new record via a collection association proxy that has
not loaded its target, and which selects additional attributes through
the association, then when the proxy loads its target, it will
inadvertently trigger a deprecation notice during attribute writing when
CollectionAssociation#merge_target_lists attempts to do its thing, since
the newly loaded records will possess attributes the created record does
not.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7925', 'title': 'Fix has_many assocation w/select load after create'}, {'body': '`AssetTagHelper` mixes up helpers that generate html content tags and pure url generation.

The url helpers, `image_path`, `javascript_path`, etc are useful outside the view. You should be able to generate a javascript url from a controller, just as you can call any route helper method.

Sprockets would like to just be able to mix in the url generators into its rendering context w/o any of the tag helper stuff.


I have a few more pull requests to follow this.

I really think we need to revert and remove all the `AssetPaths` tag stuff that was added 3. Its difficult to safely have any plugin hook in or be able to call any of the private helpers in the class.

Compare this mess
https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/rails/helpers/rails_helper.rb#L118-174

to just having one `compute_asset_path` method that plugins can override
https://github.com/josh/sprockets-rails/blob/master/lib/sprockets/rails/helper.rb#L42-50


/cc @dhh @guilleiguaran
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7923', 'title': 'Split asset url helpers into seperate AssetUrlHelper'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7919', 'title': 'warning removed: shadowing outer local variable - value'}, {'body': "When calling an undefined ivar, it returns nil by default, however it does not create the ivar, thus there shouldn't be a performance penalty by this change, however it does improve readability imo.

``` Ruby
if defined?(@expires_in) && defined?(@created_at) && @expires_in && @created_at
```

vs.

``` Ruby
if @expires_in && @created_at`
```
What do you think?

Ran `activesupport/test/caching_test.rb`", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ecd20118eccc74fbe790e75a923de7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7918', 'title': 'Undefined ivars return nil by default'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fc200afe9f522273b095f4ed4129f806?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7917', 'title': 'Cosmetic changes: remove trailing whitespaces from tests'}, {'body': 'bdd105d changes the behaviour of AC::Parameters#permit.

/cc @spastorino', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7915', 'title': 'update AC::Parameters#permit documentation [ci skip]'}, {'body': "Sending dalli an expires_in integer that matches the Entry instance's expires_at will invalidate the cached value in Memcache at the same time the Entry is expired. This breaks the ability for Cache#fetch to determine if the :race_condition_ttl has occurred since the value will never make it back from Memcached.
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2c17b677625ca6499a2d9ea2ca724873?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7913', 'title': "MemCacheStore's move to dalli as a backend broke :race_condition_ttl support"}, {'body': 'Per the [PR](https://github.com/rails/cache_digests/pull/6) in ```cache_digests```.

I have a view template structure in my Rails app that goes several directories deep.

To support that with cache_digests, this patch alters the #directory method in ActionView::Digestor to pop the template name off the end of the path and return the full view directory structure instead of taking just the first directory.

This was accepted into ```cache_digests``` gem, and is replicated here for rails per @dhh request.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b026b250773e2e4b35001bef3ac94ddc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7912', 'title': 'CacheDigests: Support templates in directories several levels deep'}, {'body': "as it's removed here
1fc795468525d8622cdca474a54c8310a514aa46", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7908', 'title': 'No need to test for rack-cache present in gem file'}, {'body': 'This backports #7161 and #7904.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a82409021ddf415a8027872b889c5f74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7905', 'title': 'Backport eager autoloading fixes'}, {'body': 'Without eager autoloading, these would be autoloaded only when #preloader_for\nis called, which is too late in threaded applications.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a82409021ddf415a8027872b889c5f74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7904', 'title': 'Eager autoload Preloader classes'}, {'body': 'Regression from e3a746b6fc4a67986c0510dfe50ca064d90d5f37

/cc @dhh @bdurand ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7902', 'title': 'Fix AS::Cache version upgrading bug'}, {'body': 'Fixes #7894 and #7896', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b8dc4b76792ff3c8cd993aa4c9c467f6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7901', 'title': 'Fixes #7894 and #7896'}, {'body': 'The time is up on the old asset concat concatenation path. Stock asset helpers just link to public. Simple. Plugins add concatenation concerns.

/cc @dhh @guilleiguaran', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7900', 'title': 'Remove old asset tag concatenation'}, {'body': 'A few months ago, `AbstractController::Callbacks` were included in `ActionMailer::Base`. This commit cleans it up by including relevant changelog entries and updating the Rails 4.0 Release Notes.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4ba063457702c78a7fce6a3529aedb0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7899', 'title': 'Add missing CHANGELOG relating to addition of callbacks to mailers'}, {'body': 'Noticed that when running `rails new appname -d postgresql` the generated `database.yml` still starts with the following:

```ruby
# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
# gem install pg
# On Mac OS X with macports:
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
# gem install pg
# Choose the win32 build.
# Install PostgreSQL and put its /bin directory on your path.
```

Added instruction for the widely used Homebrew and clarified:

```ruby
# On OS X with Homebrew:
# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
# On OS X with MacPorts:
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e77509d7891c1d2230f3240a5652b6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7898', 'title': 'Offer instructions for pg gem when installed via Homebrew'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7897', 'title': 'warning fixed: ambiguous first argument; put parentheses or even spaces'}, {'body': "Guess it's typo in Rails Guides", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dd266ab929743549916f88ad2fee5954?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7895', 'title': 'fix typo in "The Rails Initialization Process"'}, {'body': "Developers from all levels will accidentally run rake tasks using the `rails` keyword when they meant to use `rake`. Often times beginners struggle with the difference between the tools. The most common example would be `$ rails db:migrate`

Rather than telling the developer simply that they did not use a valid rails command, we can see if it was a valid rake command first. If it is a valid rake command we can auto execute it giving the user a period of time to cancel if that isn't what they intended.

Here is what `rake db:migrate` would look like if you cancel the command:


```sh
$ rails db:migrate
Assuming you meant: $ rake db:migrate
press any key to cancel in 3 seconds
>
command terminated ...
```

Here is what it looks like if you don't cancel the command:

```sh
$ rails db:migrate
Assuming you meant: $ rake db:migrate
press any key to cancel in 3 seconds
>
Running: $ rake db:migrate
== Foo: migrating ============================================================
== Foo: migrated (0.0000s) ===================================================
```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7891', 'title': 'Prompt to run rake when accidentally typed rails'}, {'body': "This is a pull request for changes of comments on a base.rb file in actionpack to the new hash syntax.
Being a major code reference, I would assume the overall code base should be changed to use the 1.9 format, however not sure if this is the view of the core committers.

I'm sending this as a PR rather than using docrails to discuss that. The only existing discussion I could find is:
http://grokbase.com/t/gg/rubyonrails-core/129cp75kv2/rails-core-rails-guides-use-new-hash-syntax

If this is accepted, I can continue the progress of such migration", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/902db368dfae6f8d557087c568285404?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7890', 'title': 'Moving to new hash syntax'}, {'body': '```ruby
mixed_options_for_select([["Pop"], ["Rock", [["Alternative Rock"], ["Hard Rock"]]], ["Country"]])
```

```html






```

Currently not possible.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/341131caf7911c0047602e3b9c272b62?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7889', 'title': "Add 'mixed_options_for_select' helper to generate combined bare option and optgroup tags from nested array"}, {'body': 'according Best Practices for Speeding Up Your Web Site

http://developer.yahoo.com/performance/rules.html
javascripts should be placed at the bottom

and recommend write javascripts this way

``` rhtml
Your view content here
<%= content_for(:scripts) do %>

<% end %>
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/19e786a2a74377ff6e052d87fd8d1fa8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7888', 'title': 'javascripts tags should be placed at the bottom by default'}, {'body': 'While scanning a few AR test cases I noticed a duplicated `require` statement for a model. I then did a search to reveal the duplicated requires (I found a couple other ones).

This PR removes the unused (duplicated) require statements.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7887', 'title': 'remove duplicated require statements in AR test cases'}, {'body': 'This is a fix for #3675.

I also refactored the `ActionView::TestCase` internals, so that a separate object keeps track of rendered views and their locals. The internal instance variable `@locals` does no longer exist.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7886', 'title': 'assert_template works when the same partial was rendered multiple times'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7885', 'title': 'Add missing entry in CHANGELOG about config.assets.cache change'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7883', 'title': 'Minor refactors in assets test'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7881', 'title': "Rails.config doesn't exist, it should be Rails.application.config instead"}, {'body': 'This improves security by complying with OWASP recommendations: https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule-Use.22Secure.22_Cookie_Flag

If administrators enable config.force_ssl this code automatically tells clients to only send cookies over SSL. If config.force_ssl is not set there will be no effect.

The problem this solves is that when you force SSL to be true you might forget to set your cookies to HTTPS only. If you forget to do this then your cookies are vulnerable when your users are on a unsafe connection, for example public wifi. This attack happens in the wild with Firesheep (http://codebutler.com/firesheep/). You can read more about this attack at http://en.wikipedia.org/wiki/HTTP_cookie#Cookie_theft_and_session_hijacking

Of course some people will remember and configure the cookie correctly to prevent this attack. However I feel it is important to be secure by default. Default in this case means when a user forces SSL, if that is not set this PR will not change anything.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/64fa0c156c8c444cbbe09593baea6e3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7879', 'title': 'Use secure default values for the session store.'}, {'body': 'As discussed on the [rubyonrails-core mailing list](https://groups.google.com/forum/#!topic/rubyonrails-core/pwQSx3rpVow), this request changes the default test locations as follows:

test/units -> test/models
test/units/helpers -> test/helpers
test/functional -> test/controllers
test/functional -> test/mailers
test/integration -> test/acceptance

The existing rake tasks are backwards compatible, and will run tests in the old and new locations. New rake tasks were added that only runs the tests in the new locations. The new tasks are `test:models`, `test:helpers`, `test:controllers`, `test:mailers`, and `test:acceptance`.

attn: @spastorino and @tenderlove', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cd8da976054ea4915eafc5d9dd096d38?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7878', 'title': 'Update test names and locations'}, {'body': 'The sentence used to read "at the bottom of the the compiled file"', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4dea5cf83d2d6c1228750b76e579b38d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7877', 'title': "Remove duplicate 'the' article in commented line"}, {'body': "this method was not used, not documented and not tested.

While I was looking through the code to implement #6984 I found that this method seems to have lost it's purpose. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7875', 'title': 'remove unused `expand_range_bind_variables` method'}, {'body': "Assuming a native Ruby class named `Foo` which includes only the following module `ActiveModel::Serializers::Xml`. If we call `#to_xml` on an instance of `Foo` we would get the following exception `NoMethodError (undefined method 'model_name'...`

One way to solve this issue would be to also make sure `Foo` also extend `ActiveModel::Naming`. Another way, which appear to be more robust, and more importantly, consistent with the rest of the codebase (i.e. already used in `ActiveModel::Serializers::JSON`) would be extend `ActiveModel::Naming` the moment `ActiveModel::Serializers::Xml` is included. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/057046472b73276280262cdcec365e60?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7874', 'title': 'ActiveModel::Serializers::Xml should extend ActiveModel::Naming'}, {'body': 'As requested by @dhh.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7873', 'title': 'Moving locale stuff from app.rb to an initializer.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7872', 'title': 'Should use app.paths instead of specific path.'}, {'body': 'Similar to commit 55ceced1 which added support for .css .scss and .js, this commit adds .rake files to the list of files scanned by the `rake notes` and `rake notes:custom` tasks. These tasks will now pick up FIXME and TODO in lib/tasks/*.rake custom rake tasks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3fcbfe3f302f14aa25df67a2c2af8d1d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7871', 'title': 'Support another file type .rake in `rake notes`'}, {'body': 'Added this comment to all the database-specific versions of database.yml, as suggested at
https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-core/7HB0wdRzfVE

```ruby
# Security Concern: Although it is very convenient to commit database.yml to source control and deploy
# it with the rest of the app, if you ever open-source your project then your database passwords
# will be open as well. Adding config/database.yml to your .gitignore file keep it from being in
# your deployed repository but will require you to SCP it to your server.
#
# See for more info.
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d961e9895a2e42e88024a7d9358770ab?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7870', 'title': 'Suggested comment in database.yml about adding to .gitignore'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/70c77c026a5027962949bf4d2a47a24f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7869', 'title': 'Update actionmailer with new hash syntax.'}, {'body': "Sometimes you don't want cache to all user.
you can
```
<%cache_if session[:user_id].blank?,'xxx' do%>
something..
<%end%>
```
or
```
<%cache_unless current_user.admin?, 'xxx' do%>
something..
<%end%>
```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e59879f3561b96c17c149da0ce62fd58?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7868', 'title': 'Add cache_if and cache_unless two methods to skip fragment cache.'}, {'body': 'I\'d like to add a test, but I\'m a bit lost on where it\'d belong within all those tests :-/
So if somebody can tell me where to add it, I\'ll gladly amend this pull request with a matching test.

For now, an example to reproduce the problem:

ActiveRecord::Migration.create_table :foos do |t| t.string :demo end
class Foo < ActiveRecord::Base; attr_accessible :demo; end
demo = "foo".force_encoding(\'binary\')
p before: demo.encoding # => binary
Foo.create(demo: demo)
p after: demo.encoding # => utf-8

# worse, it crashes on frozen strings:
Foo.create(demo: "demo".force_encoding(\'binary\').freeze)
#!> ActiveRecord::StatementInvalid: RuntimeError: can\'t modify frozen String: INSERT INTO "foos" ("demo") VALUES (?)
#!> from /\u2026/gems/ruby-1.9.3-p194/gems/activerecord-3.2.8/lib/active_record/connection_adapters/sqlite_adapter.rb:208:in `encode!\'

A method should never mutate its arguments.
In this specific case, after reading the code, I also think it\'d be even better to raise an exception right away, stating the two options (provide a utf-8 string or use a binary type column). A warning in the log like this is IMO mostly useless.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/33e47178a56073c9b4bff0d2b9b3cb70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7867', 'title': 'The SQLite3 Adapter mutates arguments'}, {'body': "Please see the Rails 4 pull request on sprockets-rails for more information: https://github.com/rails/sprockets-rails/pull/21

This is a backport of the work for Rails 3.2. Please note that a new version of sprockets will need to be released with this commit: https://github.com/ndbroadbent/sprockets/commit/82cc1de7e2164c8e96052c612179bb397ccd9a39 (from my [rails3_assets_speedup](https://github.com/ndbroadbent/sprockets/tree/rails3_assets_speedup) branch)

These changes have already been released as a gem called [turbo-sprockets-rails3](https://github.com/ndbroadbent/turbo-sprockets-rails3), and it's working well for many applications.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4931eceec58528529fd004e56af197c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7866', 'title': 'Detect asset changes by saving source_digests in manifest.yml, and speed up non-digest assets'}, {'body': 'This is a backport of pull request #7864', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d856d2ac977eebd19b55bc4cbd7cf9a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7865', 'title': 'Accept :remote as symbol in link_to options (backport)'}, {'body': "The documentation for `UrlHelper#link_to` describes a :remote option, which can be set in either the `html_options` or `(url_)options` hashes. But the option is checked as a stringified key ('remote'), and only the `html_options` hash is stringified before this check takes place, so that :remote is ignored if passed in the other hash as a symbol.

This problem exists on 3.2-stable, but an additional issue exists on master: Master passes the options hash to `UrlHelper#url_for` before consuming and deleting the :remote option. As a result, both the string and symbol forms are used for url-generation before they are used to set the data-remote attribute. This patch also addresses this issue.

I pushed a 3-2 backport to `link_to_remote_3_2` in my repository, in case that's useful. Thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d856d2ac977eebd19b55bc4cbd7cf9a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7864', 'title': 'Accept :remote as symbol in link_to options'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7862', 'title': 'rename private method to avoid overriding'}, {'body': 'Fixes #1575.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7861', 'title': 'use Rails backtrace in tests'}, {'body': 'If you create a new record via a collection association proxy that has
not loaded its target, and which selects additional attributes through
the association, then when the proxy loads its target, it will
inadvertently trigger an ActiveModel::MissingAttributeError during
attribute writing when CollectionAssociation#merge_target_lists attempts
to do its thing, since the newly loaded records will possess attributes
the created record does not.

This error also raises a bogus/confusing deprecation warning when
accessing the association in Rails 3.2.x, so cherry-pick would be
appreciated!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7859', 'title': 'Fix has_many assocation w/select load after create'}, {'body': 'When serialising a class, specify the type of any singular associations, if necessary. Rails already correctly specifies the :type of any enumerable association (e.g. a has_many association), but made no attempt to do so for non-enumerables (e.g. a has_one association).
We must specify the :type of any polymorphic association. A has_one association to a class which uses single-table inheritance is an example of a polymorphic association.
Fixes #7471
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/75bf0b37c5c32e5d869476f18c2faea8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7857', 'title': 'Xml serialisation has one'}, {'body': 'When I was using the `activerecord-nulldb-adapter`, I got an error that `ActiveSupport::Autoload` and `ActiveSupport::Callbacks` were undefined, so I figured out that someone forgot to require them.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/376e4eb9dc6c2e33d1330262edc4f109?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7855', 'title': 'Require missing ActiveSupport files in abstract_adapter.rb'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7854', 'title': 'Fix middleware cache tests enabling rack_cache'}, {'body': 'fix Example: Rename tools/profile_requires -> tools/profile
d73f2ff
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/689b479c1d1876281e8839077e96556e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7852', 'title': 'fix Example: Rename tools/profile_requires -> tools/profile'}, {'body': '...ents/production.rb.tt

Setting config.action_mailer.raise_delivery_errors = true only raises email delivery errors if the email server is configured a certain way. You will have to consult the documentation for your particular email server. Refer to discussion at https://github.com/rails/rails/issues/7473#issuecomment-8148695', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/acfe9766803c7317f1143d919755d016?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7851', 'title': 'Clarify "config.action_mailer.raise_delivery_errors = true"'}, {'body': 'quote the table name when fetching the primary key information for a postgres table.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7850', 'title': 'postgres, quote table names when fetching the primary key (#5920)'}, {'body': 'https://github.com/rails/rails/issues/7471', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/75bf0b37c5c32e5d869476f18c2faea8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7849', 'title': 'Allow has_one associations to support STI.'}, {'body': "the documentation on #assert_template states that the :locals option is only available in view test cases:

# In a view test case, you can also assert that specific locals are passed
# to partials:

I added a warning when it's passed in an inapropriate context to prevent a NoMethodError.

I also changed the code to simply ignore the :locals option if @locals is not set. This way the users will get a warning but the tests don't fail.
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7848', 'title': "can't pass :locals to #assert_template without a view test case (#3415)"}, {'body': "This is a port of rails/strong_parameters#41 for rails/master, as per @dhh's request in the same PR. This is my first contribution to Rails so feel free to let me know if I botched the `Changelog` or something.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/06bb756d28d1b4140dbf99b900182df9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7847', 'title': 'ActionController::Parameters#permit! is recursive'}, {'body': '- Changed the comments documentation for the update_column(s) methods to add a little bit of clarity', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ab8de5e795681a8a75f4fe9d3930c174?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7846', 'title': 'Updated comments for clarity'}, {'body': 'Backport', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74a6d58513855be76092b33124bedaf1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7844', 'title': 'Allow extra arguments for Observers'}, {'body': "While playing with the pluralize for various use cases, I came across some missing cases for the uncountable array.

I can probably see there are many cases out there, I just thought I'll add the ones that are surely widely used out there.

", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/902db368dfae6f8d557087c568285404?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7840', 'title': 'Additional non countable nouns that are widely in use'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7838', 'title': 'Disable Rack::Cache by default'}, {'body': "I'm assuming Rails supports 1.9.3 because the official test box is using it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8196a8c780361e3d6e91dd987e9ce475?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7836', 'title': 'Update supported ruby versions error message in ruby_version_check.rb'}, {'body': 'This new method a syntatic sugar when you\'re chaining multiple #where clauses together.

```ruby
# Before
User.where("created_at < ?", 1.week.ago).where(state: \'active\')

# After
User.where("created_at < ?", 1.week.ago).and(state: \'active\')
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7834', 'title': 'Add `Relation#and` which is an alias of `#where`'}, {'body': "This functionality will be available from `actionpack-deprecated_caching` gem.
The gem is currently hosted at .

pd: I'm not sure about the name.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7833', 'title': 'Extract AP Page and Action caching from Rails'}, {'body': '

Currently if a Rails application uses the ActiveSupport::NumberHelper#number_to_human_size to provide a user with information like "2000.34 TB" the information is ambiguous (hence not very usefull). It is unknown whether that information means 2000.34*1000\u2074 or whether that information means 2000.34*1024\u2074. Not even if a user tries to download rails and figure out what it means, is it possible to tell. Because the Rails application (with undisclosed source code) may either call ActiveSupport::NumberHelper#number_to_human_size with or without the :prefix => :si option. The :prefix => :si option changes the exponent base but without changing the notation.

I am suggesting to change the ActiveSupport::NumberHelper#number_to_human_size so that notation goes hand in hand with the exponent base. Using binary (IEC) prefix for exponent base 1024 and SI prefix for exponent base 1000. My proposal can be seen as this pull request: rails/rails#7829

I don\'t have a strong opinion on whether or not the default is IEC or SI, as long as the notatation goes hand in hand with the exponent base, so information like "2000.34 TB" and "2000.34 TiB" is unambiguous.

Even a bit worse is that the current default behaviour (i.e. without the :prefix => :si option )is to incorrectly use SI notation for exponent base 1024, which is against international accepted standards[1].

Before you argue that IEC notation is not (yet) widespread: Remember that HTML5 is not (yet) widespread either, it is not even expected to finalise until 2014 (which probably will be delayed), but that doesn\'t imply that Rails should stay away from it.

Footnotes:
[1] http://en.wikipedia.org/wiki/Binary_prefix
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/968fba3ba6e5df2df68a458218be7104?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7829', 'title': 'Using the right notation for the right exponent base.'}, {'body': 'Making `ActiveModel::Validators#validators_on` to accept a `:kind` option which will filter out the validators on a particular attribute based on its kind.

```ruby
Person.validators_on(:name)
# => [#,
# #0..99}>]

Person.validators_on(:name, :presence)
# => [#]
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7826', 'title': 'Make `.validators_on` accept `:kind` option'}, {'body': "I've discussed with @tenderlove earlier, and it seems like it make sense to make `Rails.public_path` a Pathname, so you can call Pathname methods on it, such as `.join`. I think this is a useful addition to this method.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7825', 'title': 'Make Rails.public_path return a Pathname'}, {'body': "Currently when a counter cache column name is specified in the intermediate model of a `has_many :through` association, the `reset_counters()` method is unable to get the model where the column resides in. The resulting error is:

> NoMethodError: undefined method `counter_cache_column' for nil:NilClass

The correct model reference has to be accessed using the additional `through_reflection` object.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cf5fcf12effe4798f02aa84def25c684?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7822', 'title': 'Fix reset_counters crashing on has_many :through associations.'}, {'body': 'One of the greatest things about rails is that it is so standards-compliant,
no other framework that I have seen have complied to the
HTTP standard (think REST) in such a degree that Rails does. Kudos to
you all for that.

I think we (Rails community) should follow the line of standards
compliance and also
take it to the binary prefixes [1], i.e. kilobytes, megabytes,
etc. For more than half a decade SI units has been a standard
(occupying the prefixes kilo, mega, ...) Since the introduction of
computers the prefixes has been misused in the IT industry for powers
of 1024 but used correctly (for marketing reasons) by storage
manufacturers to mean powers of 1000.

In 1999 IEC published the new standard for powers of 1024 (known as
binary prefixes[1]). In 2008 this was harmonized with ISO standard in
ISO/IEC IEC 80000-13:2008

I think it is a good time (for Rails 4) for Rails to conform to these
standards. That means that every time a power of 1024 is used the IEC
prefixes kibi, mebi, and so on are used and vice versa. Further every
time a power of 1000 is used the SI prefixes are used, that is, kilo,
mega, and so on and vice versa.

I have created a pull request
(https://github.com/rails/rails/pull/7819) that implements two things
(in two separate commits):

1) Rename all use of 1024 to use IEC prefix names

a) Rename of core extension: 2.kilobytes => 2.kibibyte == 2*1024
b) Rename all use of these helpers within the Rails project.
c) Ensure that number the prefixes are KiB, MiB when dividing by
powers of 1024, and using KB, MB when dividing by powers of 1000
(that is when options[:prefix] => :si)

2) (Re)Introduced the posibility to use SI prefix names (meaning powers of 1000)
Introduced SI prefix helpers 2.kilobytes == 2*1000

Impact on Rails itself:
None: All the useages has been renamed to use the semantically
equivalent method (that is IEC names).

Impact on Rails projects:
The use of core extensions 2.kilobytes, 2.megabytes will mean
something else; A power of 1000 in Rails4 as opposed to a power of
1024 in Rails3. But the old behaviour can still be achieved by using
IEC names instead such as 2.kibibytes or 2.mebibytes.

Footnotes:
[1] http://en.wikipedia.org/wiki/Binary_prefix', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/968fba3ba6e5df2df68a458218be7104?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7819', 'title': 'IEC prefixes'}, {'body': "I'm not sure about deleting `conversions` file. Looking for feedback.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/144314100b686db946ff68c7ae1065d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7817', 'title': 'remove unnecessary object/conversions file'}, {'body': "test_deserializes_unloaded_classes_on_get_id(CookieStoreTest):
ArgumentError: SessionAutoloadTest::Foo does not refer class
org/jruby/RubyMarshal.java:148:in `load'", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7816', 'title': 'fixed tests with JRuby'}, {'body': 'Used the text and URL at http://guides.rubyonrails.org/i18n.html', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d7b97642d7aeaf1011ec19e5779144e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7815', 'title': 'Fix truncated line in the i18n edge guide'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7813', 'title': 'warning fixed: (...) interpreted as grouped expression'}, {'body': 'Fix tests that were falsely passing because of reversed assertion logic.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd922fce44ba22e32f8b6c44dcd3a6f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7812', 'title': 'fix broken cache tests'}, {'body': 'Fixed the build after a missed a broken test on my last PR. Sorry!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7811', 'title': 'Fix the build (Broken scaffold routes test)'}, {'body': 'Pull #7800 broke the build, this should fix it.

/cc @rafaelfranca @fxn', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7810', 'title': 'fix cache store test'}, {'body': 'This time I used ack.

/cc @fxn', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7808', 'title': 'Fix other assertions that were backwards.'}, {'body': "I have just tried to run rake within rails/activesupport (on master)

That generated

Errno::ENAMETOOLONG: File name too long - /home/jarl/projects/rails/activesupport/tmp_cache/5F0/AEA/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir'
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir'
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p'
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each'
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p'
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:205:in `each'
/home/jarl/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/fileutils.rb:205:in `mkdir_p'
/home/jarl/projects/rails/activesupport/lib/active_support/cache/file_store.rb:161:in `ensure_cache_path'
/home/jarl/projects/rails/activesupport/lib/active_support/cache/file_store.rb:90:in `write_entry'
/home/jarl/projects/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb:140:in `write_entry'
/home/jarl/projects/rails/activesupport/lib/active_support/cache.rb:368:in `block in write'
/home/jarl/projects/rails/activesupport/lib/active_support/cache.rb:525:in `instrument'
/home/jarl/projects/rails/activesupport/lib/active_support/cache.rb:366:in `write'
/home/jarl/projects/rails/activesupport/test/caching_test.rb:384:in `test_really_long_keys'

I googled a bit and discovered that ecryptfs has a much lower limitation on filename length (approximately 143 characters): http://unix.stackexchange.com/a/32834

That basically means that running a rails app on an ecryptfs will
fail in a situation where the key is rather long.

If rails is supported on ecryptfs the
`ActiveSupport::Cache::FILENAME_MAX_SIZE` must be reduced to 116", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/968fba3ba6e5df2df68a458218be7104?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7806', 'title': 'Reducing ActiveSupport::Cache::FILENAME_MAX_SIZE to 116 to support ecryptfs'}, {'body': 'Hey @fxn, you got this backwards: http://bfts.rubyforge.org/minitest/MiniTest/Assertions.html#method-i-assert', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7805', 'title': 'fix order of assertions.'}, {'body': 'This method groups a collection into arrays of a certain amount of
elements and returns an array of those groups.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6bea4182cd4dca98f1bc2f525283c27a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7803', 'title': 'Added Enumerable#group'}, {'body': 'Fixes #7799.

/cc @fxn @vijaydev ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7802', 'title': 'Fix reference to code sample in Getting Started.'}, {'body': 'This is fixed on master, but the location changed, so in 3-2-stable, we should reference the specific branch.

Fixes #7799.

/cc @fxn', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7801', 'title': 'Issue 7799'}, {'body': 'This code provides a more efficient implementation of ActiveSupport::Cache::Entry that reduces the costs of serialization.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd922fce44ba22e32f8b6c44dcd3a6f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7800', 'title': 'Optimize ActiveSupport::Cache::Entry to reduce overhead'}, {'body': "I changed the variables `@layouts`, `@partials` and `@templates` to be prefixed with an underscore. The rails tests pass but of course this could make an impact on test cases, which use these internal variables (I don't hope these kind of tests exist though ;)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7797', 'title': 'prefix TemplateAssertions ivars (#7459)'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7795', 'title': 'Fix changelog entry about sprockets-rails'}, {'body': 'This being discussed by Rails core right now, IMO this PR is a fair solution, if the user want to use rack-cache then it should be specified in Gemfile explicitly ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7794', 'title': 'Use Rack::Cache middleware only if is in Gemfile'}, {'body': "reflection init as 'if' stantment.
column is always the same expression and depends from the changing of attributes", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7791', 'title': 'small refactoring of build_relation in uniqueness'}, {'body': "reflection init as 'if' stantment.
column is always the same expression and depends from the changing of attributes", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7790', 'title': 'small refactoring of build_relation in uniquiness'}, {'body': 'this is a patch for #7777. I could not modify the shared `apply_common_behavior_for` method because the outer methods rely on the fact, that those keys are deleted. Adding the `dup` call inside `apply_common_behavior_for` resultated in 8 error when running the tests.

I added two test cases to make sure the options are not modified.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7789', 'title': 'resource and resources do no longer modify passed options'}, {'body': 'Despite the major version bump, `minitest` appears to be fully backward-compatible with 3.x versions. All 2849 `activesupport` tests pass with flying colors.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f74b13f1e5c6c69cb5d7fbaabb1e2cb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7787', 'title': 'Update minitest dependency to ~> 4.0'}, {'body': "This is a backport of commit rails/rails@8471edc6725aa905dc9f7b800438acb255b1512e (see pull request #6805) to 3.2-stable to allow testing with ActionDispatch::Http::UploadedFile since Rack::Test::UploadedFile and ActionDispatch::Http::UploadedFile don't
share the same API. For further details see mentioned pull request", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c85dc89b5ca024dfd515bb4f3ddcac95?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7786', 'title': 'Backport "Don\'t paramify ActionDispatch::Http::UploadedFile in tests"'}, {'body': 'Closes #5011', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/984959912ebf94363592e07d7ae9eaa8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7785', 'title': 'backport 68677ffb8298105eb9d3efa26d928dd88cc5e006'}, {'body': "When working on #7781 I found incorrect test names - since my previous pull request is not going to be merged, I'm creating this small one", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8085138938c34ae1af140bfc91f2fe56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7784', 'title': 'Changed test names to match proper context'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7783', 'title': "Assets cache shouldn't be shared between different environments"}, {'body': 'This pull request address the failure below.
This failure happens because Oracle adapter uses upper case attribute/column name.

```ruby
$ ARCONN=oracle ruby -Itest test/cases/dirty_test.rb
Using oracle
Run options: --seed 63746

Running tests:
F................................

Finished tests in 1.533941s, 21.5132 tests/s, 116.0410 assertions/s.

1) Failure:
test_0001_partial insert(DirtyTest) [test/cases/dirty_test.rb:557]:
Query pattern(s) /first_name/ not found.
Queries:
INSERT INTO "PEOPLE" ("CREATED_AT", "FIRST_NAME", "ID", "UPDATED_AT") VALUES (:a1, :a2, :a3, :a4)

33 tests, 178 assertions, 1 failures, 0 errors, 0 skips
$
```

This fix has been tested with sqlite3, mysql, mysql2 and postgresql adapters also.



', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7782', 'title': 'Change query pattern case insensitive'}, {'body': 'Since we can use minitest in Rails, why not to follow convention of `refute` methods?

Let me know if you like it and I can add `refute_blank` as alias for `assert_present` and `refute_present` as alias for `assert_blank` also.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8085138938c34ae1af140bfc91f2fe56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7781', 'title': 'Added refute_difference method as alias for assert_no_difference'}, {'body': "The mysql database adaptor assumes that non-null text columns behave as if the default value is an empty string. This is the default behaviour for mysql connections, but putting the connection in strict mode with `SET SQL_MODE='STRICT_ALL_TABLES'` makes like other databases, where the default value is NULL so the value must be specified.

The mysql adaptor defaults to using this strict mode, although it can be disabled with setting `strict: false` in the database configuration. However, the mysql adapter has a hack based on non-strict mode behaviour to detect an empty string default value. So even though strict mode is used, this hack is continuing non-strict mode behaviour within strict mode.

I propose just removing this hack to mimic the non-strict behaviour to make its behaviour consistent with other databases. This is what this pull request does.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6af3d9442783aa00ef1e5d7772f997d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7780', 'title': 'activerecord: Avoid mysql non-null text column defaulting to empty string'}, {'body': "I found that empty insert values were failing.

Normally this isn't noticed because default values are inserted for all the fields.

I tested with the default adaptors run during tests (mysql, mysql2, sqlite3 and postgresql). I would appreciate tests run for other supported databases.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6af3d9442783aa00ef1e5d7772f997d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7778', 'title': 'activerecord: Fix empty_insert_statement_value for mysql and sqlite.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/47e6725dce64c265920bb1fc8fa3f74c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7776', 'title': 'Add #update_columns entry to AR Changelog.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7775', 'title': 'move metal/caching_test into controller/caching_test'}, {'body': "Dynamic error pages have many benefits over static, for instance they can use the default layout if desired. By generating dynamic error pages by default we can encourage developers to take advantage of this already existing feature and build better sites. In addition to moving people towards dynamically generating their error pages we can add prompts to the default pages. One example is telling devs how to get to their logs. I have added erb to `errors/500.html.erb` that I believe will be extremely helpful to new developers.\n\nWhile walking users through a deployment (such as with http://railsgirls.com/materials) they often are not familiar with how to retrieve logs on a given system. I've added a dynamic section that will look for an environment variable `CHECK_LOG_INSTRUCTIONS` and if present show a corresponding message. I can then work with @hone to get a debug log message into the [ruby buildpack](https://github.com/heroku/heroku-buildpack-ruby) something like `$ heroku logs --tail`. While we've added a number of great error messages to Rails, helping developers find those error messages is crucial to their sustained success. This isn't just for new devs either. Experienced Rails developers who are new to a system might not know how to access its logs.\n\nBy relying on an ENV var we're not coupling the message to any one provider, and if no message is present we fall back on the default error page. It would be the responsibility of providers to set this message on a given system.\n\nMoving in this direction we should also port over `public/index.html` to a dynamic page. This change can be found in a separate PR with it's own set of benefits #7771\n\nScreenshot when running production with `CHECK_LOG_INSTRUCTIONS` set:\n\n![](http://f.cl.ly/items/2E2J3u2b1d2S3s3Y3l1V/Screen%20Shot%202012-09-27%20at%2011.00.16%20AM.png)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7772', 'title': 'Dynamic Error Pages by Default'}, {'body': 'Make it so custom fragment caching (eg: jbuilder) can leverage the cache_digests code.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d928b55d9910cba3360cda7f214cf6e3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7769', 'title': 'Move the CacheHelper#fragment_name_with_digest to be public'}, {'body': "attribute_cast_code isn't called. And when removing this method, testcases were all green.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7768', 'title': "Removing dead code. attribute_cast_code isn't called."}, {'body': 'There are the changes to the guides that correspond with [pull request #21 on sprockets-rails](https://github.com/rails/sprockets-rails/pull/21).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4931eceec58528529fd004e56af197c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7767', 'title': 'Updated guides with proposed asset pipeline changes'}, {'body': 'Added posibility work with hashes and symbols as agruments for order
When symbol or hash passed we convert it to Arel::Node, and it make requests more flexible

For example
```ruby
string_order = User.where(:name => 1).order(\'id ASC\')
string_order.to_sql # SELECT "users".* FROM "users" WHERE "users"."name" = 1 ORDER BY \'id ASC\'

symbol_order = User.where(:name => 1).order(:id) # or order(id: :asc)
symbol_order.to_sql # SELECT "users".* FROM "users" WHERE "users"."name" = 1 ORDER BY "users"."id" ASC

User.arel_table.table_alias = \'u\'

string_order.to_sql # SELECT "u".* FROM "users" "u" WHERE "u"."name" = 1 ORDER BY \'id ASC\'

symbol_order.to_sql # SELECT "u".* FROM "users" "u" WHERE "u"."name" = 1 ORDER BY "u"."id" ASC
```
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5e083b9550b21448a93a5ce4f2f5251e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7765', 'title': 'learn ActiveReccord::Querying#order work with hash arguments'}, {'body': 'After this https://github.com/seattlerb/minitest/pull/161 Aaron asked to replace capture with new version.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7763', 'title': 'Kernel#capture replaced by version which can catch output from subprocesses'}, {'body': 'Broke by d1cbcd781bdb974c4232c3d63e3d1b4d1f9c4bd5', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7762', 'title': 'Build fix for logger_test'}, {'body': '* The module is needed for the `determine_constant_from_test_name`\n method.\n* Without it, the including class is required to also include\n `ActiveSupport::Testing::ConstantLookup` or a `NoMethodError` will be\n raised upon instantiation of that class.\n* Issue introduced in c0a24555f9e2749fb94efe1967cb9943db0b6a7e', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3da9aebb918d0d1b12d66fcca93c289d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7760', 'title': 'Adds missing dependency to ActionView::TestCase::Behavior'}, {'body': 'Apologies for missing this before.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cd8da976054ea4915eafc5d9dd096d38?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7759', 'title': 'Add missing inflector dependency'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7758', 'title': 'warning removed: ambiguous first argument;'}, {'body': 'i.e. Oracle database does not support these isolation levels.\n`:read_uncommitted` `:repeatable_read`\n\nThis pull request modifies #7756 to these tests database adapter name independent.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7757', 'title': 'Skip tests for non-supported isolation levels'}, {'body': 'Since Oracle enhanced adapter supports specifying isolation levels with https://github.com/rsim/oracle-enhanced/commit/de100e9af48ba852807de0bf0ae221d91a22e9c4\n\nOracle database itself does not support `:read_uncommitted` nor `:repeatable_read`. Tess for these isolation levels should be skipped. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7756', 'title': 'Skip tests for non-supported isolation levels with Oracle'}, {'body': 'This allows to do:\n\n```ruby\nimage_tag("icon.png", :size => "16")\n# => Icon\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/144314100b686db946ff68c7ae1065d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7754', 'title': 'Feature: set the same width and height for image if size attribute is a number'}, {'body': 'The none bang method in AR::Relation to modify objects in place was missing.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6b4aa22626f1183813b502e2d1f4ea2a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7750', 'title': 'Added ActiveRecord::Relation#none! method'}, {'body': 'The Rails testing infrastructure is built on minitest, but there are some rough edges if you want to use the spec DSL. Currently its not possible to have a nested describe on a controller test.\n\n describe WidgetsController, :index do\n describe "authenticated user" do\n it "is accessible" do\n assert_response :success\n end\n end\n end\n\nThis request makes this possible by adding the ability to resolve constants from the test name. It also includes additional spec registration for mailer, helper, and integration tests. Oh, and a bunch of tests too. (All of this code was taken from minitest-rails.)\n\nFixes #7748', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cd8da976054ea4915eafc5d9dd096d38?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7749', 'title': "Improve support for minitest's spec DSL"}, {'body': 'For rails/rails#7743\n\nI made a new file for testing spec style tests based off `test_test.rb` from the same dir.\nHow does it look guys?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/67c0c5d4a82a8b28405d2fe4f581cc65?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7748', 'title': 'Fix nested describe blocks in controller tests'}, {'body': 'According to documentation you should be able to pass something like this as a collection:\n\n```ruby\n options_for_select([ "Denmark", ["USA", {:class => \'bold\'}], "Sweden" ], ["USA", "Sweden"])\n````\n\nand get this HTML\n\n```html\n \n \n \n```\n\n> copy from actionpack/lib/action_view/helpers/form_options_helper.rb line 308\n\nbut when you do it from collection_select the :value_method by default is :last\nthis commit fix it and re-enable the html option for option tag\n\ncoauthored by [fedesoria](https://github.com/fedesoria) - [ovargas27](https://github.com/ovargas27)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/433031df4018635dfb177f4066c37a3b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7747', 'title': 'Allow html options on option tag'}, {'body': "In my test I have mistake:\n```\n/Users/route/.rvm/gems/ruby-1.9.3-p194@grabber/gems/actionpack-3.2.8/lib/action_dispatch/testing/assertions/routing.rb:176:in `method_missing': undefined local variable or method `method_name' for #<#:0x007fa7931773b0> (NameError)\n```\nbecause of this.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7744', 'title': 'method_name sometimes can be unreachable'}, {'body': 'When we generate new application we have two blank lines in configuration file (application.rb) without this commit.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f94f8f42364591025aaed622d499f27?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7742', 'title': 'Deletion of an extra blank line in configuration template file'}, {'body': '- remove Palmist which is no longer available.\n- update link to Query Reviewer.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a955103782890eb2990826141b60d4ad?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7741', 'title': '[ci skip] Update Performance Testing guide.'}, {'body': "I believe when people use generators, they typically order the\nparameters on the command line in an order that makes sense\nto them. Sorting them in the generated code makes the order\nseem more arbitrary to humans, even though it's less arbitrary\nto computers. :-)\n\nExample:\n\n rails g scaffold Post title:string content:text\n\nThe human chose to put title before content. Sorted\nattributes in the generated code work but don't match the\nhuman's intent:\n\n params.require(:posts).permit(:content, :title)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/32701e4c5c6d91bbbb092077f8bdd2f8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7740', 'title': 'Removed sorting of attribute names in controller generator.'}, {'body': 'Was [used](https://github.com/rails/rails/blob/2-3-stable/actionpack/lib/action_controller/request_forgery_protection.rb#L102) in Rails 2 but [not anymore](https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/request_forgery_protection.rb#L168) -> cleanup', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/59436ecd4fe6ad7c34f67654d839f05f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7738', 'title': 'remove unused Mime::Type#verify_request?'}, {'body': '- remove unmaintained plugins/gems reference.\n- update links to point to latest urls.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a955103782890eb2990826141b60d4ad?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7737', 'title': 'Update Debugging Rails Application guide.'}, {'body': 'Guides updated due to PR #5339', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18bf599b887aeed411b29c3eaf7cf5a4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7736', 'title': 'ActiveSupport core extensions guides update'}, {'body': 'Hello,\n\nJust a little fix in the template of the application.rb file.\n\nHave a nice day.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7734', 'title': 'Little fix in application.rb template'}, {'body': "Hi,\n\nI'm proposing to extend `content_tag` so that it accepts nested array for `class` key:\n\nBefore\n======\n\n```erb\n
    \n<% @products.each_with_index do |product, i| %>\n <%- css_classes = ['product']\n css_classes << 'first' if i == 0 %>\n\n <%= content_tag :li, class: css_classes do %>\n <%= product.title %>\n <% end %>\n<% end %>\n
\n```\n\nAfter\n=====\n\n```erb\n
    \n<% @products.each_with_index do |product, i| %>\n <%= content_tag :li, class: ['product', ['first', i == 0]] %>\n <%= product.title %>\n <% end %>\n<% end %>\n
\n```\n\nWhat do you think about it?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/84188f5e909563cfa252bb739e643295?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7731', 'title': 'Add conditional css class to content_tag'}, {'body': '`root_url` is always returning a trailing slash.\nThat is actually no way to remove it.\n\nSo patched `#url_for` to remove trailing slash if present.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7729', 'title': 'ActionDispatch: remove trailing slash when root_url is called'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7728', 'title': 'Update asset test to match one in sprockets-rails'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7727', 'title': 'update Security guide with StrongParameters documentation'}, {'body': 'This is just other cases of [#7615](https://github.com/rails/rails/pull/7615)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/05f73868bd13eba39cab490c897f1333?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7726', 'title': "Remove '.rb' from require sentences"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4d6f74711436cfe252bf4fc8f3cf4971?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7724', 'title': 'Fix MIME type in CHANGELOG'}, {'body': 'Rename field_changed? to _field_changed? so that users can create a field named field\nConflicts:\n\n\tactiverecord/lib/active_record/core.rb\n\tactiverecord/test/cases/dirty_test.rb\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7723', 'title': 'Backport #3544 to 3-2-stable'}, {'body': 'Regexes expected empty tags, but got self-closing tags.\n\nTests passed after making regexes same as in corresponding tests on master branch.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7722', 'title': 'Fix 6 failing AR XML serialization tests.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7721', 'title': 'remove unnecessary entry and make minor edits to AR/CHANGELOG [ci skip]'}, {'body': ' fixes #7714', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7720', 'title': 'rename AR::Model::Tag to AR::Tag'}, {'body': '* Fixed typos from AC::StrongParameters documentation.\n* update AMo::DeprecatedMassAssignmentSecurity documentation.\n* update AMo::ForbiddenAttributesError documentation.\n* Change visibility of AMo::ForbiddenAttributesProtection#sanitize_for_mass_assignment to protected.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7719', 'title': 'Strong Parameters documentation'}, {'body': "This PR is backported to 3-2-stalbe about #7703.\n\nPlease see #6962.\n\nAS::TWZ#strftime's behavior isn't equals to Time#strftime.\nIt seems %:z and %::z format are ignored.\n\n/cc @rafaelfranca \n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7718', 'title': '[3-2-stable] Fix #6962. AS::TimeWithZone#strftime responds incorrectly to %:z and %::z format strings.'}, {'body': "This tiny PR adds one more delegated method (`close` in addition to `open`, `close`, `path`, `rewind`, `size` and `eof?`) in order to interact with the underlying tempfile. Sometimes I've needed to do and doing it through the tempfile is ugly and breaks code which works with the `IO` interface.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45742831d67c80d12cd7b24907b8d760?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7713', 'title': 'Delegate ActionDispatch::Http::UploadedFile#close to tempfile'}, {'body': "Per request of @dhh I converted ``attributes=`` in an alias for ``assign_attributes`` since all it's doing is checking for a hash, which seems needlessly defensive", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7710', 'title': 'AR::Base#attributes= is just an alias for AR::Base#assign_attributes'}, {'body': 'The old URL is not just out of date, it actually returns a 404.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/80cd41c5098fb0b56102e540f0b1c815?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7709', 'title': 'Fix Broken Link in ActiveRecord Transaction Documentation'}, {'body': 'This change adds checks to the beginning of logging methods in the default log subscribers to ensure that the log level is sufficient before continuing. Without this code, production applications with logging turned down will still execute a fair bit of code on every request to set up log messages that are then thrown away.\n\nAlso made a very minor optimization to time formatting to use string interpolation instead of formatters.\n\nFinally removed Explain queries from being logged by active record since they are not interesting for debugging purposes and only pollute the log. This can clean up development logs significantly when using a variety of third-party gems that force Explain to be run on every query.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd922fce44ba22e32f8b6c44dcd3a6f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7708', 'title': 'Optimize log subscribers to check if the log level is sufficient'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7707', 'title': 'Update changelogs to add entries about strong_parameters integration'}, {'body': "Please see #6962.\n\nAS::TWZ#strftime's behavior isn't equals to Time#strftime.\nIt seems `%:z` and `%::z` format are ignored.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7703', 'title': 'Fix #6962. AS::TimeWithZone#strftime responds incorrectly to %:z and %::z format strings.'}, {'body': 'The other commit is a nice to have during the development of sprockets-rails (while we release a final version for Rails 4)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7702', 'title': 'Remove highly uncommon `config.assets.manifest` option'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7701', 'title': 'Set AC::Parameters.permit_all_parameters explicitly to false when config.action_controller.permit_all_parameters is not present'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7697', 'title': 'Minor cleanups missed during mass assignment options removal from AR'}, {'body': "I had write a code like this:\n```\nif Rails.env=='test' || Rails.env='cucumber'\n```\nThis mistake is too easy to make. \nSo I want to lock the Rails field which is not changed in most cases.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fc2590129d5efa61a05f476c27b71698?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7696', 'title': 'add lock!/unlock! to Rails'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7694', 'title': 'Update AR docs to remove reference to mass assignment options'}, {'body': "* The params as supplied pass born in authors[0] but not authors[1] so it seems like the test isn't covering what it should be covering.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7693', 'title': 'Correct parameter access.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7692', 'title': 'update docs for strong parameters merge'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7691', 'title': 'fix shadowing outer local variable warning'}, {'body': 'See #7685.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7686', 'title': 'Add upgrading note to 3.1 release notes.'}, {'body': "Backport of applicable parts of #6441 cb6f83935, in a backwards compatible way. \n\nPreviously, ConnectionPool uses connection spec key 'wait_timeout' (default 5 seconds) to decide how long a thread can block waiting for a connection to be avail before raising. \n\nHowever, mysql2 adapter uses this same 'wait_timeout' key for an entirely different value -- setting the MySQL server's own 'wait timeout', how long the server will allow a connection to be idle before closing it. Default is several hours. \n\nExtreme differences in default shows you often do not want these two values to be the same. But if you don't want them to be default, there is no supported API to change one without changing the other to be the same, since they both use 'wait_timeout'. \n\nSo this change maeks ConnectionPool use `checkout_timeout` in the spec, prefering it over `wait_timeout`. But `wait_timeout` IS (unlike in master) still used if there without `checkout_timeout`. If you want mysql2's `wait_timeout` to be differnet than ConnectionPool's timeout, you can (and have to) set them both -- mysql2 will use the `wait_timeout`, ConnectionPool will use the `checkout_timeout`. But prior to this patch there was _no_ way to do that. \n\nThe actual code change is very straightforward. But I wasn't sure how to write the test. The test is a bit wonky, if someone has a suggestion of how to organize the test better, please do share. @rafaelfranca , any interest/feedback?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6a13e655e637138f8d571cec3f9cea76?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7684', 'title': "ConnectionPool accepts spec key 'checkout_timeout' (Backport)"}, {'body': '\nExplicitly tell users to read the guide before submitting code. re: #7677. Specify the name of the mailing list for Rails-talk to help differentiate it from Rails-core mailing list.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7681', 'title': 'Stronger wording in Contributing file'}, {'body': 'See #3782.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7680', 'title': "Remove 'assigned but unused variable' warning"}, {'body': 'I think this should be explicit as the password fields behaviour is inconsistent with other fields in this regard.\nIt had me scratching my head until I dug through the source code.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/740df61b2e28f95a1f9eceab5fce3bd1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7678', 'title': 'Add extra documentation for password_field'}, {'body': "There are a number of issues I've seen repeatedly come up in github issues I think we can fix by having them in this file. From minor issues like improper whitespace, to major ones like bug fixes and features getting abandoned because authors don't know how to properly rebase or squash. \n\nWhile we already have a large amount of contribution information no http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html it still requires a user to click through and read the guide. My experience with readme's and wiki's on github is that most users expect the readme to summarize all topics, and any additional links to expand on them. Similarly it would be beneficial to our potential contributors to have all this information available at a glance on the contribution guide.\n\nInspiration for additional information from: http://contribute.md/ and @hone\n\nFor a preview check out: https://github.com/schneems/rails/blob/schneems/contribute/CONTRIBUTING.md", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7677', 'title': 'Update Contributing Guide'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7676', 'title': 'show love to contributors'}, {'body': "In master, @pmahoney's 02b2335563 causes contention for connections in the ConnectionPool to be fair (first-waiting, first-satisfied) which is important for reasonable behavior in a high-contention short-checkout scenario. See also issue #6492 .\n\nI have been using a hacky local monkey patched backport of that patch in my rails 3.2.x app for several months now -- and it's performing admirably. My app that had so much trouble in rails 3.2.x in the sorts of scenarios the patch is designed to fix -- now runs awesomely, as expected. \n\nSo I think it's valuable to backport this to 3-2-stable. (A couple others have asked me about these issues in 3.2). Which is what this pull request is. \n\nI manually prepared the backport -- master had enough other semantic and implementation diffs from 3-2-stable that it was a bit tricky to figure out the right way to do this (and this stuff is confusing). But I think I got it right. \n\nNote one significant difference in this backport patch from master: 3-2 still tries to rescue 'leaked' connections in #checkout, if no connections are available, `clear_stale_cached_connections!` is called. This behavior is still preserved with this backport in 3-2-stable, adding the `clear_stale_cached_connections!` check in the new `acquire_connection`. (When I forgot to do this, I indeed got failing tests in 3-2-stable `test_checkout_behaviour`, which passed again when I made sure `clear_stale_cached_connections!` still happened when required). \n\nI am relatively confident I've gotten everything right, although this stuff is admittedly quite tricky. \n\n@tenderlove, @rafaelfranca or anyone else with eyes on AR, appreciate feedback and/or merge, thanks! ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6a13e655e637138f8d571cec3f9cea76?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7675', 'title': 'backport fair connection pool 02b2335563 to 3-2-stable'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7673', 'title': 'fix rdoc task for Action Mailer documentation'}, {'body': 'Previously, the `asset_path` internals only respected the `:digest`\noption, but ignored the global config setting. This meant that\n`config.digest = false` could not be used in conjunction with\n`config.compile = false` this corrects the behavior.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/88a1521be4c8a667dbb7d61e68cc0668?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7672', 'title': 'Respect `config.digest = false` for `asset_path`'}, {'body': "Noting that we don't take feature requests or 'help me' stuff on the Issues tracker should cut down a ton on bad Issues.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7671', 'title': 'Improve CONTRIBUTING'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7670', 'title': 'fix CONTRIBUTING.md markup'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7669', 'title': 'Rename .rb template handler to .ruby to avoid conflicts with mustache classes'}, {'body': 'When using shortcut routes inside an engine the "to_shorthand" variable\nis set to true, causing the module scope of the route to not be applied.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cfc0367c8a13da57a21c409e44895a4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7668', 'title': 'Removing to_shorthand to fix #6497'}, {'body': "Unfortunately, I found new warning. This code doesn't be used.\nIf removing, tests are still green.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7667', 'title': 'Remove unncessary code.'}, {'body': 'When executing rails own testcases, I found new warnings.\nI think that it introduced since 9fa3f102813eeeec440abd75870dfa7b23835665, because testcase name are duplicated.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7666', 'title': 'Fix warning: method redefine. Testcase name are duplicated.'}, {'body': 'Change array syntax in auto-generated ruby file.\nI follow the https://github.com/bbatsov/ruby-style-guide.\n"Prefer %w to the literal array syntax when you need an array of strings."', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/005a76493bea7fef27fd5cefab08ff29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7665', 'title': 'Improve syntax of schema dumps index columns.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7664', 'title': 'Fix build for Queue.'}, {'body': "It seems like apart from README and CHANGELOG, Ruby on Rails Guide are the only place that use Textile in our documentation. So, I've to convert those to Github Flavored Markdown, to make it consistent with other documentations on the site. This will make us having to write documentation only in RDoc and Markdown and also lower a barrier of entry for guide editors, as it seems like contributors nowadays will know how to use GFM more than Textile.\n\nThe generated version of the guide is currently at https://dl.dropbox.com/u/506761/output/index.html. \n\n**NOTE:** There might be some places that the style might still be broken. However, I think it have reaches the point that I want to merge this in first and follow up with the style changes, as there're so many merge conflicts that came up after I rebased it tonight. I'd still say it's ~99% done though. I also want to get it in because guides are changed so frequent, so the faster the better. :P\n\n/cc @fxn, @vijaydev for a review.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7663', 'title': 'Convert all the guides into GFM'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7662', 'title': 'improve AR/CHANGELOG [ci skip]'}, {'body': 'If assigning to a has_many :through collection against an unsaved\nobject using the collection=[] syntax, the join models\nwere not properly created, previously.\n\nThis bug is present in the current 3.2.8 release, as well.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7661', 'title': 'Fix collection= on hm:t join models when unsaved'}, {'body': "As described in #7646 when an ActiveRecord::RecordNotFound was raised rails returned a 404 to the client but logged a status code of 500.\n\nThis is a bug fix for the issue described above.\n\nThe problem was caused by the following line:\n```ruby\nstatus = ActionDispatch::ExceptionWrapper.new({}, payload[:exception]).status_code\n```\n\nSince `payload[:exception]` is an Array with two elements: the exception class and the message, the lookup in the `ActionDispatch::ExceptionWrapper` class got confused. The `ExceptionWrapper` used the following lookup machanics:\n\n```ruby\nRack::Utils.status_code(@@rescue_responses[@exception.class.name])\n```\n\nwhich resulted in a lookup for `'Array'` and eventually in a 500.\n\nTo fix the bug I did:\n\n* Added a test to `log_subscriber_test` in actionpack (I used a different exception class because `ActiveRecord::RecordNotFound` is not available but they share the same problem)\n* Change the lookup in `LogSubscriber` to use the `rescue_responses` hash directly (because I don't have an Exception instance)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7660', 'title': 'log 404 status when ActiveRecord::RecordNotFound was raised (#7646)'}, {'body': 'Pull request [#5767](https://github.com/rails/rails/pull/5767) rebased ;)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/edc49c0f3c5b5e50e7e2c8ade6d3d21b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7659', 'title': 'REBASED: fixing assert_template bug when template matches expected, but not ends with'}, {'body': "Fixes #5057.\n\nIf you have :conditions on a has_many :through, it does not\nsave the data. This patch fixes that by generating the\ncorrect SQL.\n\nThis is based on work done by @clarkgr on #5057.\n\nI don't have a test written, because I'm an AR noob, but you have to start somewhere...\n\nAll the existing tests pass.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7658', 'title': 'Save join data with has_many :through.'}, {'body': "In current implementation, it's break when executing un-explainable query.\nThese query should be ignored for explaining.\n\ncloses #7544 #6458\n\n/cc @rafaelfranca", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7657', 'title': "Don't explain except normal CRUD sql."}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d1a58c46532900ba65fd439e64527ef4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7656', 'title': 'Clarify the documentation on the Rails::Application#call method'}, {'body': 'it does what it says.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7655', 'title': 'fix the build'}, {'body': "Because Process::Status has no instance_variables, the\nActiveSupport version of #to_json produces {}, which isn't good.\n\nTherefore, we implement our own #as_json, which makes it useful\nagain.\n\nFixes #4857", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7654', 'title': 'Improve Process::Status#to_json'}, {'body': 'I found them when I was running\nwarning mode on with railties\n\nSee https://github.com/rails/rails/pull/3782', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7653', 'title': 'Few more warnings removed.'}, {'body': 'Although we set primary_key other than id, we should compute offsets by any primary_key.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/976d7ac644256c0fb198423b0c00ea52?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7652', 'title': 'Fix find_in_batches with customized primary_key'}, {'body': 'This reverts commit 533a9f84b035756eedf9fdccf0c494dc9701ba72.\n\nThis fixes #3956.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7651', 'title': 'Revert "Merge pull request #3507 from jmazzi/issue-3503"'}, {'body': "I saw some warning when executing rails own testcases.

I don't know 8b05cfa is best way ;)
Please review it !", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7650', 'title': 'Fix warning: circular require considered harmful.'}, {'body': 'This is a rebased version of #2520.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7649', 'title': 'Support for multiple etags in an If-None-Match header'}, {'body': 'related to #7544.\n\ncc/ @fxn\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7648', 'title': 'Query for loading index info should be marked as SCHEMA.'}, {'body': "* ActiveSupport::Configurable should allow config_accessor to take\n default value by block, just like `cattr_accessor`.\n\n ```\n class User\n include ActiveSupport::Configurable\n config_accessor :hair_colors do\n [:brown, :black, :blonde, :red]\n end\n end\n\n User.hair_colors # => [:brown, :black, :blonde, :red]\n ```\n\n* remove trailing whitespaces in configurable.rb and its test file.\n\nIt's an old pull request #5730, but no one implement it . I just implement it like someone suggested, change the interface to just like `cattr_accessor`.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56aebe7431dc8cfec47697da54426a21?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7645', 'title': 'Set up config_accessor with a default value by block'}, {'body': 'To make possible add synonyms extension by one function call\n\n```ruby\nActionView::Template.register_template_handler :md, :markdown, markdown_handler\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5e083b9550b21448a93a5ce4f2f5251e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7644', 'title': 'Allowing pass couple extension to one register_template_handler call'}, {'body': "It's not thread safe at all.\n\nI also removed two tests that were testing its behavior so that the suite doesn't throw deprecation warnings. I'm not 100% sure this is the right thing to do.\n\nI'm also not sure if this is a 'deprecate in 3-2-stable, remove in master' situation or a 'deprecate in master, remove in 4.1' situation.\n\nThis fixes #4060.\n\n/cc @tenderlove", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7643', 'title': 'Deprecate ActiveSupport::Benchmarkable#silence.'}, {'body': 'Add entry about 245941101b1ea00a9b1af613c20b0ee994a43946 and\n95be790ece75710f2588558a6d5f40fd09543b97.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7642', 'title': 'update CHANGELOG'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/144314100b686db946ff68c7ae1065d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7637', 'title': 'use presence method instead of checking for blank'}, {'body': "If the request format is text/html then return the existing failsafe\nresponse. For all other formats return text/plain.\n\nThe original issue points out to return JSON at the appropriate time,\nhowever as @wycats pointed out, it's often better to return text/plain.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7636', 'title': 'Fixes issue #5660: Failsafe exception returns text/html and text/plain.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7635', 'title': 'warning removed: shadowing outer local variable - message'}, {'body': 'See\n\nhttp://travis-ci.org/#!/rails/rails/jobs/2444632', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7634', 'title': 'Build fix for ActionMailer'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7633', 'title': 'fix markdown markup in AR/CHANGELOG'}, {'body': 'Back-port test coverage to preserve the health of the PostgreSQL auto-reconnection functionality.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7632', 'title': '3 2 stable'}, {'body': 'This reduces the number of allocated strings from columns * (rows + 1) to just columns. This should fix #7629.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f183bcc4176b308c9edabe79299e448f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7631', 'title': 'Freeze columns before using them as hash keys'}, {'body': 'Hash#merge accepts block that you can use to customize how hash values are merged. This change makes merge and deep_merge compatible.\n\nhttp://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-merge', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e18572ea11d449df6af82e70f012e62b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7628', 'title': 'Allow passing block to deep_merge and deep_merge!'}, {'body': 'Hi Folks,\n\nThis commits makes the legacy method ConnectionAdapter::Column#type_cast_code compatible with the fix applied to the 3.2 branch in the pull request #7509.\n\ncc @rafaelfranca @carlosantoniodasilva', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c802b68aaf738f3caa5488f964f1d560?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7623', 'title': 'update ConnectionAdapter::Column#type_cast_code to be compatible with rails 3.2 branch'}, {'body': "CollectionProxy doesn't undefine `class` and other basic methods (halleluia) since c86a32d7451 and this commit changes the doc to reflect this.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7622', 'title': 'Update documentation for CollectionProxy'}, {'body': "It's further work on CSRF after 245941101b1ea00a9b1af613c20b0ee994a43946.\n\nThe :null_session CSRF protection method provide an empty session during\nrequest processing but doesn't reset it completely (as :reset_session\ndoes).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7616', 'title': 'Implement :null_session CSRF protection method'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/144314100b686db946ff68c7ae1065d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7615', 'title': "remove '.rb' from require call"}, {'body': 'This is an updated version of #2808.\n\nIt closes #2800. Users of other SCM\'s can now generate rails\napps that will add the "empty" directories to source control,\nbut will not have a useless .gitignore or mis-named .gitkeep\nfiles.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7614', 'title': 'add --skip-ignore and --skip-keeps options to generators.'}, {'body': "Simple patch to allow delegation to class. With it, one can:\n\n class FooFeatureController < ActionController::Base\n def self.feature_name\n controller_name.sub /_feature$/, ''\n end\n # In the same way that controller_name is available from the instances too:\n delegate :feature_name, :to => :class\n end\n\n\nWithout it, one gets a relatively obscure syntax error message.\n\n rails/activesupport/lib/active_support/core_ext/module/delegation.rb:142:in `module_eval': test/core_ext/module_test.rb:37: syntax error, unexpected '.' (SyntaxError)\n class.table_name(*args, &block) ...\n ^\n test/core_ext/module_test.rb:39: syntax error, unexpected '.'\n if class.nil? ...\n ^\n test/core_ext/module_test.rb:44: syntax error, unexpected keyword_end, expecting $end\n end # end\n ^\n\nIt's already possible to use `delegate :foo, :to => 'self.class'` but that is less obvious (and also won't give the expected result with `:prefix => true`)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7613', 'title': 'Nice and easy delegation to the class'}, {'body': "see 34b23e7110a3a13cf157608cefc9b5701017bf39\n\n```ruby\n\n\n 1) Error:\ntest_assert_select_email(AssertSelectTest):\nNoMethodError: undefined method `queue' for Rails:Module\n /Users/arunagw/checkouts/rails/actionmailer/lib/action_mailer/base.rb:491:in `queue'\n /Users/arunagw/checkouts/rails/actionmailer/lib/action_mailer/base.rb:484:in `method_missing'\n /Users/arunagw/checkouts/rails/actionpack/test/controller/assert_select_test.rb:319:in `test_assert_select_email'\n\n 2) Error:\ntest_assert_select_email_multipart(AssertSelectTest):\nNoMethodError: undefined method `queue' for Rails:Module\n /Users/arunagw/checkouts/rails/actionmailer/lib/action_mailer/base.rb:491:in `queue'\n /Users/arunagw/checkouts/rails/actionmailer/lib/action_mailer/base.rb:484:in `method_missing'\n /Users/arunagw/checkouts/rails/actionpack/test/controller/assert_select_test.rb:329:in `test_assert_select_email_multipart'\n\n3949 tests, 16952 assertions, 0 failures, 2 errors, 0 skips\nrake aborted!\nCommand failed with status (1): [/Users/arunagw/.rvm/rubies/ruby-1.9.3-p194...]\n\n\n```\n\nThis PR fixes above failures.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7612', 'title': 'Fix build Rails.queue'}, {'body': 'HTML tags generated by `TagHelper#tag` always enclose their attribute values in double quotes ("). Therefore, it never makes sense to allow an unescaped double quote within an attribute value. It shouldn\'t matter if the attribute value is a `SafeBuffer` (html_safe). It shouldn\'t matter if the `escape` parameter is `false`. No matter what the caller provides as an attribute value, `#tag` should ensure the HTML it generates properly encloses that value in double quotes.\n\nThis is an example failing test:\n\n def test_not_really_safe\n assert_equal %(), tag(\'input\', :value => \'supposedly "safe"\'.html_safe)\n # generates: , and the browser will see the value as "supposedly "\n end\n\n\nCloses issue #7609 (previous pull request sent for 3.2 stable branch)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/10adb7caa4eff9c02d244172bc8db6df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7611', 'title': 'Always encode double quotes in HTML attributes values.'}, {'body': '1. Unused variable\n2. possibly useless use of a variable in \nvoid context', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7610', 'title': 'warning removed.'}, {'body': '[close #6217] If a generator has an error we should display that error rather than swallowing it while allowing other generator sot be listed. This is useful while developing a generator.\n\nATP Railties', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7606', 'title': 'Warn when generator cannot load'}, {'body': 'I\'ve added additional comments on how to use the "type" column without STI by overriding it in your ActiveRecord Model.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bc5fbb4a793359c2c527e37edfa470a2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7605', 'title': 'How to use the "type" column without STI'}, {'body': "Related to #7572.\n\ncc/ @rafaelfranca\n\nUpdated:\nIf we don't merge this, we should add a changelog entry about #7572 to master.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7603', 'title': "Backported #7572 to 3-2-stable. Use config['encoding'], because database configuration use not charset but encoding."}, {'body': "As a result of different commits, ConnectionPool had become\nof two minds about exceptions, sometimes using PoolFullError\nand sometimes using ConnectionTimeoutError. In fact, it was\nusing ConnectionTimeoutError internally, but then recueing\nand re-raising as a PoolFullError.\n\nThere's no reason for this bifurcation, standardize on\nConnectionTimeoutError, which is the rails2 name and still\naccurately describes semantics at this point.\n\nHistory\n\nIn Rails2, ConnectionPool raises a ConnectionTimeoutError if\nit can't get a connection within timeout.\n\nOriginally in master/rails3, @tenderlove had planned on removing\nwait/blocking in connectionpool entirely, at that point he changed\nexception to PoolFullError.\n\nBut then later wait/blocking came back, but exception remained\nPoolFullError.\n\nThen in 02b233556377 pmahoney introduced fair waiting logic, and\nbrought back ConnectionTimeoutError, introducing the weird bifurcation.\n\nConnectionTimeoutError accurately describes semantics as of this\npoint, and is backwards compat with rails2, there's no reason\nfor PoolFullError to be introduced, and no reason for two\ndifferent exception types to be used internally, no reason\nto rescue one and re-raise as another. Unify!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6a13e655e637138f8d571cec3f9cea76?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7601', 'title': 'ConnectionPool, unify exceptions, ConnectionTimeoutError'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7595', 'title': 'Add missing entry in CHANGELOG about change of AD::Session::MemCacheStore'}, {'body': 'This handler simply allows arbitrary Ruby code as a template', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7594', 'title': 'Add .rb template handler'}, {'body': 'The RFC indicates that username and passwords may be encoded.\nhttp://tools.ietf.org/html/rfc2396#section-3.2.2\n\nFound this trying to use the mysql://username:password@host:port/db and having special characters in the password which needed to be URI encoded.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bc2e1413f8d7bff1e86db59f47db09c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7593', 'title': 'Decode attributes pulled from URI.parse'}, {'body': 'This reverts commit ca80067bbe4662c60b933188ad3769605742e812.\nEntry already added in 895233', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7592', 'title': 'Revert "Changelog entry for PR #7560"'}, {'body': 'cc @josevalim', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7591', 'title': 'Changelog entry for PR #7560'}, {'body': 'Current realization refactored because there\'s no sense to capture output in quiet block.\n\nI added commented block in code with my thoughts about this. Since rake task should be always invoked successfully we can check exit status and show to user original error instead of showing "Probably you didn\'t install JavaScript runtime". I\'d like to use capture(:stderr) but it\'s not impossible because it doesn\'t reopen $std{out,err} and just reassigns it, that does impossible to capture subprocesses.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7586', 'title': "Rake assets:precompile shouldn't fail quietly."}, {'body': 'This pull request is the squashed version of #7509.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c802b68aaf738f3caa5488f964f1d560?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7582', 'title': 'type_cast_code should always convert values to integer calling #to_i'}, {'body': "Using the canonical blog example, given an isolated/mounted engine within a module `Blog`, the current behaviour of the mounted URL helpers is to create a method `blog` which sets an instance variable `@blog`.\n\nThis effectively prevents the instance variable `@blog` from being usable anywhere else within the application where we also want to refer to the blog engine's routes. For example the home page controller action will raise an error if we assign the `@blog` ivar and then try to refer to `blog.post_path(@blog)`.\n\nThe straight-forward fix for this is to name the instance variable for the mounted helpers using internal naming conventions, in this case `@_blog`.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/43da0307752bf635c44c33dcdd962a2e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7580', 'title': 'Use internal instance variable naming scheme for mounted URL helpers'}, {'body': 'This method return @attribute[name].serialized or read_attribute().\nThis patch allows to return @attributes[name] if it is already typecasted.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7579', 'title': 'typecastes_attribute_value could return @attributes[name]'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7577', 'title': 'set default_headers to nil after use it to avoid order dependent tests'}, {'body': 'Missing require caused fail of guide generation (in\naction_dispatch/http/mime_type, line 295, undefined method `ends_with`\nfor "to_ary":String)\nWith this fix guides were normally generated', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fe1c0797f345249625590d25a51efd0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7576', 'title': 'Fixed missing require'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7574', 'title': 'improve AR CHANGELOG [ci skip]'}, {'body': "Aaron,\n\nYou asked for a pull request with the changes to make activerecord dynamically determine a model's table name such that it can support database table partitioning.\n\nAt the time, I was pretty incompetent with git and github -- I've adjusted and hope I'm doing this first pull request correctly.\n\nHere is a branch of the partitioning code which has been modified to work with this pull request.\n\nhttps://github.com/fiksu/partitioned/tree/rails-3-2-8-patching\n\nI've created a repo with examples of different types of partitioning.\n\nhttps://github.com/keithgabryelski/partitioned_examples\n\nexamples are in app/models and can be run like this:\n\n $ cd partitioned_examples\n $ rails runner app/models/company_id.rb --force\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f23c30d03f27dac9a573ada974726cc4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7573', 'title': 'Partitioned'}, {'body': 'When investigating for #7564, I found potentially bug. In database.yml, we use not `charset` but `encoding`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7572', 'title': "Use configuration['encoding'], because database configuration use not charset but encoding."}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7571', 'title': 'removed warning: shadowing outer local variable'}, {'body': "Exception message was misleading, as it is possible to have a\npolymorphic 'has_many :through' join model.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0871a0fd6f3e1fd24538914ed4ecf332?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7569', 'title': 'Improve exception message for HasManyThroughAssociationPolymorphicSource...'}, {'body': 'These tests are some quick additions to increase coverage for actiondispatch/request/session.rb and actionpack/test/dispatch/session/cookie_store_test.rb .', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b176bf0efe5230289d8e4a08dac7cfb7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7568', 'title': 'Tests for session handling'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b85d2c78cae9885b7f1ad2b5f808a450?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7566', 'title': 'Dump schema using new style hash'}, {'body': "rack/session/dalli is included in dalli gem, no in rack like the old memcache-client session store, then I think is a good idea point to the people to install dalli gem if the file can't be loaded", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7565', 'title': "Improve error message for memcache session store when dalli isn't loaded"}, {'body': 'This PR is related to #7525 , #6648 and #5547.\nWe should use mysqldump native command when dumping db structure.\n\ncc/ @rafaelfranca @seamusabshere', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7564', 'title': 'Use mysqldump native commands when rake db:structure:dump.'}, {'body': 'Hi,\n\nNewbie here. Saw 2 failing tests on AR on travis and locally -\n\n 5) Failure:\n144test_should_serialize_string(NilXmlSerializationTest) [/home/vagrant/builds/rails/rails/activerecord/test/cases/xml_serialization_test.rb:188]:\n145Expected /<\\/name>/ to match "\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n".\n146\n147 6) Failure:\n148test_should_serialize_yaml(NilXmlSerializationTest) [/home/vagrant/builds/rails/rails/activerecord/test/cases/xml_serialization_test.rb:221]:\n149Expected /<\\/preferences>/ to match "\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n".\n\nThis is the fix for them.\n\nThanks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a647b68e3ff3335e06f78d05fa657e3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7563', 'title': 'Fix for 2 broken ar-mysql2 tests'}, {'body': 'See #7559', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/144314100b686db946ff68c7ae1065d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7561', 'title': 'image_path should return blank string if empty source is passed'}, {'body': 'Deprecate yet another on the fly monkey patch of objects in AS::Callbacks.\nThis one is probably related to before_filters:\n\n``` ruby\nbefore_filter MyFilter.new\n\nclass MyFilter\n def filter(controller)\n end\nend\n```\n\nis now deprecated with recommendation to use:\n\n``` ruby\nbefore_filter MyFilter.new\n\nclass MyFilter\n def before(controller)\n end\nend\n```\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7560', 'title': 'AS::Callbacks: deprecate monkey patch of object callbacks'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e302c3320cd14b02cbe237b479d7f884?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7558', 'title': 'Added forgotten :message option to ActiveModel validates documentation'}, {'body': 'Dalli 2.2.x was released, so this is safe for merge now\n\n/cc @arunagw @rafaelfranca', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7552', 'title': 'Use Dalli for memcache session store'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7550', 'title': 'Update Active Record CHANGELOG for #7419'}, {'body': 'well caught by keen eye reader', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4ba063457702c78a7fce6a3529aedb0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7549', 'title': 'Fix Changelog example'}, {'body': "When calling a query method on an attribute that was not selected by\nan ActiveRecord query, an ActiveModel::MissingAttributeError is not\nraised. Instead, a nil value is returned, which will return false once\ncast to boolean.\n\nThis is undesirable, as we should not give the impression that we know\nthe attribute's boolean value when we haven't loaded the attribute's\n(possibly) non-boolean value from the database.\n\nThis issue is present on versions going back as far as 2.3, at least.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7548', 'title': 'Raise MissingAttributeError on query methods'}, {'body': 'PostgreSQL array type support. Any datatype can be used to create an array column, with full migration and schema dumper support.\n\nTo declare an array column, use the following syntax:\n\n```ruby\ncreate_table :table_with_arrays do |t|\n t.integer :int_array, :array => true\n # integer[]\n t.integer :int_array, :array => true, :length => 2\n # smallint[]\n t.string :string_array, :array => true, :length => 30\n # char varying(30)[]\nend \n```\n\nThis respects any other migraion detail (limits, defaults, etc). ActiveRecord will serialize and deserialize the array columns on their way to and from the database.\n\nOne thing to note: PostgreSQL does not enforce any limits on the number of elements, and any array can be multi-dimensional. Any array that is multi-dimensional must be rectangular (each sub array must have the same number of elements as its siblings).\n\nI can squash this commit after review', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ef16c122bdbe053704f2307cea255867?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7547', 'title': 'Adds migration and type casting support for PostgreSQL Array datatype'}, {'body': 'Since creating table is atomic and is the only statement inside the transaction block we could get rid of the transaction in these test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8b3d54cbc4d678ba19de7ee8aea25cb1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7546', 'title': 'Little code cleanup in hstore_test.rb'}, {'body': 'This is a fix for #7518', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7545', 'title': 'postgres, map scaled intervals to string datatype'}, {'body': 'Only run EXPLAIN for statements that are supported. Really fixes Issue #5430.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/139de3f8c3d6ee008cdb3abd3da23908?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7544', 'title': "Don't EXPLAIN the unexplainable in postgresql"}, {'body': 'This is a follow up to issue #7535. The existing example of using yield in an around callback lambda throws\na "no block given (yield)" error.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3e203104f9e92d287cfab734293ac3ca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7542', 'title': 'Fixed around callback with lambda example'}, {'body': 'Rails will store the name of a child class in the database to use for re-instantiating the record as the correct class later. By specifying an `inheritance_serializer` and `inheritance_deserializer`, you can customize the stored identifier.\n\nThis is primarily useful for working with legacy data models.\n\n```ruby\nclass Foo < ActiveRecord::Base\n self.inheritance_serializer = ->(klass) do\n # Map the class to the appropriate type identifier.\n # Defaults to `klass.name`.\n if klass == Child1\n 1\n elsif klass == Child2\n 2\n end\n end\n\n self.inheritance_deserializer = ->(type_before_cast) do\n # Map the type identifier back into the appropriate class.\n # Defaults (approximately) to `type_before_cast.constantize`.\n case type_before_cast.to_i\n when 1\n Child1\n when 2\n Child2\n end\n end\nend\n\nclass Child1 < Foo; end\nclass Child2 < Foo; end\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b7af2fda045de32a35c281ec2f29b21b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7541', 'title': 'Added customizable STI type serialization.'}, {'body': 'Is it logically correct? In my opinion it is.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7539', 'title': 'Remove a bit code duplication in render method'}, {'body': 'Adding /.idea will allow us to ignore all configuration files when using the Jetbrains RubyMine editor. There are about ten or so .xml files RubyMine uses for configuration settings which should be ignored.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5527ddcd6dfc9e1df739c2aa0c8daa20?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7537', 'title': 'Ignore RubyMine configuration files'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b7af2fda045de32a35c281ec2f29b21b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7536', 'title': 'Fix pluck when columns/tables are reserved words.'}, {'body': 'The existing example of using yield in an around callback lambda throws\na "no block given (yield)" error. After some troubleshooting, I came up\nwith this example that works in a lambda.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3e203104f9e92d287cfab734293ac3ca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7535', 'title': 'Fixed around callback with lambda example'}, {'body': "Hello,\n\nThis is just a little pull request that allows the user to pass `drop_articles` for example in order to create a migration that will drop the articles table. \n\nFor the moment, I update two changelogs, I don't know if I have to and if I don't, please let me know.\n\nHave a nice day.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7533', 'title': 'Add the ability to pass drop_* when generating a new migration'}, {'body': 'Split off from #7524 - this is just the bugfixes. \n\n* Call the `_will_change!` method before changing the underlying data. Otherwise, the list of changes is incorrectly populated.\n\n* multiple calls to `store_accessor` should add attributes to `stored_attributes`, not overwrite the ones already present.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6883e5ef03484d4fcef507d7b4f1d243?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7532', 'title': 'correct handling of changes in AR::Store, combine multiple store_accessors'}, {'body': "Hello,\n\nSorry to make a useless pull request but I found a typo in the documentation of the `get` method. I didn't add an entry to the CHANGELOG but if I have to, please let me know and I will update the commit.\n\nHave a nice day.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7530', 'title': 'Fix a typo in AD'}, {'body': 'Hello all!\n\nThe next PostgreSQL version (9.2) will supports a native [JSON type](http://www.postgresql.org/docs/9.2/static/datatype-json.html). Once the 9.2 version will be release soon I think that would be nice if AR supports it too. \n\nBefore started this, I searched for someone that could be working on this already, and tweeted @tenderlove asking if he remembers about someone doing this job, since seems that nobody is working on this I\'m sending this pull request and I\'d like to know your opinions about this feature and about my implementation. I marked two "FIXMEs" that could be a DRY candidate, IMO. Maybe should AR:Store be changed too?\n\nThanks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8b3d54cbc4d678ba19de7ee8aea25cb1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7527', 'title': 'AR supporting new JSON data type on PostgreSQL >= 9.2'}, {'body': "The previous implementation had the strange requirement that db/structure.sql contain only CREATE TABLE sql statements, one per table, separated by double newlines.\n\nSQLite3 and PostgreSQL database tasks, on the other hand, simply spawn 'sqlite3' and 'psql' binaries to load the file directly.\n\nThe new implementation follows this and attempts to respect all current MySQL configuration settings.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b541e45c86f3b6213b6e87af0f537401?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7525', 'title': "Use the 'mysql' binary for 'rake db:structure:load'"}, {'body': 'Note: the commits here are split to facilitate discussion. Happy to squash before merging.\n\nThe attached commits fix two bugs in `ActiveRecord::Store` and add a new feature. \n\n* the first commit moves the call to `will_change!` above the actual change to the attribute - otherwise, the attribute is marked as changed but attempts to access the previous value (using `_was` or `_change`) will return the *new* value instead\n\n* the second commit ensures that additional calls to `store_accessor` don\'t overwrite previously-set values in `stored_attributes`. This functionality is described in the documentation (regarding subclasses) but subsequent calls to `store_accessor` overwrote the list each time.\n\n* the final commit adds a new variant of `store_accessor` that provides type conversion for booleans to simplify (for instance) setting stored attributes with checkboxes. An example:\n\n```ruby\nclass User < ActiveRecord::Base\n store :flags\n store_boolean_attribute :flags, :likes_ruby, :likes_python, :likes_clojure\nend\n\nUser.first.likes_ruby? # => returns true or false\n\n@user.update_attributes(:likes_ruby => \'0\') # => stores false in flags[\'likes_ruby\']\n```\n\nThere is some fairly gross duplication between `store_accessor` and `store_boolean_accessor`; any suggestions for a refactor are welcome - as is a better name than `store_boolean_accessor`.\n\nOne other open question: would it be better to add more "typed" variants to handle parsing input (for datetimes, etc)? My application only needed booleans, but there\'s certainly an argument to be made for extending the same type-casting behavior to `store_accessor` attributes as plain attributes.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6883e5ef03484d4fcef507d7b4f1d243?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7524', 'title': 'Add boolean type conversion for AR::Store'}, {'body': '`parse` method performance improvements - ~27-33%', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7522', 'title': 'Refactor `Mime::Type`'}, {'body': 'As Aaron Patterson mentioned, 3.2+ should have support for a DATABASE_URL environment variable. (For background discussion please refer to https://groups.google.com/forum/#!topic/rubyonrails-core/ge1HCeBqz_s)\n\n- added tests to confirm establish_connection uses DATABASE_URL and\n Rails.env correctly even when no arguments are passed in.\n- updated rake db tasks to support DATABASE_URL, and added tests to\n confirm correct behavior for these rake tasks. (Removed\n establish_connection call from some tasks since in those cases\n the :environment task already made sure the function would be called)\n- updated Resolver so that when it resolves the database url, it\n removes hash values with empty strings from the config spec (e.g.\n to support connection to postgresql when no username is specified).\n\nThis fix can also address issues #6736 and #6833 (as slightly different implementation solution).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d308241c047f7d688b21835a0d47b369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7521', 'title': 'Fixed support for DATABASE_URL for rake db tasks'}, {'body': "The attached code adds a `wrap_with` method to Relation that wraps objects retrieved from the relation in the specified class. A trivial example:\n\n```ruby\nclass UserWrapper < DelegateClass(User)\n def magic_thing\n puts 'wat'\n end\nend\n\nUser.where(:name => 'Bob').wrap_with(UserWrapper).first.magic_thing # => prints 'wat'\n```\n\nA short test is included - suggestions for additional testing (or more meaningful testing) are welcome.\n\nThere are also a number of additional features that could be included here, if they make sense:\n\n* wrapping with additional classes may be useful; currently, chaining another `wrap_with` call overwrites the value set in the first one. This would be a simple change, given the existing plumbing for dealing with multi-valued data on Relation.\n\n* passing additional arguments to the method could be useful; for instance, `some_relation.wrap_with(SomeClass, :foo, :bar, :baz)` would pass the additional arguments on to the constructor, so each record in `some_relation` would be wrapped via `SomeClass.new(record, :foo, :bar, :baz)`. Again, a fairly trivial modification.\n\n* for extreme cases, passing a block may make more sense. For instance:\n```ruby\nsome_relation.wrap_with(SomeClass) { |some_class| some_class.do_something }\n# which wraps as:\nSomeClass.new(record).tap { |some_class| some_class.do_something }\n```\n\n* of course, there's also an argument that a zero-arg block version might make sense:\n```ruby\nsome_relation.wrap_with { |record| SomeClass.new(record) }\n```\nHere, `wrap_with` is just calling the block with the record directly.\n\n* the current code doesn't do anything when building / creating new records; it was extracted from a live app that used `wrap_with` solely for read-only views. I'm not certain what the desirable behavior is here.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6883e5ef03484d4fcef507d7b4f1d243?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7520', 'title': 'Add wrap_with to Relation; simplify decorator / presenter / etc. code'}, {'body': 'When a block is passed into `HashWithIndifferentAccess#update` or `#merge`, it will be invoked for each duplicated key with the key in question, the value for the key in the receiver, and the value in the hash being merged. The return value of the block will be used to resolve the conflict:\n\n hash_1 = ActiveSupport::HashWithIndifferentAccess.new\n hash_1[:key] = 10\n\n hash_2 = ActiveSupport::HashWithIndifferentAccess.new\n hash_2[\'key\'] = 20\n\n hash_1.merge(hash_2) { |key, old, new| old + new } # => {"key"=>30}\n\nThis is consistent with long-standing behaviour of the Standard Library\'s `Hash` class. Indeed, without this change, it would not be immediately obvious to someone passing a block into `HashWithIndifferentAccess#merge` that its behaviour doesn\'t reflect `Hash#merge`, as the block will be silently ignored.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e63b38022956263621de9c55b637ea78?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7519', 'title': 'Add an optional block to HashWithIndifferentAccess#update and #merge'}, {'body': 'I did the following things:\n* previously the tests with and without a custom `inheritance_column` used the same models. Since the model then has both fields this can lead to false positives.\n\n* All tests with a custom inheritance_column use the `Vegtable` model. The field ruby_type on the Company models is no longer needed', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7515', 'title': 'custom inheritance_column test refactoring'}, {'body': 'PR for 3-2-stable as described in #7506\n\n* I changed `public_send` to send\n* I added a CHANGELOG.md entry', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7514', 'title': 'set the configured #inheritance_column on #become (#7503)'}, {'body': '' dates back to SGML when ' was introduced in HTML 4.0\n\nReference:\nhttps://github.com/ruby/ruby/commit/bbb6b5e84e53b17c5c08072cae05aed6de6e3abe#commitcomment-1800099', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8d205ba63324cc4a0a6c83aac4cf8fb0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7513', 'title': 'Decimal form has better browser support.'}, {'body': 'The goal is to show a the user simple AJAX example that they can get up and running quickly.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/66c680f88e8c379fe408d32299dfb4e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7512', 'title': "Added a simple example demonstrating an ajax/remote form, it's correspon..."}, {'body': "I've just converted to boolean value\n\n request.xhr?\n => 0`", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9cbae80f1ea00408841fcd67312ba365?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7510', 'title': 'request.xhr? should return boolean value instead of Int'}, {'body': 'Hi Folks,\n\nI found this weird behavior when I was programming during my day job. This is the scenario:\n\n```` ruby\nclass User\n has_many :tasks\nend\n````\n\n```` ruby\nclass Task\n belongs_to :user\nend\n````\n\nso I was building a part of the application, and I made the following mistake, passing a object to the integer field:\n\n```` ruby\nt = Task.new\nt.user_id = user\nt.user_id\n=> 1 \n````\n\nwhenever this code runs, the user_id always became 1, not raising a error or anything. So I took a look in the rails source, and found that this behavior is fixed in rails master, but not in the 3.2 tree. \n\nI think this could be considered a bug, so I did this patch. What you guys think?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c802b68aaf738f3caa5488f964f1d560?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7509', 'title': 'Remove rescue that is oculting exceptions on integer columns'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8c94d965389694bd5adc14679977fd5d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7507', 'title': 'Adding MagLev to release list'}, {'body': 'This is a patch for #7503\n\nI had to create a new table and a model since the current STI models all relied on `type` and it was important for this issue not to have a field named `type`', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7506', 'title': '#becomes works with configured inheritance_column'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8977eabcedbade28ba0ebe0062e41c68?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7504', 'title': 'Fix example code: use tasks instead of comments'}, {'body': 'Hi everybody, I\'ve changed a bit a couple of lines in the Upgrading Ruby on Rails guide:\n\n- Using syntax for unicode character routes example instead of\n `` since it causes single quotes to be transformed into inverted\n commas. This makes this required change more eye-catching.\n- Using `` for the j alias and related helpers as written in the\n documentation guidelines.\n\nIn particular the second point is the reason for a PR instead of a push in the docrails guide, in the current version of the guide inverted commas are used for code, maybe there was a reason for that (e.g. "j" is very short)?\n\nPS: The guide isn\'t valid because another markup issue that I\'ve already fixed in docrails: https://github.com/lifo/docrails/commit/70d2d2ced44941162e13cb66125482ebf9097ff4', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7428d2de67276504c39bee5602b6ce99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7502', 'title': 'Fixed markup in Upgrading RoR guide'}, {'body': "this got the tests running on my machine and fixed the following error:\n\n```\n/Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:475:in `load_missing_constant': Object is not missing constant Arel! (NameError)\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:202:in `block in const_missing'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:200:in `each'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:200:in `const_missing'\n\tfrom /Users/username/Projects/rails/activerecord/lib/active_record.rb:164:in `block in '\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/lazy_load_hooks.rb:42:in `each'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'\n\tfrom /Users/username/Projects/rails/activerecord/lib/active_record/base.rb:328:in `'\n\tfrom /Users/username/Projects/rails/activerecord/test/models/arunit2_model.rb:1:in `'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:450:in `load'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:450:in `block in load_file'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:624:in `new_constants_in'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:449:in `load_file'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:352:in `require_or_load'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:317:in `depend_on'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:235:in `require_dependency'\n\tfrom /Users/username/Projects/rails/activerecord/test/models/college.rb:1:in `'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:257:in `require'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:257:in `block in require'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:242:in `load_dependency'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:257:in `require'\n\tfrom /Users/username/Projects/rails/activerecord/test/support/connection.rb:2:in `'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:257:in `require'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:257:in `block in require'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:242:in `load_dependency'\n\tfrom /Users/username/Projects/rails/activesupport/lib/active_support/dependencies.rb:257:in `require'\n\tfrom /Users/username/Projects/rails/activerecord/test/cases/helper.rb:15:in `'\n\tfrom :29:in `require'\n\tfrom :29:in `require'\n\tfrom /Users/username/Projects/rails/activerecord/test/cases/adapter_test.rb:1:in `'\n\tfrom :29:in `require'\n\tfrom :29:in `require'\n\tfrom /Users/username/.rvm/gems/ruby-1.9.2-p290@rails/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:15:in `block in
'\n\tfrom /Users/username/.rvm/gems/ruby-1.9.2-p290@rails/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `select'\n\tfrom /Users/username/.rvm/gems/ruby-1.9.2-p290@rails/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `
'\n```\n\nI used ruby 1.9.2 p290.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7500', 'title': 'reference Arel constant unambiguously (to run tests)'}, {'body': 'I got a bug when trying to call a simple "business".classify. \nBecause inflections configuration, it returns "Busines". \n\nThis PR adds a new entry for singular inflections and asserts with a unit test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30f9297a1ec40eab1d7aa9b6d41b7350?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7499', 'title': 'Add new inflection for singular (SS)'}, {'body': 'When attempting to generate a new Rails app via the executable `railties/bin/rails` an [exception][] occurs because Bundler has not be required prior to its use.\n\n[exception]: https://gist.github.com/3577771\n\nThis is the interesting line from the backtrace:\n\n```\n/Users/jcf/Code/rails/railties/lib/rails/generators/app_base.rb:254:in `bundle_command\': uninitialized constant Rails::Generators::AppBase::Bundler (NameError)\n\tfrom /Users/jcf/Code/rails/railties/lib/rails/generators/app_base.rb:260:in `run_bundle\'\n```\n\nThe change I\'ve made is to simply require Bundler in `railties/lib/rails/generators/app_base.rb`.\n\n``` ruby\ndef bundle_command(command)\n # \u2026\n _bundle_command = Gem.bin_path(\'bundler\', \'bundle\')\n\n Bundler.with_clean_env do\n print `"#{Gem.ruby}" "#{_bundle_command}" #{command}`\n end\nend\n```\n\nThe only way to integration test that comes to mind this is to do so in a separate process. Otherwise requiring bundler in the test suite will fix the issue.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18c2795810ee15d41956e7f4cc5f3338?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7498', 'title': 'Require bundler when running a new app generator'}, {'body': 'Ability to specify array of attributes to validates method.\nIn this case the listed validation options will apply to each\nattribute in array.\n\nFor example:\n```ruby\nvalidates [:first_name, :last_name, :middle_name], presence: true\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/406a9d04de19cb80e798862b9772f491?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7497', 'title': 'Array of attributes to validates method'}, {'body': 'Fixes #7478\n\nWell, it would if it were actually finished. There is one test failure:\n\n```\n 1) Failure:\ntest_setting_session_value_after_session_reset(CookieStoreTest) [/Users/steve/src/rails/actionpack/test/dispatch/session/cookie_store_test.rb:190]:\nExpected "BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTlmZTczNjc4NThiNWZhODIzNjg2Mjk2NDVlZGNkYTMwBjsAVEkiCGZvbwY7AEZJIghiYXIGOwBG--84236482786035ade1225b520f9439784ea16fb1" to not be equal to "BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTlmZTczNjc4NThiNWZhODIzNjg2Mjk2NDVlZGNkYTMwBjsAVEkiCGZvbwY7AEZJIghiYXIGOwBG--84236482786035ade1225b520f9439784ea16fb1".\n```\n\nI am not sure why `#destroy` does not reset the session. [It claims to](https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/request/session.rb#L73), and following the trail of code, looks like it does. But it doesn\'t. Anybody have any ideas?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7495', 'title': 'Properly reset the session on reset_session'}, {'body': 'Method invalid_asset_host! was delegated to controller but sprockets\ncompile assets in their own scope without controller and request. And if we set asset_host\nwith second parameter(request) it should raise error through invalid_asset_host!.\nBut since controller is nil it cannot be reached.\n\nOriginal issue in sprockets-rails tests:\n```\ntest_0010_stylesheets served without a controller in scope cannot access the request(SprocketsHelperTest) [/Users/route/Projects/sprockets-rails/test/sprockets_helper_test.rb:127]:\n[ActionController::RoutingError] exception expected, not\nClass: \nMessage: <"ActionView::AssetPaths#invalid_asset_host! delegated to controller.invalid_asset_host!, but controller is nil: #\\"/Users/route/Projects/sprockets-rails/test/fixtures/public\\", :javascripts_dir=>\\"/Users/route/Projects/sprockets-rails/test/fixtures/public/javascripts\\", :stylesheets_dir=>\\"/Users/route/Projects/sprockets-rails/test/fixtures/public/stylesheets\\", :assets=>{:digest=>true, :compile=>true}, :perform_caching=>true, :asset_host=>#}, @controller=nil, @asset_environment=#, @asset_digests=nil, @compile_assets=true, @digest_assets=true>">\n---Backtrace---\n/Users/route/Projects/rails/actionpack/lib/action_view/asset_paths.rb:14:in `rescue in invalid_asset_host!\'\n/Users/route/Projects/rails/actionpack/lib/action_view/asset_paths.rb:11:in `invalid_asset_host!\'\n/Users/route/Projects/rails/actionpack/lib/action_view/asset_paths.rb:113:in `compute_asset_host\'\n/Users/route/Projects/rails/actionpack/lib/action_view/asset_paths.rb:72:in `rewrite_host_and_protocol\'\n/Users/route/Projects/rails/actionpack/lib/action_view/asset_paths.rb:33:in `compute_public_path\'\n/Users/route/Projects/sprockets-rails/lib/sprockets/rails/helpers/rails_helper.rb:57:in `asset_path\'\n/Users/route/Projects/sprockets-rails/test/sprockets_helper_test.rb:128:in `block (2 levels) in \'\n---------------\n```\n\nI revert that commit 7185e35971f4a18f48a7d67e5c86c2fcf87bdb66 and since invalid_asset_host! is used only in action_view I think this method should be there, I renamed class of error to get rid of actionpack dependence.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7494', 'title': 'ActionView decoupling and sprockets-rails tests fail'}, {'body': 'I did a poll on Twitter to see what parts of Rails needed documentation the most, and one glaring thing that was pointed out was how out of date the AJAX guide was.\n\nCurrently, this request is not ready to be merged, but I wanted to get some feedback on what I plan to do before I bother to write the entire thing.\n\nBasically, I built a new outline, and threw a quick paragraph or two together for a bunch of the parts.\n\nCurrent guide (NOT the one I\'m working on) is [here](http://edgeguides.rubyonrails.org/ajax_on_rails.html), for reference.\n\n## Questions\n\nSome specific feedback I\'d like addressed before I flesh this out more:\n\n### Intro to AJAX\n\nWhen this guide was written, AJAX was a bit newer of a technique. The original guide had an explanation of what AJAX is. Now that everybody knows what\'s up, do we still need this?\n\n### library coverage\n\nI plan on (and have in the outline) linking to a bunch of different projects that are used for testing JS, for example. Is the \'give a bunch of them a paragraph and a link\' something we want here?\n\n### SPAs?\n\nI wrote up a little section mentioning Ember, Backbone, and Throne of JS. Obviously, "How to write a heavy JS app" is out of the scope of this guide, but I felt that mentioning tools that people can transition to once they get a lot of JS going would make sense. Is this useful?\n\n/cc @fxn @radar @wycats @dhh', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7493', 'title': 'Re-writing the AJAX Guide'}, {'body': 'Currently, using mysql one can specify sslca in database.yml to say that one should connect to the database using SSL.\n\nHowever, rails dbconsole does not honor this setting. The enclosed patch fixes this.\n\n-Lars and Jim\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/28549512f89c6fa064bc5c9c5eb0baed?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7488', 'title': 'Have rails dbconsole pass sslca to the mysql command line client.'}, {'body': "I found the following test failure.\n\n```\n 1) Error:\n143test_collection_dependency(TemplateDigestorTest):\n144Errno::ENOENT: No such file or directory - /home/vagrant/builds/rails/rails/actionpack/test/template/../tmp/messages/_message.html.erb\n145 /home/vagrant/builds/rails/rails/actionpack/test/template/digestor_test.rb:153:in `initialize'\n...\n```\n\nThis problem came from FiltUtils.cp_r(src, dest) specific.\nAccording to API reference, `if dest is directory, files were copied to dest/src directory`.\nWe copy files in setup, and remove directory in teardown.\nThus if we execute tests twice, tests are failure at first, and tests are success at second.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7485', 'title': 'Fix build about TemplateDigestorTest.'}, {'body': "I found the following warning.\n\n```\n...\n/home/vagrant/builds/rails/rails/actionpack/lib/action_controller/metal/conditional_get.rb:169: warning: `&' interpreted as argument prefix\n...\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7484', 'title': 'Fixes warning: & interpreted as argument prefix'}, {'body': 'This pull request improves the regular expression used by `ActionView::Digestor` ( introduced in 502d5e24e28b3634910495d0fb71cb20b1426aee)\n\n* Ignore whitespace before/after Hash keys, (which usually appear when people indent their Hash keys)\n* Ignore whitespace before/after parenthesis (some people are just sloppy)\n* Correctly parse 1.8.7 style Hash keys (for some of us the new style is still not in our muscle memory)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/919feaa12651b668d8ee9a41215b1976?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7483', 'title': 'Better ActionView::Digestor nested template inference'}, {'body': "For now tests are a bit outdated and we're using sprockets-rails from rubygems, I think to use it from github sounds more reasonable.\n\n/cc @guilleiguaran\n\nBTW: We should add changelog entry about removing manifest option, I think.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7482', 'title': 'Use last version of sprockets-rails and sync tests for assets.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4d6f74711436cfe252bf4fc8f3cf4971?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7481', 'title': 'Fix grammar'}, {'body': "The new controller-level etag feature's description in the ActionPack changelog wasn't formatted correctly.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1178ce2f664a6cee9a05a3e11af5d8d2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7480', 'title': 'Fix markdown rendering of the ActionPack changelog'}, {'body': "escape the '.'s \xa0", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c0a78e5b3081bf7a7da6a6668e659c73?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7479', 'title': 'the example for contraint( :ip => XXXX) has an invalid regex'}, {'body': 'I fixed some warnings related to `mime_type` method\'s deprecation on master (#7469).\n\nBut I got some another problems.\nWhen executing `rake test:isolated` in ActionMailer, test/base_test.rb was break.\n\n```\n 1) Failure:\ntest_0007_should set template content type if mail has only one part(BaseTest) [test/base_test.rb:69]:\nExpected: "text/html"\nActual: "text/plain"\n...\n```\n\nAfter investigating, I realized the cause of problem.\nIf we didn\'t load `action_dispatch`, we also didn\'t execute `ActionView::Template::Types.delegate_to Mime`\nPlease see also https://github.com/rails/rails/commit/67f55e282236eef53adc6036e735190b1dda5a47#L0R107.\n\nIf we delegate to Mime, build is success.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7477', 'title': 'A missing require is added to fix build. When performing rake test:isolated in actionmailer, test/base_test.rb was break.'}, {'body': 'I believe indentation was mistakenly wrong, see: https://github.com/rails/rails/blob/master/actionpack/lib/abstract_controller/helpers.rb#L31-38', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ecd20118eccc74fbe790e75a923de7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7476', 'title': 'Fixed indendation'}, {'body': "This was added to master in c5fc159, but it'd be nice to have this fix in 3-2-stable too.\n\nSee #6429 for the original pull request.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7474', 'title': 'Backport 89ebd28 to 3-2-stable'}, {'body': "I saw the following error in travis's log.\n\n```\n 1) Failure:\n/home/vagrant/builds/rails/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb(TestIsolated) [/home/vagrant/builds/rails/rails/actionpack/test/ts_isolated.rb:12]:\n```\n\nAccording to my investigation, I think dalli requires rails/railtie. But when testing (isolated), we don't load 'rails/railtie' ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7472', 'title': 'Fixes AP isolated test. Rails::Railtie is required when loading dalli.'}, {'body': 'I saw the following warnings when executing rake test in activemodel.\n\n```\n...\nwarning: method redefined; discarding old reserved_karmas\n...\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7470', 'title': 'Fix method redefined warnings.'}, {'body': "I saw many deprecation warnings in http://travis-ci.org/#!/rails/rails/jobs/2262213 and in my box.\nI think it's related to 582a7f459990487659886b90e54c22e055c65870 .\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7469', 'title': 'Fixes warnings when executing rake test in ActionMailer. '}, {'body': 'When I investigated about #7467, I found some tiny problems.\n\nCopy & Paste harmful ;-)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7468', 'title': 'Tiny fixes in railties/test/application.'}, {'body': 'If we remove Identity Map, we should add deprecation warnings to 3-2-stable.\nrelated to #7456', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7467', 'title': 'Added deprecation warnings because IdentityMap was deprecated.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7466', 'title': "removed : warning: `*' interpreted as argument prefix"}, {'body': 'When running `rails generate controller --help` an example\nwith creating a (singular) "CreditCard" controller is\nshown. The convention is to generate controllers with plural\nnames though.\n\nDue to docrails strict "no code can be touched whatsoever"\npolicy I thought I should not push this change to docrails.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a8160507e340d9ad7ee9ce23a8f26e40?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7465', 'title': 'Change generators controller help from singular to plural example.'}, {'body': 'Currently when client send request to rails with proper `Accept` header rails will return always HTML. When I need `JSON` or other format I can of course add `.(:format)` and rails will recognize this. Why is this the only option?\n\n* I do not want nor need to use :format in routes\n* I use jQuery.getJSON method with cross-domain option `HTTP_X_REQUESTED_WITH` is not set\n* There is a proper Accept header : `application/json, text/javascript, */*; q=0.0`\n* There is respond_to `:json` in controller definition\n* I use `respond_with` in action and give it an object that has `to_json` and `as_json` method implemented\n\nWhen I ask for `JSON` rails should respond with `JSON`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f11c73a95318bbf85e419c1727434d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7464', 'title': 'Proper mime negotiation in case of non-ajax request'}, {'body': 'Before:\n```\n<%= form_tag({action: :authorize, controller: :charm}) do %>\n<%=hidden_field_tag :client_id, @client.id %>\n<%=hidden_field_tag :scope, @client.scope %>\n...\n<% end %>\n```\nnow\n\n```\n<%= form_tag({action: :authorize_accept, controller: :charm}, hidden_data:{client_id: @client.id, scope: @client.scope}) do %>\n...\n<% end %>\n\n```\nWhy adding it as parameter in form_for is a nice solution? because the only purpose of type=hidden is to add some parameters to request, only data payload and there is no difference where will you put this tag inside of form.\xa0\nAlso, we already have a ```
``` to keep all our hidden datas there.\xa0\n\n/cc @tenderlove @josevalim\xa0', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7462', 'title': 'hidden_data - sugar for hidden tags'}, {'body': 'Before:\n```\n<%= form_tag({action: :authorize, controller: :charm}) do %>\n<%=hidden_field_tag :client_id, @client.id %>\n<%=hidden_field_tag :scope, @client.scope %>\n...\n<% end %>\n```\nnow\n\n```\n<%= form_tag({action: :authorize_accept, controller: :charm}, hidden_data:{client_id: @client.id, scope: @client.scope}) do %>\n...\n<% end %>\n\n```\n\nWhy adding it as parameter in form_for is a nice solution? because the only purpose of type=hidden is to add some parameters to request, only data payload and there is no difference where will you put this tag inside of form. \nAlso, we already have a ```
``` to keep all our hidden datas there. \n\n/cc @tenderlove @josevalim ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7461', 'title': 'Hidden data in form_for tag'}, {'body': 'This fixes the order dependency with other tests.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7460', 'title': 'ensures that the test repairs the validation setup'}, {'body': 'This test https://github.com/rails/rails/blob/master/activerecord/test/cases/base_test.rb#L381\nis failing because is not setting `CreditCard.pluralize_table_name` to `false`.\n\nIn this case, i prefer to change to another model that is not in the `GUESSED_CLASSES`\narray.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7458', 'title': 'fix order dependent test in AR::BasicsTest'}, {'body': 'The current logging of sql queries only logs the actual query time which is great for finding slow queries. Unfortunately, it does not log the record instantiation time, which can be slow due to model bugs or inappropriate usage of callbacks.\n\nWe use this internally to detect when our models are slow due to callbacks, serialization, or any other potentially slow ActiveRecord hooks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9968b786345739e77c49dc09c4f6514c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7457', 'title': 'Added logging of model instantiation.'}, {'body': 'One code uses for two different tests. Duplicated code used for different test-cases. As example\nhttps://github.com/rails/rails/blob/master/activerecord/test/cases/mass_assignment_security_test.rb#L393 and https://github.com/rails/rails/blob/master/activerecord/test/cases/mass_assignment_security_test.rb#L403.\n\nThat is bug because in this tests should be used instances of different models.\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cebfabb19814410151c8375b798643df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7454', 'title': 'refactored mass assignment security tests'}, {'body': "Right now no memcache test running because no memcache gem left in repo.\n\n\nThere is one test failing in my local need help to fix that.\n\n```ruby\n\n 1) Error:\ntest_deserializes_unloaded_class(MemCacheStoreTest):\nDalli::DalliError: Unable to unmarshal value: undefined class/module SessionAutoloadTest::\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/server.rb:305:in `rescue in deserialize'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/server.rb:301:in `deserialize'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/server.rb:345:in `generic_response'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/server.rb:155:in `get'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/server.rb:48:in `request'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/options.rb:18:in `block in request'\n /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/options.rb:17:in `request'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/client.rb:251:in `perform'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/dalli/client.rb:50:in `get'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/dalli-2.1.0/lib/rack/session/dalli.rb:28:in `get_session'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:246:in `load_session'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb:43:in `block in load_session'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb:51:in `stale_session_check!'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb:43:in `load_session'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/request/session.rb:161:in `load!'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/request/session.rb:153:in `load_for_read!'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/request/session.rb:79:in `[]'\n /Users/arunagw/checkouts/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb:21:in `get_session_value'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/implicit_render.rb:4:in `send_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/abstract_controller/base.rb:179:in `process_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/rendering.rb:10:in `process_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/abstract_controller/callbacks.rb:18:in `block in process_action'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/callbacks.rb:337:in `_run__500462852611207954__process_action__callbacks'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/callbacks.rb:74:in `run_callbacks'\n /Users/arunagw/checkouts/rails/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/rescue.rb:29:in `process_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/notifications.rb:147:in `block in instrument'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/notifications.rb:147:in `instrument'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/params_wrapper.rb:205:in `process_action'\n /Users/arunagw/checkouts/rails/actionpack/lib/abstract_controller/base.rb:126:in `process'\n /Users/arunagw/checkouts/rails/actionpack/lib/abstract_controller/rendering.rb:44:in `process'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal.rb:195:in `dispatch'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal.rb:238:in `block in action'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal.rb:224:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_controller/metal.rb:224:in `call'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/bundler/gems/journey-d876c016240d/lib/journey/router.rb:68:in `block in call'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/bundler/gems/journey-d876c016240d/lib/journey/router.rb:56:in `each'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/bundler/gems/journey-d876c016240d/lib/journey/router.rb:56:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/routing/route_set.rb:620:in `call'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:205:in `context'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:200:in `call'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/head.rb:9:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/flash.rb:219:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/cookies.rb:345:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/callbacks.rb:337:in `_run__3343764749036863876__call__callbacks'\n /Users/arunagw/checkouts/rails/activesupport/lib/active_support/callbacks.rb:74:in `run_callbacks'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:27:in `call'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb:19:in `call'\n /Users/arunagw/checkouts/rails/actionpack/test/abstract_unit.rb:138:in `call'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/bundler/gems/rack-test-8153c07db7a9/lib/rack/mock_session.rb:30:in `request'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/bundler/gems/rack-test-8153c07db7a9/lib/rack/test.rb:228:in `process_request'\n /Users/arunagw/checkouts/rails/bundle/ruby/1.9.1/bundler/gems/rack-test-8153c07db7a9/lib/rack/test.rb:123:in `request'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/testing/integration.rb:315:in `process'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/testing/integration.rb:31:in `get'\n /Users/arunagw/checkouts/rails/actionpack/lib/action_dispatch/testing/integration.rb:349:in `block (2 levels) in '\n /Users/arunagw/checkouts/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb:135:in `block (2 levels) in test_deserializes_unloaded_class'\n /Users/arunagw/checkouts/rails/actionpack/test/abstract_unit.rb:218:in `with_autoload_path'\n /Users/arunagw/checkouts/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb:134:in `block in test_deserializes_unloaded_class'\n /Users/arunagw/checkouts/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb:184:in `block in with_test_route_set'\n /Users/arunagw/checkouts/rails/actionpack/test/abstract_unit.rb:205:in `with_routing'\n /Users/arunagw/checkouts/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb:174:in `with_test_route_set'\n /Users/arunagw/checkouts/rails/actionpack/test/dispatch/session/mem_cache_store_test.rb:124:in `test_deserializes_unloaded_class'\n\n\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7452', 'title': 'Memcached to dalli for actionpack test.'}, {'body': 'Ensure class variable is set to nil.\n\nIt prevents the following test to fail:\n\n def test_do_not_run_the_converter_when_nil_was_set\n customers(:david).non_blank_gps_location = nil\n assert_nil Customer.gps_conversion_was_run\n end\n\nCheck https://github.com/rails/rails/blob/master/activerecord/test/models/customer.rb#L7\nfor more information.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7451', 'title': 'fix order dependent test in AggregationsTest'}, {'body': "Hello,\n\nI allow myself to open a pull request related to [#6549](https://github.com/rails/rails/pull/6549). This pull request add the ability for the user to pass a `--pry` option when creating a new Rails application adding the pry-rails gem to the project's Gemfile.\n\nHave a nice day.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7450', 'title': "Add the ability to pass a --pry option to add 'pry-rails' to the Gemfile"}, {'body': 'At current moment there is some inconsistency between options +:limit+ and +:reject_if+ - the last can accept symbol that points on instance method, and also procs.\n\nMy patch adds these capabilities to +:limit+ option.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7d116b912a4fc7986b40d5d0d0d811d6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7449', 'title': 'Allow to pass Symbol or Proc into :limit option of #accepts_nested_attributes_for'}, {'body': 'What do you thing about it?\n\nHope someone will have time to review it, thanks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b85d2c78cae9885b7f1ad2b5f808a450?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7447', 'title': 'Modularize postgresql adapter'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7446', 'title': 'backport #7435'}, {'body': "@tenderlove this PR is based on our discussion in #7424\n\nWhen `ActionDispatch::ParamsParser#parse_formatted_parameters` raises an exception, it's re-raised as `ActionDispatch::ParamsParser::ParseError` instead of the original exception - we're assuming that the only thing that can raise an exception there is a parser. This way it's much easier to catch parsing error that originated in `ParamsParser` (skipping parsing errors raised later down the chain e.g. in actions) and return a custom response e.g. 400.\n\nBTW. There's a funky thing going on with request body in `ParamsParser#parse_formatted_parameters` ([link](https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/params_parser.rb#L37-58)). Proc and Yaml strategies use `request.raw_post` (which reads request body and then rewinds it before being parsed), but JSON and XML ones read and rewind request body on their own e.g.:\n\n```ruby\nwhen :json\n data = ActiveSupport::JSON.decode(request.body)\n request.body.rewind if request.body.respond_to?(:rewind)\n ...\n```\n\nThe issue is that if JSON.decode raises an exception, request body is not rewinded and thus calling `request.raw_post` later inside the error handler returns nil. Is there any reason why not all strategies use `request.raw_post`? This should most likely fix this issue.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2b2b07fe8688479d2559704d4bf8a264?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7444', 'title': 'Raise generic ParseError exception when ParamsParser fails parsing request params'}, {'body': 'The bug:\n\n Account.where(\'1 = 2\').sum("2 * credit_limit") => \'0\'\n\nThat is, sum with an expression (not a column name) on a condition or collection that returns no records returns the string "0", whereas it should return an integer, 0.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/53d301869ff9f450d180eb40fdcca434?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7439', 'title': "ActiveRecord: sum expression returns string '0' for no records, fixed"}, {'body': "Problem : Edge rails can't bundle\nFixes #7437", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7438', 'title': 'We need to have 1-0-stable for joureny gem in edge'}, {'body': "This functionality will be available from gem `active_record-session_store` instead. The gem is currently hosted at https://github.com/sikachu/activerecord-session_store, and I'll be pushing to rails/ soon.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7436', 'title': 'Extract ActiveRecord::SessionStore from Rails'}, {'body': 'we should take disabled option not only from `html_options` hash but from\n`options` hash too like `build_select` method does it. So\n\ndatetime_select("post", "updated_at", { :discard_minute => true }, { :disabled => true })\ndatetime_select("post", "updated_at", :discard_minute => true , :disabled => true)\n\nboth these variants work now\n\ncloses #7431', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7435', 'title': 'correct handling of date selects when using both disabled and discard options'}, {'body': 'This is a cleaner version of #6916.\n\nCloses #3165.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7434', 'title': 'Model.select takes a variable list of arguments'}, {'body': "We always see the follwing warning, when executing `rake test_mysql`\n\n```\n...warning: instance variable errno not initialized...\n```\n\nI know we shouldn't hide warnings, but I guess that development for mysql gem is not active.\n\nBTW:\naccording to https://github.com/luislavena/mysql-gem/blob/master/ext/mysql_api/mysql.c#L1873\nand https://github.com/luislavena/mysql-gem/blob/master/ext/mysql_api/mysql.c#L171, we can't access this iv ?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7432', 'title': "Suppress annoy warning, when executing AR's testcases."}, {'body': 'Since the rails master branch should be tested with the latest version of ruby-oci8.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7429', 'title': 'Use the latest ruby-oci8 with Oracle enhanced adapter'}, {'body': 'Fixes encoding of 4 byte (> 0xFFFF) unicode characters to JSON. Backport of request on master. Fixes issue #3727', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a8d99d9d17ed9fd6c270efecb0c62c5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7426', 'title': 'Fixes encoding of 4 byte unicode characters to JSON'}, {'body': 'Fixes encoding of large unicode characters (> 0xFFFF) to JSON. For Javascript / JSON these need to be encoded as a surrogate pair. Fixes Issue #3727', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a8d99d9d17ed9fd6c270efecb0c62c5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7425', 'title': 'Fixes encoding of 4 byte unicode characters to JSON'}, {'body': 'This allows to set a custom response (e.g. 400) when `ParamsParser` raises an exception when parsing request params. One can do it by swapping the default `ActionDispatch::ParamsParser`:\n\n```ruby\nconfig.middleware.swap ActionDispatch::ParamsParser, \n ActionDispatch::ParamsParser, {}, lambda { |e| [400, {}, ["Bad request"]]}\n```\n\nThis is still a bit awkward, so it could be further simplified to e.g. \n```ruby\nconfig.action_dispatch.params_parser_error_handler = lambda { ... }\n```\nbut it\'s not implemented in this patch.\n\nWithout this patch it\'s of course still possible to return custom response, however slightly more difficult. Here\'s one of possible solutions:\n\n```ruby\nclass MyParamsParser < ActionDispatch::ParamsParser\n def call\n super\n rescue MultiJson::DecodeError\n [400, {}, ["Bad Request"]]\n end\nend\n\nconfig.middleware.swap ActionDispatch::ParamsParser, MyParamsParser\n```\n\nThe other question is why Rails doesn\'t return 400 by default instead of 500 when parsing request params fails :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2b2b07fe8688479d2559704d4bf8a264?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7424', 'title': 'Allow to set custom error handler for ActionDispatch::ParamsParser.'}, {'body': "This allows us to make alterations to the generated routes based on the\nscope of the current mapper, and otherwise allows us to move larger\nblocks of concerns out of the routes file, altogether.\n\nI'm not really convinced of the whole concerns idea, but it seems at least that if we implement it, we should have it allow for separation of concerns.\n\nThis seems in keeping with @dhh's perceived benefit of reducing noise in the routes.rb file, while enhancing the already existing functionality.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7422', 'title': 'Allow routing concerns to accept a callable'}, {'body': "```bash\nrails g migration add_statistic_updated_at:datetime\n\ncreate db/migrate/20120822103649_add_statistic_updated_at:datetime.rb\n\nrake db:migrate\n\nllegal name for migration file: ...db/migrate/20120822103649_add_statistic_updated_at:datetime.rb\n\t(only lower case letters, numbers, and '_' allowed)\n```\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/757fb0d5ec7560b6f25f5bd98eadc020?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7419', 'title': 'Ensure valid migration filename on generating migration'}, {'body': 'When dealing with legacy or read-only databases schemas, sometimes you need to tell Rails to ignore one or more columns. Or, you have meta-columns that are used by a separate daemon or app, but you don\'t want them cluttering up your rails app. \n\n`ignore_columns` interfaces cleanly right at the point where the column names are cached by ActiveRecord, using a simple `reject` call. \n\nThe specific case I built this for was a read-only app on top of an AuthLogic database structure. AuthLogic uses `respond_to?(:column)` calls throughout to determine whether to enable a certain piece of functionality. This works great with a 1-app-1-database relationship, but in this case, some functionality needed to be enabled on one app, but not the other: specifically the "increment failed login count" module. `ignore_column :failed_login_count` would be by far the cleanest way to workaround this.\n\nVarious monkey-patches floating around Stack Overflow: \n* [How can I permanently ignore a database column in my ActiveRecord::Base class? \u2014 Stack Overflow](http://stackoverflow.com/questions/4911174/how-can-i-permanently-ignore-a-database-column-in-my-activerecordbase-class) \n* [How can I use ActiveRecord on a database that has a column named \'attribute\'? (DangerousAttributeError)](http://stackoverflow.com/questions/5428987/how-can-i-use-activerecord-on-a-database-that-has-a-column-named-attribute-d?rq=1)\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f21ccf17244e72968994223304e4f802?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7417', 'title': 'Add ignore_columns to ActiveRecord'}, {'body': "For example:\nrails generate controller foo/bar index\n\nshould generate:\n\n```ruby\nget 'foo/bar/index'\n```\n\npreviously it generated:\n\n```ruby\nget 'bar/index'\n```\n\nPlease let me know if this is a faulty assumption of mine or whether further work is needed (aka properly nesting inside of scope(s) or something). Or whether this would be better on the master branch - I picked 3-2-stable because I consider it a bug.\n\n:heart: Thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7414', 'title': 'Route to the full namespaced resource when generating a controller.'}, {'body': 'Suggest user a better way to generate a secret token via the available `rake secret` command from Rails.\n\nBetter formatting for easier readable too.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a955103782890eb2990826141b60d4ad?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7413', 'title': 'remind user a good way to generate a secret code.'}, {'body': 'This fixes [#7404](https://github.com/rails/rails/issues/7404)\n\n* This exception is thrown only when include_blank => true and /or prompt options are added.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cf0c4e31ad2ab024bacd079c7dca3b4b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7410', 'title': 'option_tags coerced to "" instead of nil'}, {'body': "I added 3rd argument to AR::Result#initialize, and removed mysql/postgresql's own Result class.\nIf we add the 3rd argument, inherited Result class is unnecessary.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7409', 'title': 'Refactor AR::Result or inherits. Because we have redundant codes about column_types.'}, {'body': 'This pull request addresses two failures tested with MySQL 5.6.6 m9 (milestone 9).\n\n```ruby\n$ mysql --version\nmysql Ver 14.14 Distrib 5.6.6-m9, for Linux (x86_64) using EditLine wrapper\n```\n\n- Failure with mysql adapter\n\n```ruby\n$ rake test_mysql\n\n... snip ...\nFinished tests in 199.465809s, 17.8427 tests/s, 52.2947 assertions/s.\n\n 1) Failure:\ntest_mysql_strict_mode_disabled(MysqlConnectionTest) [/home/yahonda/git/rails/activerecord/test/cases/adapters/mysql/connection_test.rb:135]:\nExpected: [[""]]\n Actual: [["NO_ENGINE_SUBSTITUTION"]]\n\n3559 tests, 10431 assertions, 1 failures, 0 errors, 6 skips\nrake aborted!\nCommand failed with status (1): [/home/yahonda/.rvm/rubies/ruby-1.9.3-p194/...]\n\nTasks: TOP => test_mysql\n(See full trace by running task with --trace)\n$ \n```\n\n- Failure with mysql2 adapter\n\n```ruby\n\n$ rake test_mysql2\n\n... snip ...\nFinished tests in 166.461722s, 21.3683 tests/s, 62.6330 assertions/s.\n\n1) Failure:\ntest_mysql_strict_mode_disabled(MysqlConnectionTest) [/home/yahonda/git/rails/activerecord/test/cases/adapters/mysql2/connection_test.rb:51]:\nExpected: [[""]]\nActual: [["NO_ENGINE_SUBSTITUTION"]]\n\n3557 tests, 10426 assertions, 1 failures, 0 errors, 18 skips\nrake aborted!\nCommand failed with status (1): [/home/yahonda/.rvm/rubies/ruby-1.9.3-p194/...]\n\nTasks: TOP => test_mysql2\n(See full trace by running task with --trace)\n$\n```\n\n- sql_mode default value as of MySQL 5.6.6 m9.\n\nIt might have caused sql_mode default value as of MySQL 5.6.6 m9 is `NO_ENGINE_SUBSTITUTION`, which was empty at older versions.\n\n```sql\n\nmysql> select @@global.sql_mode;\n+------------------------+\n| @@global.sql_mode |\n+------------------------+\n| NO_ENGINE_SUBSTITUTION |\n+------------------------+\n1 row in set (0.00 sec)\n\nmysql> select @@session.sql_mode;\n+------------------------+\n| @@session.sql_mode |\n+------------------------+\n| NO_ENGINE_SUBSTITUTION |\n+------------------------+\n1 row in set (0.00 sec)\n\nmysql> quit\n```\n\nThis default parameter change is out of control from Rails, then these test verify Rails not overriding the default `@@GLOBAL.sql_mode` value by checking if `@@GLOBAL.sql_mode` is the same as `@@SESSION.sql_mode`. \n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7408', 'title': 'Rename to test_mysql_no_override_global_sql_mode'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cf0c4e31ad2ab024bacd079c7dca3b4b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7407', 'title': 'attr_accessors in the same line'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/376e4eb9dc6c2e33d1330262edc4f109?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7406', 'title': 'Fixed some documentation mistakes'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7401', 'title': 'fix punctuation in config templates'}, {'body': '`save!` and `update_attributes!` always returns `true`\n\nI think returning `self` instead will be more useful in cases like:\n\n``` ruby\ndef create_something\n s = Something.new\n ....\n s.save!\nend\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7400', 'title': 'AR: make #save! and #update_attributes! return self'}, {'body': 'I\'m submitting this pull request because of some confusion I had using this method (and its alias). When I originally tried the method, I attempted to do something like `time_ago_in_words 15.minutes` which now I realize was an error on my part because this method expects its argument to be a `Time`.\n\nMy initial reaction was that this is a pretty obvious bug in rails since it didn\'t jump out to me in the docs that the argument must be a `Time` and writing it as `time_ago_in_words 15.minutes.ago` felt a little clumsy with the "ago" redundancy.\n\nIt was even a little more confusing going from using the `distance_of_time_in_words` method with simple `15.minutes` (because the default `from_time` is simply `0`) to the alias method `distance_of_time_in_words_to_now` and having to supply a `Time`.\n\nAnyway, at the very least, it seems some minor improvements to the docs (perhaps what I\'ve attached?) may help the situation, and at the most perhaps some retinkering of this API (a job I currently feel unqualified of).\n\nThanks for the awesome work!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1433d0176e764f9ce48f70673baa72e8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7398', 'title': 'Extended documentation for `time_ago_in_words` helper'}, {'body': "There is a common use case where mail settings are dynamic based on settings saved in database. For example, we could let companies provide us with their SMTP credentials which can be used to send email on their behalf. My particular use case dealt with creating a delivery method which sends SMSes based on company's credentials to company's users.\n\nThis PR allows the user to easily set delivery method settings from within the mail instance\n\n````ruby\nclass MySmsMailer < ActionMailer::Base\n def send_sms(company,telephone_number,message)\n mail :to => telephone_number, \n :body => message, \n :delivery_method => :sms_sender, \n :delivery_method_options => company.sms_credentials\n end\nend\n````\n\nor\n\n````ruby\nclass UserMailer < ActionMailer::Base\n def campaign_blast(company,telephone_number,message)\n mail :to => telephone_number, \n :body => message, \n :delivery_method_options => {:username => company.smtp_user, \n :password => company.smtp_password}\n end\nend\n````\n\n\n\nThe alternative to doing this would be rather ugly\n\n````ruby\nm = MySmsMailer.send_sms(company,number,message)\nm.delivery_method.some_method_that_sets_options_on_sms_sender_instance(company.sms_credentials)\nm.deliver\n````\n\nWe could try to set delivery options by resetting them on classes but I dont imagine it would be threadsafe to do that!\n\n/cc @josevalim @mikel \n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4ba063457702c78a7fce6a3529aedb0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7397', 'title': 'Allow delivery method options to be set per mail instance'}, {'body': 'A writer of test can confuse how to write his new test.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/196fcecb9032f580dbed8d06a3aac090?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7396', 'title': 'Access @rs only through attr_accessor'}, {'body': 'This is in regards to https://github.com/rails/rails/commit/b1e509ad7a8c8264544f10f4666705cd806b5408#commitcomment-1636270 . ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8e696229263b433634ddbdc7a153fe4b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7395', 'title': 'Refactor AutosaveAssociation#save_collection_association'}, {'body': 'It seems like this could eliminate some annoyances for other people as well. `template0` as I understand it is a pristine database template where the default template to use is` template1` which may include some options. In my case using the new rails-dev-box vagrant setup; `template1` default encoding is SQL_ASCII and raises an error because it conflicts with the UTF-8 option passed in.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b057dbf404843c93d69e719d4e2dea4b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7394', 'title': 'Use template0 option for creating activerecord test databases in build_database task with postgres'}, {'body': "Moves column related schema dumper code into the AbstractAdapter. The\ncode remains the same, but by placing it in the AbstractAdapter, we can\nthen overwrite it with Adapter specific methods that will help with\nAdapter specific data types.\n\nThe goal of moving this code here is to create a new migration key for\nPostgreSQL's array type. Since any datatype can be an array, the goal is\nto have ':array => true' as a migration option, turning the datatype\ninto an array. I've implemented this in postgres_ext, the syntax is\nshown here: https://github.com/dockyard/postgres_ext#arrays", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ef16c122bdbe053704f2307cea255867?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7393', 'title': 'Moves column dump specific code to a module included in AbstractAdapter'}, {'body': 'This is a real fix (as compared to the band-aid in b127d86c), which uses\nthe recently-added equality methods for ARel nodes. It has the side\nbenefit of simplifying the merge code a bit.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7392', 'title': 'Fix "last equality wins" logic in relation merge'}, {'body': 'With a value of "nosniff", this prevents Internet Explorer from MIME-sniffing a response away from the declared content-type.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/66c680f88e8c379fe408d32299dfb4e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7390', 'title': 'Added X-Content-Type-Options to the header defaults.'}, {'body': 'Commit 271beddd8929758802e11826297adf92e40cd4af didn\'t solved the issue, since we need to `require` as "[active_record/deprecated_finders](https://github.com/rails/activerecord-deprecated_finders/blob/master/lib/active_record/deprecated_finders.rb)".\n\nThis commit fixes #7381.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3579801a9ca6605789fff55723314eb2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7389', 'title': 'Fixes #7381, so activerecord-deprecated_finders gets correctly bundled when creating a new Rails app'}, {'body': 'See 02ca9151a043a4fefbb3f22edd05f0cd392fffaa\n\nI was noticing this warning using 3.2.8 even though I was doing:\n\n`t.remove :some_column`\n\n```\nDEPRECATION WARNING: Passing array to remove_columns is deprecated, please use multiple arguments, like: `remove_columns(:posts, :foo, :bar)`\n```\n\nAttached is a fix for Table#remove rebased against 3-2-stable and tests updated to reflect that remove_columns should not be passed an array.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9968b786345739e77c49dc09c4f6514c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7388', 'title': 'Table#remove passed an array to remove_column, which is deprecated.'}, {'body': 'Oracle and PostgreSQL supports "NULLS first/last" in order by statement. It\nwill break the reverse_sql_order by concating " DESC" to the order by statement.\n\nFor example,\n\n```ruby\n User.order("name ASC NULLS FIRST").last\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/83c8cca11558f32207645ca270ae8475?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7386', 'title': 'ORDER BY xx NULLS first/last will break reverse_sql_order'}, {'body': 'Adding the `include` method to Array\nYou can add an item to an array only if that item does not already exist.\n\n```ruby\n[1, 2].include(2) => [1, 2]\n[1, 2].include(3) => [1, 2, 3]\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b7d890bed68fa564c18ff00dfd8207cd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7382', 'title': 'Adding .include method to Array'}, {'body': "After the repo has been renamed it can't be found when bundling.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/df4ca44714f099ef998e8821615e0085?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7381', 'title': 'Update to activerecord-deprecated_finders on generator'}, {'body': "This is at best a band-aid for a more proper fix, since it won't truly\nhandle the removal of the previous equality condition of these other\nnodes. I'm planning to put in some work on ARel toward supporting that\ngoal. I'd like to also backport this fix to the 3.x merge code, unless\nthere are objections.\n\nRelated: rails/arel#130, ernie/squeel#153, ernie/squeel#156\n\nAlso, I added a test for the more typical equality condition, since\nI didn't see one for it yet. Maybe I missed it, since the PredicateBuilder\ndoes create equality nodes in stock AR with a hash, but\nthe only one I noticed was using order and strings to test.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7380', 'title': 'Fix merge error when Equality LHS is non-attribute'}, {'body': "Currently invoking `#first/#last` on not-loaded collection proxy for `has_many` association will not set inversed parent for fetched record. So example from rails guides and docs is actually not correct:\n\n```ruby\nc = Customer.first\no = c.orders.first\nc.first_name == o.customer.first_name # => true\nc.first_name = 'Manny'\nc.first_name == o.customer.first_name # => true\n```\n\nIn reality last line will return false. I've fixed both methods to take `inversed_of` option into account. So now this example will work as intented, I've provided test to illustrate it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/254513687a01330ba0ae676538de459b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7377', 'title': 'Use inversed parent for first and last child of has_many association'}, {'body': 'There were some incorrect indentations in [actionpack/CHANGELOG.md](https://github.com/rails/rails/blob/master/actionpack/CHANGELOG.md) (mostly at the bottom)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b942798f822dee11bacf2f93e4d1f198?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7373', 'title': 'Fix slightly broken Markdown syntax in actionpack/CHANGELOG.md'}, {'body': "Call super to nullify the reference to the original errors object in the dup'ed object (call ActiveModel::Validations#initialize_dup)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2b4e5507d94dc84a187d35c2884c0f3d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7371', 'title': "Dup'ed ActiveRecord objects may not share the errors object "}, {'body': "`require 'action_dispatch'` immediately tries to pull in activemodel.\n\nhttps://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch.rb#L29\n\nought to be declared in the gemspec so AP can be used as a standalone gem definition.\n\n/cc @tenderlove ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7370', 'title': 'Add activemodel dep to actionpack gemspec'}, {'body': 'Decreased log level for rendered partials', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7366', 'title': 'Update actionpack/lib/action_view/log_subscriber.rb'}, {'body': 'This will omit the first divider in grouped_options_for_select (I would\nexpect a divider to go between things only).\n\nCurrently, the grouped options divider will make a select like so:\n
\nPlease Select:\n-----\nUSA\nCanada\n-----\nDenmark\nUnited Kingdom\n-----\nChina\nIndia\n
\nIt is more symmetric and more typical to only seperate the groups:\n
\nPlease Select:\n\nUSA\nCanada\n-----\nDenmark\nUnited Kingdom\n-----\nChina\nIndia\n
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bb4976df206152ce93aad43f1eb8faa0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7360', 'title': 'Remove leading divider from grouped_options_for_select when divider option is passed'}, {'body': 'Hello,\nthis fix situation when I want add presence validation for boolean value which by default fails when hold "false" value\n\nthat is because ``false.blank? # => true`` and ``true.blank? # => false``\n\nThus with this fix: ``"false".blank? # => false`` as is expected.\n\nI\'m only not sure what with empty arrays\n``[].blank? # => true`` and with this patch ``"[]".blank? # => false``\nbut I suppose this would be right behaviour.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0b62e632252d57fadbd8cbc3cb2fda63?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7358', 'title': 'Feature presence validation for boolen parameters'}, {'body': 'This is preparation before extracting Action View from Action Pack. Initially I went with extracting up-front, but @jeremy advised me to do changes first and then extract when everything is ready (which in fact is much better strategy).\n\nThe commits in this pull request basically get rid of Action Pack classes usage from Action View.\n\nOne of the problems that I want to ask about are deprecation messages. I deprecated 2 things here (moving `RecordIdentifier` to Action View and mime type lookups in auto discovery link tag) to follow rule "Deprecate in 4.0, remove in 4.1" instead deprecating in 3.2.x and removing in 4.0, but this means that we will be able to extract Action View no sooner than 4.1. Those deprecations will not be probably hit by many people, so I would like to consider moving them to `3-2-stable`, but I\'m not sure about that.\n\n/cc @spastorino @rafaelfranca @josevalim @carlosantoniodasilva', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/582034b63279abeaa8e76acf12f5ee30?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7356', 'title': 'Decouple actionpack and actionview'}, {'body': 'I see duplicated error messages while validations. It happens because of attribute was passed to ```validate_presence_of``` two times by different developers. It could be useful if ```ActiveModel``` will make attributes unique.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5adcc3757d6c4f5609aa2dc3b41f4705?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7354', 'title': 'Attributes in validations should be unique'}, {'body': 'This patch was originally submitted by Logan Bowers in https://rails.lighthouseapp.com/projects/8994/tickets/4498-rails-loses-precision-when-deserializing-timestamps-from-postgresql, but I\'ve shortened the test case significantly and I can reliably reproduce it.\n\nIn psql, run this:\n\n CREATE TABLE tmps (id serial primary key, atime timestamp with time zone );\n\nThen open up rails console and run this:\n\n class Tmp < ActiveRecord::Base; end\n\n time = Time.at(1344803062, 129346).utc\n t = Tmp.create!({atime: time}, without_protection: true)\n puts "Original time: " + time.strftime(\'%s.%N\')\n puts "Retrieved time: " + t.reload.atime.strftime(\'%s.%N\')\n puts "Raw time from DB: " + t.atime_before_type_cast\n\nI get the following results without the patch:\n\n 1.9.3p194 :005 > class Tmp < ActiveRecord::Base; end\n 1.9.3p194 :007 > time = Time.at(1344803062, 129346).utc\n => 2012-08-12 20:24:22 UTC \n 1.9.3p194 :008 > t = Tmp.create!({atime: time}, without_protection: true)\n (0.1ms) BEGIN\n SQL (0.8ms) INSERT INTO "tmps" ("atime") VALUES (\'2012-08-12 20:24:22.129346\') RETURNING "id"\n (2.6ms) COMMIT\n => # \n 1.9.3p194 :009 > puts "Original time: " + time.strftime(\'%s.%N\')\n Original time: 1344803062.129346000\n 1.9.3p194 :010 > puts "Retrieved time: " + t.reload.atime.strftime(\'%s.%N\')\n Retrieved time: 1344788662.129345000\n 1.9.3p194 :011 > puts "Raw time from DB: " + t.atime_before_type_cast\n Raw time from DB: 2012-08-12 20:24:22.129346+00\n\nNote that the DB says there are .129346 seconds, but Ruby says it\'s .129345 instead. With the patch, the times are all in sync.\nThis diff should also apply cleanly to 3.2.\n\nCC: @tenderlove, @rafaelfranca ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/52638907f672af0b017f59c47060b7d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7352', 'title': 'Fix occasional microsecond conversion inaccuracy'}, {'body': "We don't need this any more.\n\nFixes #6907.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7349', 'title': 'No longer require AS::TestCase'}, {'body': 'It seems logical to treat incompatibly marshaled data the same way as unsigned. This would fix issues like #2509 when class signature changes or serializer gets replaced. Motivation for changing session secret hash should not be connected to changes in implementation details of flash or session serialization.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8cf18195d36be3f774344820b1302c62?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7348', 'title': 'Format errors should not crash MessageVerifier'}, {'body': "Added this because I needed to limit hours in the select_hour helper to a business' hours of operation. I followed the example of :start_year and :end_year in adding the additional options.\n\nAll the tests are passing.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7b933f25e6a107c412b42514b136421d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7343', 'title': 'Add start_hour and end_hour options for select_hour helper'}, {'body': "I'm not sure about my english on documentation but the feature is fine :)\n\nI was in doubt about this line:\n\n``` ruby\nunless [:include?, :call].any?{ |method| delimiter.respond_to?(method) } || delimiter.is_a?(Symbol)\n```\n\nIt may be more clear about what is happening, but this is not a big deal:\n\n``` ruby\nunless delimiter.respond_to?(:include?) || delimiter.respond_to?(:call) || delimiter.is_a?(Symbol)\n```\n\nWhat do you think?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c2dc9c02ce7a041285725a4fc9e5f6d2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7342', 'title': 'Accept a symbol for `:in` option on inclusion and exclusion validators'}, {'body': 'doesn\u2019t => don\u2019t', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/83a4ac21377f0939f0ccc3b6db7a9bd1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7341', 'title': 'Grammar fix in ActionView Form Tag Helper docs/comments'}, {'body': "Added this because I needed to limit hours in the select_hour helper to a business' hours of operation. I followed the example of :start_year and :end_year in adding the additional options.\n\nAll the tests are passing.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7b933f25e6a107c412b42514b136421d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7340', 'title': 'Added start_hour and end_hour options for select_hour helper'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ad093366b20e7b11217b02fc268be786?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7339', 'title': 'Missing closing tag'}, {'body': 'In cases where a notification subscriber includes methods to support\nboth Evented and Timed events, Evented should take priority over Timed.\nThis allows subscribers to be backwards compatible (older Rails only\nallows Timed events) while defaulting to newer behavior.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ffba81343784b413ed79f4da3e33ae02?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7338', 'title': 'Evented notifications should take priority over Timed'}, {'body': 'The string_to_dummy_time method was blindly parsing the dummy time string\nwith Date._parse which returns a hash for the date part regardless\nof whether the time part is an invalid time string.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/21126416f8a3de608f82069ab943a336?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7337', 'title': 'Fix for time type columns with invalid time value'}, {'body': 'Here it is https://github.com/rails/sprockets-rails/blob/master/test/assets_debugging_test.rb and https://github.com/rails/sprockets-rails/blob/master/test/assets_test.rb\n/cc @guilleiguaran', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7336', 'title': 'Tests for assets were extracted to sprockets-rails and now they are unnecessary'}, {'body': 'This adds documentation for four of the methods on the `Rails` module:\n\n* `Rails.env`\n* `Rails.logger`\n* `Rails.public_path`\n* `Rails.root`\n\nNo code changes, and the generated rdoc looks correct.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aefddaa508f043817d0897f230aab7f3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7333', 'title': 'Rails method docs'}, {'body': "Regarding updated contribution guide: https://github.com/rails/rails/commit/adf3ea373660c50c7bcead0f52ab2d63a25fc57e\n\nI'm adding changelog entry for merged #6993", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8085138938c34ae1af140bfc91f2fe56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7331', 'title': 'Added changelog entry for table name prefix fix [ci skip]'}, {'body': 'ActionDispatch railtie is a better place for\nconfig.action_dispatch.default_headers settings, users can continue\noverriding those settings in their configuration files if needed.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7329', 'title': 'Move AD default_headers configurations to railtie'}, {'body': "Because I was wondering why Rails doesn't enable Gzip compression by default, I added it in the template, the same way I'll do it in my apps.\n\nThere may be a good reason of not enabling Gzip compression by default. If so I'd like to hear it of course ;)\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f2b113a55e42f840085008edd2938d57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7327', 'title': 'Enable Gzip compression by default'}, {'body': "Because I was wondering why Rails doesn't enable Gzip compression by default, I added it in the template, the same way I'll do it in my apps.\n\nThere may be a good reason of not enabling Gzip compression by default. If so I'd like to hear it of course ;)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f2b113a55e42f840085008edd2938d57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7326', 'title': 'Enable Gzip compression by default'}, {'body': 'No need to build `valid_conditions` array.\nWe can get all the data in place.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7321', 'title': 'RouteSet: refactor internals'}, {'body': "Hello,\n\nI don't think it's an issue on my computer but if it is, sorry for this pull request. When I want to start the console typing `rails c`, I have a LoadError like this one:\n\n```\n/home/robin/.gem/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- minitest/unit (LoadError)\n```\n\nSo I think we can add `minitest` by default in the Gemfile ?\n\nHave a nice day.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7319', 'title': 'Add minitest to the Gemfile template'}, {'body': 'When you include more tags in the logging, for example:\n\n```ruby\nconfig.log_tags = [:uuid, :remote_ip]\n```\n\nThen the first log line for request looks like this:\n\n```\n[c6cbd2272812fe3417bb48f7a9bab919] [127.0.0.1]\xa0\n\nStarted POST "/products" for 127.0.0.1 at 2012-07-25 08:49:35 +0200\n[c6cbd2272812fe3417bb48f7a9bab919] [127.0.0.1] Processing by ProductsController#create as JSON\n```\n\nSo when you want to grep through the logs, the line "Started ..." does not lineup with the "metadata" like request uuid and ip address, because it has \\n\\n newlines in the beginning and grep does not like that.\n\nMy fix removes the two newlines.\n\nThis has also been discussed in issue #3697', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4fdbb8aa3568e47391a8fd6c6760de11?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7317', 'title': 'Fix newlines in rack logging'}, {'body': "It fixes #3047, #2483.\n\n@rafaelfranca I've backported two commits, first to support jar options on all stores and second to fix issue with re-streaming of cookie jar with the same value. Also I've found that one of the tests in the second commit was wrongly written, so I've corrected that as well.\n\nAll tests pass.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/254513687a01330ba0ae676538de459b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7316', 'title': 'Backport of "Support cookie jar options for all cookie stores" for 3.2-stable'}, {'body': "Currently\n `assert response.cookies, 'user_name' => 'Jamie'`\nonly tests whether cookies are present or not instead of checking value.\n\nChanging `assert` to `assert_equal` fixes it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/254513687a01330ba0ae676538de459b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7315', 'title': 'Fix mistake in assertion about content of permanent cookie'}, {'body': 'If nil or an empty array is passed into `form_for` you get a horrible error message, this one is much more indicative of what the programmer needs to know to fix the problem.\n\n\nATP in actionpack\n\nScreenshot goodness: \n\n![](http://f.cl.ly/items/1R323K2e1u2k1u2E3N0u/Screen%20Shot%202012-08-10%20at%2012.08.24%20AM.png)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7314', 'title': 'Check for Blank Record in form_for'}, {'body': 'Missed this in the changelogs.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/627f0a46a5ea5729951b8224833ca653?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7310', 'title': 'Add html_escape note to CHANGELOG'}, {'body': 'Missed this in the changelogs.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/627f0a46a5ea5729951b8224833ca653?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7309', 'title': 'Add html_escape note to CHANGELOG'}, {'body': 'Missed this in the changelogs.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/627f0a46a5ea5729951b8224833ca653?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7308', 'title': 'Add html_escape note to CHANGELOG'}, {'body': "Right now if you include url_helpers the host, port and scheme aren't\nset which gives you an exception or the wrong url when included in\nplaces other than controller and views (where we have access to the\nrequest). This adds that missing information in Thread.current via\na middleware and thus allows access which works.\n\nWhat do you think? Wanted to get opinions before I dig into figuring out how to add a middleware to the default stack (and test that it's in the default stack).\n\nWithout the fix we get things like:\n\n ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true\n\nAnd end up with ugly app code, with workarounds that look like this:\n\n class RailsAndUrlHelpersHowDoTheyWork\n include Rails.application.routes.url_helpers\n def initialize(request)\n default_url_options[:host] = request.host\n default_url_options[:protocol] = request.scheme\n default_url_options[:port] = request.port\n end\n end\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6566c8ab911742cfe124b96c44503fe?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7307', 'title': 'More useful Rails.application.routes.url_helpers'}, {'body': 'Rails escapes HTML entities in erb files. This is great, because it prevents Cross Site Scripting and other evil attacks. However there is one case, where this behavior leads to undesired effects.\n\nRails escapes HTML entities in plain text mails. When I am using a `message.text.erb` file, `ActionMailer` correctly detects that the mail contains plain text and sets a `text/plain` mime type. However, ERB still handles this as an html file and escapes HTML entities.\n\nFor example, if my template contains `Dear <%= @customer_name %>, ...` and `@customer_name` is *Foobar & Partner*, then the mail will contain *Dear Foobar &amp; Partner*.\n\nThe following commit just disables HTML escaping in text templates. A text erb template is every file that has `.text` in the file name and is handled by erb.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/43b39b50295b675199c4d037321619ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7305', 'title': 'Do not escape HTML entities in text files'}, {'body': '4.0 feature, everybody agreed to merge it.\nDefault headers are really useful for various security options and mitigations.\n\ndiscuss: should we add "Sniff content type" header ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7302', 'title': 'Introduce default_headers. closes #6311 #6515'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f3ebc1f56421482200a561a312206cec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7300', 'title': 'Add method Numeric#limit, to return value limited by minimum and maximum values'}, {'body': "Hi guys,\n\n#4856 was committed to master, but never backported to 3-2-stable. I only realised when I upgraded Rails to the latest 3-2 version and it broke my app. I'd been using a patched version locally. My fail. \n\nThe files that were updated on master haven't changed on 3-2-stable, so it should be very straightforward.\n\nThanks,\niHiD", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7299', 'title': 'Ported PR #4856 to 3-2-stable.'}, {'body': "Follow-up: fix the fix.\n\nDidn't fail the test because adapter#query happens to\nnot call raw connection's #query, but don't want to count\non that and have a fragile test.\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7294', 'title': 'Fix only-once stub logic.'}, {'body': 'Hi,\n\nI refactored a piece of the `ActiveModel::Naming` module. In the part of the code that tries to find the `model_name` for the passed argument, I changed the implementation from "type based" (checking for Class) to "behavior based" (checking for method)\n\nThis change behaves almost 100% the same as the previous implementation.\n\n* Makes the same assumptions as old code. If argument responds to `to_model`, then `.to_model.class.model_name` can be called.\n* If argument it is not a `Class`, call `.class.model_name`\n* This version however allows the argument to directly respond to `model_name` if it can.\n\nThis gives a (very minor) speed boost if a class is passed, but more importantly; it allows an instance to define its "name". \n\nWe use one class to store most of our data. However, how this class should behave, depends on it\'s configuration. Routing, human names, partials all depend on this configuration. By allowing the instance to respond to model_name, we can easily take advantage of all `ActiveModel` based code.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f80b5bd87ed2e62e1c3fd52e90ee7563?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7293', 'title': 'Naming helpers should first check if passed object responds to model_name'}, {'body': 'Full test requiring manual intervention was fine, but w/ simulated disconnect, assertion was backward & still passing. Was several kinds of wrong.\n\nPlease accept my fix before I die of embarrassment for contributing negatively to the quality of the Rails core .', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7292', 'title': 'Fix just-plain-wrongness of psql auto-reconnect test.'}, {'body': 'Please see #7191. If target is equal to record or target and record are nil, we should not use transaction.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7286', 'title': 'Fix #7191. Remove unnecessary transaction when assigning has_one associations.'}, {'body': 'Follow up #7283\n\nIt was a bug/coincidence that the extensionless lookups worked before.\n\nThey are only supported from within the context of another asset of the same type.\n\n/cc @dhh @tenderlove @guilleiguaran', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7284', 'title': 'Fix asset integration test (3-2-stable)'}, {'body': "Theres a ton of new bug fixes in the newer releases of sprockets. Rails is still locked to a really old version that I'm not backporting fixes for.\n\nWhatever regression 2.2+ caused needs to be addressed.\n\nThis change still allows 2.1.x so people can just stay on the version they are now if its working for them.\n\n/cc @dhh ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7283', 'title': 'Allow newer versions of Sprockets'}, {'body': 'I\'d find it useful if the generic tag helper functions allowed ids & classes to be specified inline using the standard CSS-style notation - any chance of this making it in?\n\n content_tag("p#foo", "Blah")\n\nis quicker and clearer when reading code than\n\n content_tag(:p, "Blah", :id => "foo")', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/132ef4c367de54cc8c5b0f3e0376a33f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7281', 'title': 'Allow tag/content_tag helpers to accept tag names in the form "name#foo.bar"'}, {'body': "Reversible migrations are very cool.\n\nSome commands are not reversible, for example the removal of a table or a column.\n\nAlso, one downside is that it is now more difficult to write the reverse of a migration if `change` is used. When `up` and `down` were used, one could simply swap the code around.\n\nThese commits introduce `Migration#revert` that makes it trivial to revert a past migration, in part or in whole, or do a reversible removal of a table/column.\n\nNote that `revert` can even be called from legacy migrations using `up` & `down` and that it can revert legacy-style migrations too. For anyone changing their mind every second day, `revert` is fully nestable.\n\nTo have complete revertible capability, I would like to introduce a modified syntax for `change_column` that would allow it to be revertible; pull request upcoming when I get a chance...\n\nHere's what the rdoc looks like:\n\n---\n\nReverses the migration commands for the given block and the given migrations.\n\nThe following migration will remove the table 'horses' and create the table 'apples' on the way up, and the reverse on the way down.\n\n class FixTLMigration < ActiveRecord::Migration\n def change\n revert do\n create_table(:horses) do |t|\n t.text :content\n t.datetime :remind_at\n end\n end\n create_table(:apples) do |t|\n t.string :variety\n end\n end\n end\n\nOr equivalently, if `TenderloveMigration` is defined as in the\ndocumentation for Migration:\n\n class FixupTLMigration < ActiveRecord::Migration\n def change\n revert TenderloveMigration\n\n create_table(:apples) do |t|\n t.string :variety\n end\n end\n end\n\nThis command can be nested.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7280', 'title': 'Migration revert'}, {'body': "Rails were including 'application.js' to the pack when using `javascript_include_tag :all` even there's no `application.js` in the public directory.\n\nThis is for `master`", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7277', 'title': "Do not include application.js if it doesn't exists"}, {'body': "Rails were including 'application.js' to the pack when using `javascript_include_tag :all` even there's no application.js in the public directory.\n\nThis is for `3-2-stable`", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7276', 'title': "Do not include application.js if it doesn't exists"}, {'body': 'Forgotten change log entry', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4ba063457702c78a7fce6a3529aedb0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7275', 'title': 'add changelog for #7202'}, {'body': 'This allows you to specify the model in a `belongs_to` relationship instead of the foreign key when querying. It does this by looking up the correct foreign key on the association, and changing the column to use that key when appropriate. It came out of a discussion in issue #1736 that seemed to have some interest.\n\nThe following queries are now equivalent:\n\n```ruby\nPost.where(:author_id => Author.first)\nPost.where(:author => Author.first)\n```\n\nI also think it makes it more consistent with `has_many` queries where the relationship and query key are both plural:\n\n```ruby\nposts = Post.containing_the_letter_a.limit(5)\nAuthor.where(:posts => posts)\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45b75f9f866d240362c0d7fa125025ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7273', 'title': 'Convert model name to foreign key in queries'}, {'body': 'Consistently with #method_missing', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7272', 'title': 'Add AS::StringInquirer#respond_to? method'}, {'body': "COUNT(*) queries can be slow in PostgreSQL, #exists? avoids this by selecting a single record. @jonleighton suggested in issue #3179 that #empty? should be patched to use #exists? for the same benefit. I couldn't think of a great way to test it since the external behavior is not changing. If anyone has any suggestions for tests though, I would be more than happy to add them.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45b75f9f866d240362c0d7fa125025ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7270', 'title': 'Changing AR:CollectionAssociation#empty? to use #exists?'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7268', 'title': "Remove warning: `*' interpreted as argument prefix"}, {'body': 'According to documentation you should be able to pass something like this as a collection:\n\n```ruby\n options_for_select([ "Denmark", ["USA", {:class => \'bold\'}], "Sweden" ], ["USA", "Sweden"])\n````\n\nand get this HTML\n\n```html\n \n \n \n```\n\n> copy from actionpack/lib/action_view/helpers/form_options_helper.rb line 308\n\nbut when you do it from collection_select the :value_method by default is :last\nthis commit fix it and re-enable the html option for option tag\n\ncoauthored by [fedesoria](https://github.com/fedesoria) - [ovargas27](https://github.com/ovargas27)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/433031df4018635dfb177f4066c37a3b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7264', 'title': 'Allow html options on option tag'}, {'body': 'strip_heredoc strips all leading spaces/tabs from a heredoc.\n\nBut there are situations when you want to retain a certain indent, for instance, when inserting something in config/environments/production.rb\n\nExample:\n```ruby\nmodule Module\n class Creator < Thor\n desc "dostuff NAME", "do stuff to NAME"\n def dostuff(name)\n insert_into_file "config/environments/production.rb", <<-HEREDOC.strip_heredoc(2), :before => "end\\n"\n # mailer settings\n config.action_mailer.smtp_settings = {\n :address => \'YOURMAILSERVER\',\n :enable_starttls_auto => true,\n :password => \'YOURPASSWORD\',\n :user_name => \'YOURUSERNAME\'\n }\n\n HEREDOC\n end \n end \nend \n```ruby\n\nThe result is that the inserted text is indented by 2 spaces, to align with the rest of production.rb.\n\nCheers\nace\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3dfc4136712f120023f092004f062cc4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7263', 'title': 'added with_indent parameter to strip_heredoc'}, {'body': 'Remove some unneeded complexity in RouteSet url helpers generation.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7262', 'title': 'Refator route set'}, {'body': 'A Boolean field will accept `true` or `false` as defaults instead of `0` / `1`.\n\nAs shown in the [Rails Migration Guides](http://guides.rubyonrails.org/migrations.html) right in the second box.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f27f3cb5efa4481b71db7f28dae9ac64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7260', 'title': 'Update Migration Docs: Defaults for Boolean Fields'}, {'body': 'Generating an URL with an array of records is now able to build a query\nstring if the last item of the array is a hash.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0e1f9a3f4fd8b96d5683a4c859ed2db9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7259', 'title': 'polymorphic_url with an array generates a query string'}, {'body': 'errors_options is calculated for every *CHECKS* but it could be\ncalculated one time because options and RESERVED_OPTIONS\nnot change during this cycle', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7253', 'title': 'calculate errors_options one time in validate_each'}, {'body': 'This integrate strong_parameters plugin in Rails core and remove attr_accessible/attr_protected.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7251', 'title': 'Integrate strong_parameters in Rails 4'}, {'body': 'resolve old browser (IE6/IE7) line height issue', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/748dfca10db6ade9156d9377fc05def7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7249', 'title': "change form div css display attribute to 'none' "}, {'body': 'If you have an error page that shows lines 8-12 for example, the source would not be aligned properly from line 10 onwards.\n\nThis commit fixes that.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/864ae2178a21699972a64f5262b62b00?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7244', 'title': 'Indentation should consider line number character count.'}, {'body': 'This method is very helpful when inspecting and debug the code. So, instead of you having to do this:\n\n @user.tap{ |u| puts u.inspect }.activate!\n\nNow you can do:\n\n @user.peek.activate!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7243', 'title': 'Add Object#peek as helper method to inspect object'}, {'body': 'attr_accessible is a very confusing name.\xa0\n\nFirst, it has nothing to do with the other attr_* macros, which deal with Ruby instance-variable-based getters and setters, not Rails attributes.\xa0\n\nSecond, the term "access" is generally understood to refer to reading a value, viz. accessor vs. mutator. Yet this macro is about the *opposite* of reading; instead, it determines whether an attribute can be *written*, aka assigned.\n\nThird, this is in a module called Mass Assignment, and this macro is literally specifying which values can be mass assigned. So why be so mysterious? Let\'s just call it mass_assignable and get on with our lives. It will make this feature more understandable to every Rails programmer who has had to figure out what that line is doing there, especially now that it\'s in every generated model class -- and rightly so, since it\'s an important and useful feature and deserves to be embraced and understood by all.\n\nThis patch is just to show the (trivial) implementation; changes to documentation and to the generators will follow if people agree it\'s worth doing.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5a0d7f0cb2fac7858d234de7f7f01491?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7241', 'title': 'alias attr_accessible to mass_assignable'}, {'body': 'This is a rebase of #2323. Tests pass.\n\nFixes #2301.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7240', 'title': 'Fix for digest authentication bug - issue #2301 in rails/rails'}, {'body': 'Mocha 0.12.2 renames the Integration module to\nMonkeyPatching. This breaks the code Rails uses\nto retrieve the assertion counter from Mocha.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a54251b745d59735ea5e9f0656a5d58d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7235', 'title': 'Fix ActiveSupport integration with Mocha > 0.12.1'}, {'body': 'Just had an issue where nginx + puma sockets resulted in a broken remote_it, this falls back to local ips if forced\xa0', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7233', 'title': 'Update actionpack/lib/action_dispatch/middleware/remote_ip.rb'}, {'body': 'Please see #7200 (postgresql_adapter.rb ignores NULLS while creating distincts in 3.2.7).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7232', 'title': 'Fix #7200. Backport #5168 to 3-2-stable'}, {'body': 'Rails included a single character response body to work around an old Safari bug where headers were ignored if no content was sent.\n\nThis patch brings the behavior slightly closer to spec if :no_content/204 is explicity requested via a head only response by sending a no content in the response body. \n\nThe single character body breaks especially JSON parsers on iOS etc that sees it as invalid content. By localising the change to only 204 responses this should allow API implementers to use the 204 status code when no content is sent back.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/79cdbc1957aee2a63e336001df89f195?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7231', 'title': 'Remove single character body in head(:no_content) response '}, {'body': 'Many named routes have keys that are required to successfully resolve. If a key is left off like this:\n\n <%= link_to \'user\', user_path %>\n\nAn error will be raised like this:\n\n No route matches {:action=>"show", :controller=>"users"}\n\nSince Journey know\'s that the `:id` is missing, we can add extra debugging information to the error message.\n\n No route matches {:action=>"show", :controller=>"users"} missing required keys: [:id]\n\n\nThis will help new and seasoned developers look closer at their parameters. I\'ve also subclassed the routing error to be clear that this error is a result of attempting to generate a url and not because the user is trying to visit a bad url. \n\nThe current error message is misleading and confuses most developers. The important part isn\'t what\'s in the options, the important part is that we are missing keys. Adding this information to the error message will make debugging much more obvious. \n\nThis is the sister pull request of https://github.com/rails/journey/pull/44 which will be required to get they missing keys into the correct error message. Opening both issues at the same time to start a dialog. \n\nExample Development Error in Rails: http://cl.ly/image/3S0T0n1T3421\n\ncc/ @pixeltrix', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7230', 'title': 'Add Missing Keys from Journey on Failed URL Format'}, {'body': 'sorry, I missed this change.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7228', 'title': "Change AR's CHANGELOG, because it is related to e35c67ae0f920011a2440210041e96659a8de985"}, {'body': "Today, eager loading an application is coupled with the config.cache_classes configuration. This means that every time we cache classes, we eager load the app. This is not necessarily true, for example in test environment an application could benefit of not eager loading the whole application when running a single test file, [as the results reported here](https://gist.github.com/2947894).\n\nThis proposal discuss some changes for Rails 4 to make booting more flexible and consistent.\n\n## config.eager_load\n\nThe first part of the proposal is to add a config.eager_load that says when to eager load the application. By default, we want these settings to be:\n\n # development\n config.cache_classes = false\n config.eager_load = false\n\n # test\n config.cache_classes = true\n config.eager_load = false # you may want to turn this to true if using spork\n\n # production\n config.cache_classes = true\n config.eager_load = true\n\nNotice that running a rake task **always** disables eager load (this is hardcoded in rails source today).\n\n## config.eager_load_namespaces\n\nRails also has a boolean configuration named `config.preload_frameworks` that preloads frameworks. I don't like this configuration because it is very tied to Rails and its frameworks. I propose instead `config.eager_load_namespaces` as a configuration generic enough not only to support Rails frameworks, but any gem or extension. We should be able to eager load any namespace by adding it to the list:\n\n config.eager_load_namespaces << DataMapper\n\nAnd now, whenever `config.eager_load` is true, we will invoke `DataMapper.eager_load!` to do the proper setup.\n\nThe idea of registering namespaces (and not lambdas) is that a user should be able to remove a namespace of the list if it is causing problems (or if they don't really need to eager load it).\n\nAnother nice thing about this approach is that all engines (and therefore any Rails application) already implements the `eager_load!` method, so they could be added by default to the `config.eager_load_namespaces` array, unifying both preload frameworks and eager load approaches.\n\n**NOTE**: We are pending some hax to ensure production still work with webrick. At the worst scenario, bring the Rack::Lock option back.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e837f6b7fd146ab16ed3d663476c063e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7225', 'title': 'Improve eager load on Rails'}, {'body': 'Please see 0da12df2608969330bd47c543866f79ff8ca9edd.\n\ncc/ @josevalim', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7224', 'title': 'The use_schema_cache_dump configuration moved to ActiveRecord.'}, {'body': 'Given a class that include ActiveModel::Validations with a validation like the following:\nvalidates_length_of(:title, :minimum => 0, :allow_nil => false).\nThis makes incosistent the validation because it not raise error when\ntitle is *nil*.It should accepts only the empty string\nWith this patch title is *nil* is handled and the validation accepts only the empty string *""*', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7222', 'title': 'validates_length with minimum 0 and allow_nil: false accept nil'}, {'body': 'I am restoring documentation for env_config as discussed in issue #7070.\n\ncc @vijaydev @fxn', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/583c3d751af6c13d910b4fa8c6ef065d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7219', 'title': 'Restoring documentation for env_config'}, {'body': 'A pull request was recently merged that allows the has_secure_password to bypass the included password validations. See: https://github.com/rails/rails/commit/0e1e527654f286452fa6f86f5d229f278435319a\n\nHowever, the same commit raises an explicit error if the password_digest is blank even if validations are disabled. I have altered this behavior to raise the error only if validations are enabled.\n\nAn example where the existing version is undesirable is if a user account model is created after an oauth sign in. In that case, a user may be created from Twitter/Facebook/Google/etc. credentials without ever creating a password. I believe this use case should work by default and not require catching an exception.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/57d877dc036790f1c88a394628b598b2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7217', 'title': "has_secure_password should not raise a 'digest missing' error if the calling class has specified for validations to be skipped."}, {'body': 'So other Numeric types can benefit', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7216', 'title': 'Moved Integer#multiple_of to Numeric#multiple_of'}, {'body': 'This was changed to use 1.9 String#encode method, however under the initial commit (https://github.com/rails/rails/commit/63cd9432265a32d222353b535d60333c2a6a5125#activesupport/lib/active_support/core_ext/string/output_safety.rb) there was a performance test done (https://gist.github.com/50ec9ab8ae1e223f3b75) by @seanwalbran and I have verified that the results for myself (including our team and server boxes) are consistent with him (results here: https://gist.github.com/3218839).\n\nThis issue was found on a project upgrade from 3.0.12 to 3.2.6 making our site 100x slower rendering views. After profiling and such we patched back this method and have got our performance.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c4aaee371503ba4eb27788dc6744503c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7214', 'title': 'Revert to gsub from encode for faster html escaping'}, {'body': 'Adds support for validating multiples of a value to the numericality validator', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7213', 'title': 'multiple_of for Numericality'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e44d4c2f385f19db99813306456f5bee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7212', 'title': 'small fix typo in collection proxy'}, {'body': 'After yet another rebase I feel like we can solve the problem by split changelog into individual files and concatenate them programmatically.\n\nThis PR is just a concept showing a sample how it could be done for activerecord.\n\n```\nactiverecord/changelog\n\u2514\u2500\u2500 Rails 4.0.0 (unreleased)\n \u251c\u2500\u2500 2012-07-24-deprecate-update-column.md\n \u2514\u2500\u2500 2012-07-27-model-all.md\n\u2514\u2500\u2500 Rails 4.1.0 (unreleased)\n \u2514\u2500\u2500 2012-07-27-super-great-feature.md\n```\n\n\n\nIf everyone agree that it is a good idea I can expand this feature to every Rails library.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7210', 'title': 'New rails changelog mechanism sample'}, {'body': 'Fix http://edgeapi.rubyonrails.org/classes/ActionController/Live/Response/Header.html', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7205', 'title': 'fix nodoc in metal/live'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7204', 'title': 'Follow code conventions in metal/live'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7203', 'title': 'fix typo in metal/live [ci skip]'}, {'body': "It was found that there were some good use cases where it was prudent to ````prevent_deliveries```` even if ````prevent_deliveries```` was globally set to true for e.g. you wish to not send emails to users who are unsubscribed or users who are blocked or unconfirmed. \n\nThere are other use cases as well, such as spam detection within the body should prevent delivery.\n\nThis currently requires a common pattern which goes something like this\n\n````ruby\nSomeMailer.someemail(user).deliver if user.sendable?\n````\nWith this change it can be written alternatively as \n\n````ruby\ndef somemail(user)\n mail :to => user.email, :subject => ... , :perform_deliveries => user.sendable?\nend\nSomeMailer.somemail(user).deliver # expect no delivery if user was unsendable\n````\n\nThis allows for conditional deliveries based on user's own logic.\n\nThe way I've implemented this, ensures that if ````perform_deliveries```` is switched_off globally, then it cant be switched on by the mail message instance.\n\nAfter checking further it was found that ````perform_deliveries```` could be overridden in interceptors but at that stage you do not always have access to the underlying models used for decisions.\n\n/cc @schneems / @josevalim / @mikel", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4ba063457702c78a7fce6a3529aedb0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7202', 'title': 'Allow perform_deliveries to be set within mailer action'}, {'body': "fix wrong method name 'update_columns' on 'update_column'", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/960dfd1d957f4f82e9072543ffd0f6fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7201', 'title': '3.2 stable fixed CHANGELOG'}, {'body': 'Just changed it a little to be more readable.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/78d112452f1c6e30dfb7103d968cc439?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7198', 'title': 'Refactor ActionDispatch::Http::Cache::Response#cache_control_headers'}, {'body': 'The Inflector is currently not very supportive of internationalized\nwebsites. If a user wants to singularize and/or pluralize words based on\nany locale other than English, they must define each case in locale\nfiles. Rather than create large locale files with mappings between\nsingular and plural words, why not allow the Inflector to accept a\nlocale?\n\nThis patch makes ActiveSupport::Inflector locale aware and uses the\napplication\'s `I18n.default_locale` unless otherwise specified. Users\nwill still be provided a list of English (:en) inflections, but they may\nadditionally define inflection rules for other locales. Each list is\nkept separately and permanently. There is no reason to limit users to\none list of inflections:\n\n```ruby\nActiveSupport::Inflector.inflections(:es) do |inflect|\n inflect.plural(/$/, \'s\')\n inflect.plural(/([^ae\xe9iou])$/i, \'\\1es\')\n inflect.plural(/([aeiou]s)$/i, \'\\1\')\n inflect.plural(/z$/i, \'ces\')\n inflect.plural(/\xe1([sn])$/i, \'a\\1es\')\n inflect.plural(/\xe9([sn])$/i, \'e\\1es\')\n inflect.plural(/\xed([sn])$/i, \'i\\1es\')\n inflect.plural(/\xf3([sn])$/i, \'o\\1es\')\n inflect.plural(/\xfa([sn])$/i, \'u\\1es\')\n\n inflect.singular(/s$/, \'\')\n inflect.singular(/es$/, \'\')\n\n inflect.irregular(\'el\', \'los\')\nend\n\n\'ley\'.pluralize(:es) # => "leyes"\n\'ley\'.pluralize(:en) # => "leys"\n\'avi\xf3n\'.pluralize(:es) # => "aviones"\n\'avi\xf3n\'.pluralize(:en) # => "avi\xf3ns"\n```\n\nA multilingual Inflector should be of use to anybody that is tasked with\ninternationalizing their Rails application.\n\nSigned-off-by: David Celis ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7197', 'title': 'Make ActiveSupport::Inflector locale aware and multilingual'}, {'body': "`require mysql` used here for the 6 **hard** mysql-spesifics tests only (see [MysqlDBCreateAsRootTest](https://github.com/rimidl/rails/pull/new/fix-incorrect-require-mysql-in-mysql_rake_test#L0R46)). But we don't should run it for the sqlite or postgresql database contexts. And of course we don't should `require mysql`, when we run tests only for sqlite (`ARCONN=sqlite3 ruby -Itest .../mysql_rake_test.rb`), for example.\n\n\\+ if we follow the guides [Set up and Run the Tests](http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#set-up-and-run-the-tests) ,\nwe naturally catch error bellow:\n\n```\nrails/ $ rm .bundle/config\nrails/ $ bundle install --without db\nrails/ $ cd activerecord\nactiverecord/ $ ARCONN=mysql ruby -Itest test/cases/tasks/mysql_rake_test.rb\n...\n(mysql is not part of the bundle. Add it to Gemfile.) (LoadError)\n...\n```\n\nThis pull-request fix this error.\n\n_Note:_ `MysqlDBCreateAsRootTest` don't pass with mysql2 adapter, only with mysql.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e27cd545ce610495006fbbc54c3f1a2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7196', 'title': 'Fix incorrect usage `require mysql` in the activerecord/.../mysql_rake_test'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/641db8edc1a8f38ee0d2e5b221d40bb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7194', 'title': 'DRY class_attribute'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/641db8edc1a8f38ee0d2e5b221d40bb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7193', 'title': 'DRY class_attribute'}, {'body': 'These tests are failing before file got created on my side.\n`ensure` block should support early fail as well.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7192', 'title': 'More polite cleanup for sqlite tests'}, {'body': 'The separation option enable to keep entire words, lines or anything.\nTo split by line, like github, we can set the separation option as \\n.\nTo split by word, like google, we can set the separation option as " ".\nThe radius option represent the number of lines or words we want to\nhave in the result.\nThe default behaviour is the same. If we don\'t set the separation\noption, it split the text any where.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f8069adedbe2d37460c54eac8102351b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7189', 'title': 'Add a separation option for the excerpt function'}, {'body': "As I'm not sure if this is an expected behaviour, I'm opening this pull request to merge this documentation related. As no one, commented on #5828, it seems that it is. \n\nWhen merged, it closes #5828.\n\ncc @al2o3cr, @rafaelfranca, @schneems", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e983bf17ef27a284e0bdb174cb080b19?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7188', 'title': 'Documentation Fix: Pointing the case when no dependent option is given to a association method'}, {'body': "Update `test_help` to config properly turn natural language option.\nLast versions of Turn don't monkey patch MiniTest to setup\nthe natural language option. Here is an [example](https://github.com/TwP/turn/blob/master/try/test_autorun_minitest.rb#L3).\n\nThis patches the following behaviour:\n\n $ rake test:units\n `': undefined method `use_natural_language_case_names='\n for MiniTest::Unit:Class (NoMethodError)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7187', 'title': 'Backport #6995 to 3-2 stable'}, {'body': '```\nbundle exec rake test TEST=rails/actionpack/test/dispatch/response_test.rb\n...\n 1) Failure:\ntest_can_wait_until_commit(ResponseTest) [/home/rimidl/projects/gems/rails/actionpack/test/dispatch/response_test.rb:10]:\nFailed assertion, no message given.\n```\nThis pull-request corrects this test case.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2e27cd545ce610495006fbbc54c3f1a2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7186', 'title': 'Fix test_can_wait_until_commit(ResponseTest) in /actionpack/test/dispatch/response_test.rb'}, {'body': 'That commit https://github.com/rails/rails/commit/6951014c05fa64f533072d21dc7e4c55f59162d4 fixed behavior for abstract classes, but it was fixed by correct order. Case `if abstract_class?` must go first and no need add extra `active_record_super.abstract_class?` on this line. https://github.com/rails/rails/commit/6951014c05fa64f533072d21dc7e4c55f59162d4#L0R132', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7185', 'title': 'Refactor to reset_table_name'}, {'body': "Following the false issue reported here : https://github.com/rails/rails/issues/6958\n\nHere's the commit that passes the dasherize parameter to included associations when using to_xml.\nThis way we don't have to repeat :dasherize on every single included models. It can become messy pretty fast on big xml dumps!\n\nbundle exec rake test passes in activemodel.\n\nTell me if anything's missing!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/80500f94bd85e8508f297a407c679b08?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7184', 'title': 'to_xml dasherize option should be passed to included associations'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7183', 'title': 'Config tests to run in random order in test_help'}, {'body': 'This pull request address ORA-01400 errors reported in #7178 with Oracle enhanced adapter.\n\nThe commit 3c0bf04 requires :json_data_empty `:null => false` OR `:default => ""`. No `:null => false` AND `:default => ""` required. \n\nSee https://github.com/rails/rails/issues/7178#issuecomment-7314663 for detail.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7182', 'title': 'Modity the :json_data_empty attribute from `:null => false` to `:null => true`'}, {'body': "Ruby implementations should be free to produce exception\nmessages that are not identical to MRI. For example,\nRubinius produces 'Expected an even number, got 5'.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a82409021ddf415a8027872b889c5f74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7181', 'title': "Don't test language-level exception messages"}, {'body': 'Original PR and discussion #2008.\n\n``` ruby\nUser.order("name asc").order("name desc")\n # SELECT * FROM users ORDER BY name desc, name asc\n```\n\nThis also affects order defined in `default_scope` or any kind of associations.\n\ncc @tenderlove ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7176', 'title': 'AR::Relation#order: make new order prepend old one.'}, {'body': 'This commit addresses ORA-01400 errors with Oracle enhanced adapter.\n\nIssue #4856 had been fixed and tested with the attribute `:null => false, :default => ""`.\nNow `:null => false` attribute is not necessary to test this issue.\n\nYou can see investigations [here](https://github.com/rails/rails/issues/7138#issuecomment-7295387).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7173', 'title': 'Modify the preference attribute from `:null => false` to `:null => true`'}, {'body': "Removed protected method `class_of_active_record_descendant` and moved logic to the `base_class` method. The `class_of_active_record_descendant` method was confusing because it required an argument, but that argument was 'self' and was not used outside this context.\n\nAlso moved base_class tests to inheritance_test.rb and added some test coverage for some untested cases.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45b75f9f866d240362c0d7fa125025ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7171', 'title': 'Refactor ActiveRecord::Inheritance.base_class logic'}, {'body': 'There are quite a lot of such typos in tests files but since in ActionController module exists **response_overridden?** method I think it should be **overridden**.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e302c3320cd14b02cbe237b479d7f884?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7170', 'title': 'Fix typo in documentation'}, {'body': 'Currently in Rails, it is not possible to specify a :layout when\ndirectly calling\nrender @variable\nMore specifically, the following code doesn\'t work:\n\nrender @variable, layout: \'different_layout\'\n\nThis patch allows specifying a layout. To pass locals to the layout,\nomit the locals: {} brackets. Thus, instead of writing\n\nrender \'variables/variable\', layout: \'different_layout\', locals:\n{variable: @variable, some_local: \'foo\'}\n\nyou can just write:\n\nrender @variable, layout: \'different_layout\', some_local: \'foo\'\n\nOne drawback is that a local may not be named "layout", else it won\'t\nwork. It is quite obvious though since locals are passed "inline"\n(without the locals: {} brackets).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/48e74d737282bad7cdfefeb8b6b22d15?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7169', 'title': 'Add support for using the :layout option when calling render @variable'}, {'body': 'Changed parameterize() to remove single and double quotes before inserting separators. E.g. "Jon\'s house is nice" becomes "jons-house-is-nice".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c57288fbb9a93d57bbaaaa5d7d1d51b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7168', 'title': 'parameterize() removes quotes before processing'}, {'body': 'In this commit https://github.com/rails/rails/commit/a052fc95a7e5176f66f0f896f3ced60e41794eed was added eager_autoload but missed extend.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7167', 'title': 'Missed extend for eager_autoload'}, {'body': 'Fixed markdown code indenting', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ecd20118eccc74fbe790e75a923de7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7166', 'title': 'Update activerecord/CHANGELOG.md'}, {'body': 'Related to #7164\n\nLooks like the last one; thanks!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7165', 'title': 'Switched update_column recommendation in changelog to update_columns'}, {'body': 'This is related to #7159\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7164', 'title': 'Switched update_column recommendation in changelog to update_columns'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7162', 'title': 'change to hash rocket syntax to support 1.8'}, {'body': 'There\'s a note above that says "These classes will be loaded when associations are created. So there is no need to eager load them.", which is true for most of the association classes, but not for these. For instance, `AssociationScope` is only ever referenced when `.scoped` is called on an association, so it will only get autoloaded at runtime, rather than at "load time".\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b3ed9bd44a7d22be2dd659be02e44754?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7161', 'title': 'Eager autoload ActiveRecord association helpers'}, {'body': 'update_attribute is deprecated in Rails 3.2.7.rc1 in favour of update_column\n\nupdate_column is then deprecated in Rails 4.0 and I think that it makes no sense to recommend adopting it only to require changing to update_columns in the very next release.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7159', 'title': 'Backport update_columns to Rails 3.2'}, {'body': 'This commit addresses the following failure with Oracle enhanced adapter.\n\n```ruby\n$ ARCONN=oracle ruby -Itest test/cases/store_test.rb\nUsing oracle\nRun options: --seed 1895\n\n# Running tests:\n\n........F.........\n\nFinished tests in 0.683039s, 26.3528 tests/s, 42.4573 assertions/s.\n\n 1) Failure:\ntest_0009_convert store attributes from Hash to HashWithIndifferentAccess saving the data and access attributes indifferently(StoreTest) [test/cases/store_test.rb:63]:\nExpected: "symbol"\n Actual: nil\n\n18 tests, 29 assertions, 1 failures, 0 errors, 0 skips\n$\n```\n\n1024 character should be enough to store this purpose. This fix also works with sqlite3, mysql, mysql2 and postgresql adapters.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7158', 'title': 'Use string datatype for the setting attribute'}, {'body': 'These extra runs were used to test identity map and not fully removed when the feature was removed.\n\nWhen identity map was removed, ci/travis.rb was updated to remove the line in the if build.activerecord? clause that sets the :identity_map build option to true. However, the entire if build.activerecord? clause needs to be removed to remove the extra build.run! inside the clause.\n\nCurrently, for each database, activerecord tests are run 4 times, twice not in isolation, and twice in isolation. They only need to be run twice, once not in isolation, and once in isolation. \n\nTo validate the fix, I have run ci/travis.rb against all the variations of the GEM environment variable as specified in .travis.yml. All tests ran successfully and there were no duplicate runs. I ran the tests using ruby 1.9.3 in a vagrant box provisioned based on the same travis cookbook recipes that the travis standard worker box uses.\n\nPlease let me know any more work I need to do for this fix.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d308241c047f7d688b21835a0d47b369?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7151', 'title': 'remove duplicate build runs in travis'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5a90a67fa1a92e6a4b605cfd8da5e375?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7150', 'title': 'Replace the flush parameter with a Hash.'}, {'body': 'Issue #6115 has been fixed and tested with the attribute `:null => false, :default => ""`.\nHowever `:null => false` attribute is not necessary to test this issue, which causes many ORA-01400 errors with Oracle enhanced adapter.\n\nPlease see https://github.com/rails/rails/issues/6195#issuecomment-7218313 for detail.\n\nThis pull request has been tested with sqlite3, postgresql, mysql, mysql2 and oracle enhanced adapters.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7148', 'title': 'Addresses ORA-01400 errors and also supports #6115'}, {'body': "It was just a copy of the controller generator documentation which was\nmisleading. It doesn't accept arguments for views. This seems more\ndescriptive as well.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5012b2e9db5468ca91d34196155f756a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7147', 'title': 'Updated scaffold_controller generator docs #7146'}, {'body': "Suppose we have simple model with custom `as_json`:\n\n```ruby\nclass TestModel < ActiveRecord::Base\n\n def some_method\n 'test output'\n end\n\n def as_json(options={})\n options[:methods] ||= []\n options[:methods].push(:some_method)\n super options\n end\nend\n```\n\nAnd we want to serialize array of 10 records:\n\n```ruby\n([TestModel.new] * 10).as_json\n```\n\nExpected behaviour (for me) is that `some_method` will be called just 10 times. But I get 55 instead :smile:. This is because of modification of `options` variable, which passed in `super`\n\nI've tested it with rails 3.2, 3.0.9 and latest master. With ActiveRecord and MongoMapper.\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/88054fc582a42bf05c3f8460f84ffcee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7145', 'title': 'Issue with JSON serialization'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e44d4c2f385f19db99813306456f5bee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7143', 'title': 'fix typo in validations callbacks test'}, {'body': '...no options are passed (to match the behavior when options are passed).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b0e6b1dac36d79d385c708fdbe30318e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7142', 'title': 'Fix skip_[before|after]_filter to not skip an *around-filter* when...'}, {'body': "@xaviershay\n\nPreviously, if something like the following was executed, the `foo` around-filter would not be skipped (it's not a before-filter).\n\n```\naround_filter :foo\nskip_before_filter :foo, :only => :index\n```\n\nBut if the following was executed, the `foo` around-filter *would* be skipped. This patch fixes that inconsistency.\n\n\n```\naround_filter :foo\nskip_before_filter :foo\n```\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b0e6b1dac36d79d385c708fdbe30318e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7141', 'title': 'Fix skip_[after|before]_filter to not skip an around-filter, ever'}, {'body': "Otherwise, if schema_format = :sql, you will see:\n\n $ rake db:setup --trace\n ** Invoke db:setup (first_time)\n ** Invoke db:schema:load_if_ruby (first_time)\n ** Invoke db:create (first_time)\n ** Invoke db:load_config (first_time)\n ** Invoke rails_env (first_time)\n ** Execute rails_env\n ** Execute db:load_config\n ** Execute db:create\n db_example_development already exists\n db_example_test already exists\n ** Execute db:schema:load_if_ruby #<-------- :environment hasn't been executed yet\n ** Invoke db:schema:load (first_time)\n ** Invoke environment (first_time)\n ** Execute environment\n ** Execute db:schema:load\n ~/db_example/db/schema.rb doesn't exist yet. Run `rake db:migrate` to create it then try again.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b541e45c86f3b6213b6e87af0f537401?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7140', 'title': 'Make sure :environment task is executed before db:schema:load or db:structure:load'}, {'body': "Now, we can't success `bundle update`, because we can't find journey-1.0.4.\n\nAccording to https://github.com/rails/journey, there is 1.0.4 on the 1-0-stable branch.\nSo I added a :branch option.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7137', 'title': 'Fix build. There is journey-1.0.4 on the 1-0-stable branch.'}, {'body': '*Edit: see my comment below for a more general version of this problem/fix.*\n\nCurrently, `apply_inflections` does not take into account that the input might be a multi-word string separated by underscore. (`tableize` etc relies on this behavior to work correctly.) This bug affects only uncountable multi-word strings separated by underscores:\n\n```ruby\n "funky jeans".singularize # => "funky jeans"\n "client information".pluralize # => "client information"\n\n "funky_jeans".singularize # => "funky_jean"\n "client_information".pluralize # => "client_informations"\n```\n\nIt\'s also worth pointing out that `"funky_jeans".singularize` used to work correctly before 9b4622a483319f3d1e7f4489442f0d86afb6da36, which was merged almost 2 years ago so this is essentially broken since Rails 3.\n\nOn the other hand, it appears that `"client_information".pluralize` has always been broken, so this does change the behavior of `tableize` and could potentially break some older apps out there.\n\nCloses #7132.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7134', 'title': 'Correctly apply inflection rules on multi-word strings. (Fixes #7132)'}, {'body': 'Without this commit ```Comment.update_all({})``` gives ```UPDATE "comments" SET``` sql and raises exception. Now ```update_all``` returns number of rows in scope even if argument is blank.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4faab5b78bd2754387013bf8ebab06e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7133', 'title': 'fix update_all with blank argument'}, {'body': "When closing proxy body, we restore connection_id. But when getting error, we don't restore one.\nI guess we should restore connection_id.\n\nI wanted to remove duplicated codes, I added private method.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7130', 'title': 'Restore connection_id on error.'}, {'body': "Please see #7079.\n\nI know this PR doesn't fix perfectly (I don't fix the original issue, when using other invalid characters).\nBut in the current behavior, we'll be confused by the error message, and we sometimes use a filename with hyphen.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7129', 'title': 'Improve error handling when using partial name with hyphen. #7079'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7126', 'title': 'fixing :nodoc:s in AS::JSON::Encoding'}, {'body': "I try to make testing as easy as possible, which means for me that every test file should be runnable with `ruby pat/to/file_test.rb` from everywhere, which is also a requirement for a few editors, this failed in activemodel.\n(I'll make more pull requests for the other rails parts if this one is accepted)\n\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/59436ecd4fe6ad7c34f67654d839f05f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7124', 'title': 'Make activemodel tests runnable without -Itest and from non-root folders'}, {'body': "we don't need to escape values in this method as we pass\nthese html attributes to `tag_options` method that handle escaping as\nwell.\n\nit fixes the case when we want to pass html5 data options", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7123', 'title': "don't escape options in option_html_attributes method"}, {'body': 'When using resources in your routes, you can customize the key that is\nused in the params hash as the id for the resource.\n\nThis can be useful if you have to expose an API to a third party\nservice that has domain specific language concerning identification.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c4441c6faae71a7b1c035b85ed2c2701?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7116', 'title': 'Allowing customization of id param in resources'}, {'body': "Right now the documentation doesn't mention that the path argument for assert_recognizes and assert_generates can be a full url. This has been possible since this pull request was accepted two years ago: https://github.com/rails/rails/commit/7c9bf45b0dd7ad7a1d99a14566bfaeadc77b4665\n\nLet me know if I can improve anything in this PR.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/64fa0c156c8c444cbbe09593baea6e3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7114', 'title': 'Documentation fix: Note that you can also pass a full url to assert_recognizes and assert_generates'}, {'body': '* more complete documentation for module attribute_accessors\n\n* add Module#deprecate documentation', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9538e63be1a8261e6c0e028db161a366?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7113', 'title': 'Add/update some activesupport documentation'}, {'body': 'Hi, while reading the activesupport library I found out that some documentation was either missing or slightly incomplete, so here there are my additions. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9538e63be1a8261e6c0e028db161a366?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7111', 'title': 'Add/update some activesupport documentation'}, {'body': 'Reason:- 0.12.0 introduced a bug where you got a exception\nwhich is now in 0.12.1 is a warning only!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7108', 'title': 'Bumping mocha!'}, {'body': 'Pull #7075 rebased. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4b897719c13e333a89392b9360868761?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7107', 'title': 'Added method unique_messages to ActiveModel::Errors'}, {'body': 'Updated version of #7084\n\nhttps://github.com/rails/rails/commit/e482100d6ed022d00ba31c6c4377f6f947173337#commitcomment-1600684 //cc @tenderlove', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f11c73a95318bbf85e419c1727434d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7106', 'title': 'Use join without default separator in tagged logger'}, {'body': 'Fixing build broken here \n\n5a7d31913bb16977ec85d55de34ac0d79b512d62', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7102', 'title': 'table name should be sym as per test.'}, {'body': "- #respond_to's documentation refer to .respond_to, but it was\n written as just . Added class name for clarification.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/596a56f308a240a02b2227367f908882?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7100', 'title': 'Clarification to doc of ActionController::MimeResponse.respond_to'}, {'body': 'There are a couple of reasons why this is beneficial:\n- the controller accessor will be able to be garbage collected\n- if the sweeper has logic that is dependent upon the controller accessor, it will behave properly when run outside of the request process (i.e. via a queue job)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/496f50c17f049cb4eff1b2b229b49c70?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7099', 'title': 'Clean up Sweeper controller accessor when an Error is raised'}, {'body': 'Add possibility to match multiple times a word with excerpt function', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f8069adedbe2d37460c54eac8102351b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7098', 'title': 'Add times options in excerpt'}, {'body': 'In continuation of PR #7028', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7097', 'title': 'Add fkey attributes to `join_table` migration generator'}, {'body': 'Commit 3dbedd2 added NOT NULL constraints to timestamps.\nCommit fcef728 started to revert this, but was incomplete.\nWith this commit, 3dbedd2 should be fully reverted and\ntimestamps will no longer default to NOT NULL.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dc01976fdb5397c5026a528c7fbc3590?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7095', 'title': 'revert Default timestamps to non-null'}, {'body': 'TaggedLogging places the message part in the progname. This does not cause an issue with the standard Logger. However, with Loggers like Syslogger the end message looks like:\n\nMy message: [0123] My message\n\nThis is a simple fixe that solves the issue.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/005516573123125106964ea71c3c7395?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7091', 'title': 'Corrected small bug that puts the message in place of the progname'}, {'body': 'This patch adds the ability to mark `Hash` as as mass-assignment safe:\n\n\n``` ruby\nUser.attr_protected :admin\n\n# In rake task:\nUser.new({:admin => true, :email => "a@b.com"}.assignment_safe) \n\n# While in controller\nUser.new(params[:user]) # still secure\n```\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7089', 'title': '[Very experimental] AM::MassAssignmentSecurity: add ability to mark Hash as safe'}, {'body': 'Due to incorrect parsing of sqlite3 string column default containing newline character, any string column default containing newline character, e.g. "\\n" or "\\nRegards\\nMatt" is parsed incorrectly by sqlite3 adapter and as a result contains enclosing quote characters (\'), e.g. "\'\\n\'" or "\'\\nRegards\\nMatt\'".\n\nThe regular expressions stripping column defaults out of enclosing quote/double quote characters did not take into consideration column defaults containing newline characters. More specifically /^\'(.*)\'$/ regular expression would not match "\'\\n\'" since dot (.) in this expression is intended to match any character except for newline character and hence column default was not stripped correctly out of enclosing quotes returned by database when querying for table structure.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f783f3463c3cc50fc2efd1e5a505311a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7088', 'title': 'fix sqlite3 column default containing newline character'}, {'body': "According to http://dictionary.reference.com/browse/criterion the\ncorrect singular form of 'criteria' is 'criterion' and not 'criterium'\nwhich is being returned by ActiveSupport right now.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0be64c4c66963cbfa591d63a58e34088?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7086', 'title': 'Add new irregular inflection criterion -> criteria'}, {'body': 'When the default separator is set logger will create incorrect output\n\n```ruby\n$, = "_"\n@logger.tagged("BCX", "BDX") { @logger.info "Funky time" }\n# => [BCX] _[BDX] Funky time\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f11c73a95318bbf85e419c1727434d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7084', 'title': "Don't use default separator in tagged logger"}, {'body': "As we know in views rails provides a lazy lookup to translate the text. This facilitates reducing code size. But I've always seemed very strange that such a functional is not in the controllers and mailers. In every new project I had a similar method. It would be nice if this was part of the core. So \n\n```ruby\n\nclass ProductController < ApplicationController\n\n def create\n if @product.save\n redirect_to root_path, :notice => t('.saved')\n else\n flash[:error] = t('.failed')\n end\n end\n\nend\n\n# will equal to \n\nclass ProductController < ApplicationController\n\n def create\n if @product.save\n redirect_to root_path, :notice => t('product.create.saved')\n else\n flash[:error] = t('product.create.failed')\n end\n end\n\nend", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f11e6329d1bb972e6906455adbb90115?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7082', 'title': "add lazy look up in abstract controller's translate method"}, {'body': 'This is the master-branch counterpart to #7080.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a82409021ddf415a8027872b889c5f74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7081', 'title': 'AR::Integration must be included after AM::Conversion'}, {'body': "Integration's definition of #to_param must override Conversion's. Otherwise,\nthere is a regression from 3.1 in the behavior of a non-persisted AR::Base\ninstance which nevertheless has an id.\n\nOn master, a similar change is needed -- or we can remove AR::Integration#to_param\nand accept the behavioral change, or we can remove AR::Integration#to_param and\nchange AM::Conversion#to_param to have the AR::Integration behavior.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a82409021ddf415a8027872b889c5f74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7080', 'title': 'AR::Integration must be included after AM::Conversion'}, {'body': "In the `find_by_sql` method, we use `logging_query_plan` method.\nBut In the `count_by_sql` method, we don't use one.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7078', 'title': 'Log query plan when we use count_by_sql method.'}, {'body': 'I checked rails source tree with the following command.\n\n```\n$ find . -name "*.rb" -print | xargs grep class_eval | grep -v __FILE__ | grep "<<"\n```\n\nI found class_eval without file/line, so I added them.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7076', 'title': 'Fix class_eval without __FILE__ and __LINE__.'}, {'body': "I find myself doing this a lot on my projects. It is a simple method that can simplify helper's logic.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4b897719c13e333a89392b9360868761?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7075', 'title': 'Added method unique_messages to ActiveModel::Errors'}, {'body': 'Fixes issue an with overrding ActiveRecord reader methods with a composed object and using that attribute as the scope of a validates_uniqueness_of validation. This changes the validation to use the attribute\'s database value as opposed to the return value of the method call. \n\nFrom the [original discussion](https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-core/Z-k4zyW7XvI):\n\nThe following code will raise "TypeError: Cannot visit CatBreed" when trying to create a new Cat:\n\n```ruby\nclass Cat < ActiveRecord::Base\n validates :name, :uniqueness => { :scope => [:breed] }\n\n def breed\n CatBreed.new(super)\n end\nend\n\nclass CatBreed\n def initialize(breed)\n @breed = breed\n end\n\n def to_s\n @breed\n end\nend\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45b75f9f866d240362c0d7fa125025ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7072', 'title': 'Use database value for uniqueness validation scope'}, {'body': 'This is a patch meant for 4.0 that will move most inflections that are\ncurrently defined in `activesupport/lib/active_support/inflections.rb`\nto the inflection initializer template defined in Railties.\n\nInflections are currently "frozen" in Rails. Commits that add/remove/alter\ninflections are largely ignored whether or not they make sense when\nconsidering English grammar. The freezing was a decision made to avoid\nbreaking existing apps that depend on these defined inflections. By moving the\ninflections to an initializer, we can unfreeze this area of Rails and change\ninflections without fear of breaking existing applications.\n\nAdditionally, this will garner more understanding as to how Rails\npluralization/singularization works. For oddities that occur in the\ninflections Rails has defined, it\'s often simply a "WTF?" moment (e.g.\nwhy "hard drives" would singularize as "hard drife", or why "safe" would\npluralize to "saves") and people have to source dive in order to figure\nout why their singularization/pluralization is not working as expected. Laying\nthem all out in the initializer will reduce a lot of headache associated with\ninflection oddities.\n\nTwo things to note:\n\n1. I\'ve left the two basic inflections within ActiveSupport. These are:\n * Add an "s" to make a word plural (unless it already has one)\n * Remove an s to make a word singular (unless it ends in two)\n\n I\'m not actually sure about whether that second one should be\n included, or even if I should move both to the initializer as well.\n I\'d appreciate some input on that.\n\n2. I have another pull request open (pull request #6820) that would need\n to be modified if this is merged.\n\nSigned-off-by: David Celis ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7071', 'title': 'Move ActiveSupport inflections to the initializer template'}, {'body': 'The documentation for Rails::Application#env_config was incorrect and missing some information. This pull request fixes it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/583c3d751af6c13d910b4fa8c6ef065d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7070', 'title': 'Update documentation for Rails::Application#env_config'}, {'body': 'This is a cleaner version of #6916 and #6162\n\nThis is a change from the behavior of passing in an Array of args.\n This solution attempts to answer issue #3165', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f36caea738decf5aff3eebaa7ebabf9c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7069', 'title': 'Model.select takes a variable list of arguments'}, {'body': 'Do not enforce SSL on Tor hidden services (e.g. if this server hosts content both over SSL and Tor).\n\nCAs cannot verify .onion ownership for SSL (so it provides no auth),and SSL introduces leaks that actually degrade Tor security/privacy.\n\nCf. https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ?version=1390#WhyisitbettertoprovideahiddenserviceWebsitewithHTTPratherthanHTTPSaccess', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/237338834f2f8948e862e91392a8c1b4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7068', 'title': 'Do not enforce SSL for Tor Hidden Service .onion URLs'}, {'body': 'This has always bugged me. Previously you had to do `cache [foo, bar, baz]` if you wanted a composite key. This PR allows you to do `cache foo, bar, baz, :with => { :these => :options }`. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/877677f3c0cc6f8822a57b6732933d31?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7067', 'title': 'Use *args for cache view helper.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ab36cdd7a51942c562ae942a0dd07b45?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7066', 'title': "Fix activerecord model to_ary method comment 'see also' link"}, {'body': 'Optionally validate or exclude selected fields when calling `#valid?`. Test and code attached.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6c13f781b81579be36f2ec1193224db4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7065', 'title': 'Only validate desired fields'}, {'body': "Observers are one of the few things eager-loading stuff, whereas associations/helpers etc are all lazy.\n\nthis pull adds lazy_observe to Observer, so that models can be observed when they are loaded and not when observers are loaded.\n\nin our app: rails c loads 45 AR models,\nwith lazy_observe this can be reduced to 0\n\nloadtime:\n45 -> 14.2s\n0 -> 12.0s\n\n - faster application startup\n - less memory on startup\n - less db queries on startup\n - gems can do their monkey-patching safely before models are loaded\n - easier to fork+test since less is loaded (spork / spin)\n - can boot an application with a database that is in a bad state (before migration / columns missing etc)\n\nthis pull is still missing tests, I'll convert the tests from https://github.com/grosser/lazy_observers if there is a consensus that this is wanted feature.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/59436ecd4fe6ad7c34f67654d839f05f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7064', 'title': 'Do not eager load models that are observerd'}, {'body': "I've noticed a caveat with the :autosave option biting people before.\nQuestions arise about why they must explicitly save an associated object\nin their own before_save callbacks. I've updated the documentation as\nsuch to note to users that the :autosave callback occurs before any\nuser defined callbacks. They must save the associated record themselves\nif altering it in their own callbacks.\n\nSigned-off-by: David Celis ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7061', 'title': 'Update the documentation for the :autosave option on belongs_to'}, {'body': "Often I need to build form(sign in or feedback form) with inputs which dont have value. But also I need specify custom style to it. So I use text_field_tag method in which second argument value and third options. But I dont need set value, so I put blank string or nil. As we know sending nil to method not good ruby practice, so I change it to more flexible way\n\n```ruby\n text_field_tag 'field', :class => 'custom css'\n\n# is equal to\n\n text_field_tag 'field', nil, :class => 'custom css'\n```\n\nAlso changed password field, email field, textarea and etc", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f11e6329d1bb972e6906455adbb90115?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7059', 'title': 'Make argument `value` optional in form tags helpers'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7058', 'title': 'Fix tests that depend on run order'}, {'body': 'If we use `SqlBypass.data_column=`, `find_by_session_id` method respect this assignment.\n\nAdditionaly, there were some problem, I fixed.\n\u30fbredundant select clause\n\u30fbquoted_column', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7057', 'title': 'Fix SqlBypass.data_column problem.'}, {'body': 'I think that calling send(store_attribute) twice is redundant.\n ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7056', 'title': 'Avoid to call send(store_attribute) twice.'}, {'body': 'Attempt to DRY things out a little. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/076ddab874e5e370a451f0da52afb85c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7054', 'title': 'move method for dependent option check to association'}, {'body': "This way you can `require 'active_record/core_ext/time'` for example\nI see these libs are available through `active_record/time` but not\nindividually", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5012b2e9db5468ca91d34196155f756a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7053', 'title': 'Added time related req files to AS core_ext #6896'}, {'body': "Make asset:precompile:all faster by not re-invoking the Rake environment.\n\nThere's a comment here about needing it, but since the digest assets should be identical to the non-digest assets, there shouldn't be a problem re-using the compilation cache.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f8ec7f90daf8b1defb8e318d663c0f17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7052', 'title': 'Faster rake asset:precompile:all'}, {'body': 'This is an attempt to address issue #6939, where an earlier migration\nadded a column to the database, and a later migration uses a model and\nreferences that column.\n\nWhen both migrations were run together with `rake db:migrate` the column\ninformation in memory still referenced the old table structure.\n\nRunning the migrations separately fixed this, as a new connection was\nthen established before referencing the model. Explicitly calling\n`reset_column_information` is a more reliable workaround.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/51ee7bed9ecbc33aec92517f1fbb6cc2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7050', 'title': 'Expand the caveat about models in migrations in the rails guide.'}, {'body': 'Sorry, so tiny fixes.\n\nfirst: there are two quote_value methods, instance / class method.\n The class method is public (the instance one is private), so I guess we should the instance one.\n\nsecond: unique index names to be added / removed are duplicated. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7048', 'title': '[tiny fixes] Remove more duplicated code.'}, {'body': "Now, AR's test is break.\nI guess this issue is related to ac4d101a75335dc430a53203184e67753b6d99e0.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7046', 'title': 'Fix build. :extend is valid option.'}, {'body': 'Because there is IndifferentCoder.as_indifferent_hash method, we should removed duplicated code.\nAdditionally, for consistency in this file, I remove the namespace of HashWithIndifferentAccess.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7045', 'title': 'Remove duplicated code in the AR::Store.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/51ee7bed9ecbc33aec92517f1fbb6cc2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7044', 'title': 'Add note about needing mysql superuser for unit tests.'}, {'body': 'The instructions about configuration covered only rails-specific usage. This adds information on how to use observers in non-rails projects.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/51ee7bed9ecbc33aec92517f1fbb6cc2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7043', 'title': 'Add documentation for ActiveRecord::Observer.'}, {'body': "Prepared statements (prepare/execute/close) were being used unnecessarily\nwhen no bind variables were present, and disabling prepared statement using\nprepared_statements:false was principally broken. While bind variables were\ncorrectly substituted with prepared_statements:false, the prepared statement\ninterface was still used, costing an extra two round trips per query.\n\nIn addition to making this behavioral change, I also cleaned up the internals\nof exec_stmt and exec_without_stmt so that they behave the same (calling log\nand constructing the ActiveRecord::Result in the same way).\n\nMoving the check for binds.empty? to exec_query also will mean that several\ncode paths explicitly calling exec_without_stmt could be cleaned up to once\nagain call exec_query instead. I have also left the check for binds.empty? in\nexec_stmt, since it is not a private method and could be called directly with\nan empty binds array. For the sake of clarity in this patch, I have not made\nthose changes.\n\n# The previous behavior #\n\nWhen issuing a Foo.find(1) with prepared_statements:true, the bind variable\nis present in the prepared query, and execute shows a value passed:\n\n Connect\troot@localhost on rails_test\n Query\tSET SQL_AUTO_IS_NULL=0\n Statistics\n Query\tSHOW FULL FIELDS FROM `foos`\n Query\tSHOW TABLES LIKE 'foos'\n Query\tSHOW CREATE TABLE `foos`\n Prepare\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1\n Execute\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1\n Close stmt\n Quit\n\nWhen issuing a Foo.find(1) with prepared_statements:false, the bind variable\nhas already been removed and substituted with the value, but the prepared\nstatement interface is used anyway:\n\n Connect\troot@localhost on rails_test\n Query\tSET SQL_AUTO_IS_NULL=0\n Statistics\n Query\tSHOW FULL FIELDS FROM `foos`\n Query\tSHOW TABLES LIKE 'foos'\n Query\tSHOW CREATE TABLE `foos`\n Prepare\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1\n Execute\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1\n Close stmt\n Quit\n\n# With this patch applied #\n\nWhen issuing a Foo.find(1) with prepared_statements:true, the bind variable\nis present in the prepared query, and execute shows a value passed:\n\n Connect\troot@localhost on rails_test\n Query\tSET SQL_AUTO_IS_NULL=0\n Statistics\n Query\tSHOW FULL FIELDS FROM `foos`\n Query\tSHOW TABLES LIKE 'foos'\n Query\tSHOW CREATE TABLE `foos`\n Prepare\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = ? LIMIT 1\n Execute\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1\n Close stmt\n Quit\n\nWhen issuing a Foo.find(1) with prepared_statements:false, the bind variable\nhas been removed and substituted with the value, and the query interface is\nused instead of the prepared statement interface:\n\n Connect\troot@localhost on rails_test\n Query\tSET SQL_AUTO_IS_NULL=0\n Statistics\n Query\tSHOW FULL FIELDS FROM `foos`\n Query\tSHOW TABLES LIKE 'foos'\n Query\tSHOW CREATE TABLE `foos`\n Query\tSELECT `foos`.* FROM `foos` WHERE `foos`.`id` = 1 LIMIT 1\n Quit", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37cd63a9fd0344804fd6a991a55c283a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7042', 'title': 'Only use prepared statements when bind variables are present'}, {'body': 'fixing a misspelling in the documentation', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9e6166c600855c88ec5167c15850471a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7037', 'title': 'add second t to overwritten'}, {'body': "These allow you to declare a mapping from generated column names to simplified\ndatabase column types (i.e. those used in migrations). This way scopes with\ncolumns generated in their select lists can also include the information as to what\nform that data takes. This saves the user from having to translate the data\nfrom a sql string wherever it's used.\n\nHere's an example of where I'd use this:\n\n```ruby\n\nclass Topic < ActiveRecord::Base\n has_many :replies\n scope :by_most_recently_replied, joins(:replies).group('topics.id')\n .select('topics.*, MAX(replies_topics.written_on) AS latest_reply_written_on')\n .order('latest_reply_written_on DESC').cast(latest_reply_written_on: :datetime)\nend\n\n>> topic = Topic.by_most_recently_replied.first\n>> topic.latest_reply_written_on.class\n=> Time\n```\n\nThe cast is applied to postgres columns only when there is no OID info for the column.\n\nWhat do you guys think? Remaining work is to test handling of binary data - not quite sure how to go about that but I don't expect any surprises.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b4493ae064e6e2841f376fd1dc12b7ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7035', 'title': 'Add #cast and #cast! to Relation.'}, {'body': 'Fixed conflict from https://github.com/rails/rails/pull/5915 pull request', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/48491f8c7ff8dd92e4efa461842c8119?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7033', 'title': 'Restore "%" ERb/Erubis Trim Mode'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c7f9a7584d1cb70b75fd18ce37312da7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7032', 'title': 'Fix code comment to reflect its intent.'}, {'body': 'Requestng #6874 be back-ported to 3.2.\n\nDiscussion there had two of us (@steveklabnik and myself) thinking this may be a bug fix rather than new behavior.\n\nTest was written in the style of the existing 3.2 rename_table tests. I like the ones in master much more.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6340bd48e9f1248c6344d3008c0a08d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7031', 'title': 'Back-port #6874 to 3.2: psql adapter should rename a default pk sequence during rename_table'}, {'body': 'Dry up reseting the renamed table after each test.\n\nAlso made use of the AR::Base.connection object already\navailable from AR::MigrationTest#connection.\n\nMentioned this test refactoring in #6874', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6340bd48e9f1248c6344d3008c0a08d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7030', 'title': 'Add teardown method to AR::Mig::RenameTableTest'}, {'body': '* Added the `DateAndTime::Calculations` module that is included in `Time` and `Date`. It houses common calculations to reduce duplicated code.\n* Simplified and cleaned-up the calculation code.\n* Removed duplication in tests by adding a behavior module for shared tests. I also added some missing tests.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22a9bb6a9ec077e4d666d98052790c05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7029', 'title': 'Refactored common date and time calculations.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7028', 'title': 'Add indexes to create_join_table method'}, {'body': 'Fixes #6844.\nThis appears to be a jRuby bug, but it is by-passed by 5c51cd0.\n\nNo tests added because `actionpack/test/controller/send_file_test.rb` `send_file_stream` and `send_file_nostream` both fail under jRuby jruby 1.6.7 (ruby-1.9.2-p312) without this patch.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7027', 'title': 'Backport 5c51cd0'}, {'body': 'When a select tag is created for a field with errors, then the inserted\noptions will errantly have a
wrapping\nthem.\n\nFixes issue #7017 for master', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/801783653bbf14efccd51a3122ca0ea8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7026', 'title': 'Fixed bug creating invalid HTML in select options'}, {'body': 'When a select tag is created for a field with errors, and that select\ntag has :prompt or :include_blank options, then the inserted first\noption will errantly have a `
` wrapping\nit.\n\nFixes issue #7017', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/801783653bbf14efccd51a3122ca0ea8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7025', 'title': 'Select options valid html'}, {'body': 'Ability to pass custom exception to `:strict` option of `validates`\nExample:\n\n``` ruby\nvalidates :token, :presence => true, :uniqueness => true, \n :strict => TokenGenerationError\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7024', 'title': 'AM::Validation#validates: custom exception for :strict option'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/af6983cceac5aef7f452a8d4888e5208?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7023', 'title': 'Update documentation'}, {'body': 'The documentation is not always DRY. But in this case there is too much duplication.\n\nExtracted a peace of documentation from `validates_(presence|inclusion|format|etc)_of` to `validates` with a reference to the new place.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7022', 'title': 'AM::Validations: remove documentation duplicates'}, {'body': "The documentation on the http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html was outdated about indenting decision. Let's update that.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c4a3bb1606cc4a61711e61e2fe6146?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7015', 'title': 'Update coding convention from master'}, {'body': "Hi, I believe that `mattr_accessor` can be deprecated in favor of regular `attr_accessor` for modules.\n\nIf the core team agrees with that I'll update this PR by replacing all instances of mattr_accessor, and adding an entry to the changelog.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7014', 'title': 'Deprecate mattr_accessor'}, {'body': "Hi, I believe that `mattr_accessor` can be deprecated in favor of regular `attr_accessor` for modules.\n\nIf the core team agrees with that I'll update this PR by replacing all instances of mattr_accessor, and adding an entry to the changelog.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7013', 'title': 'Remove mattr accessor'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7011', 'title': 'refactoring of reset_table_name in model_schema'}, {'body': 'Similar to assert_valid_keys method, assert_required_keys method validates if all required_keys that was passed exists in hash keys\n\nFor example\n```ruby\n{ :year => 2012 }.assert_required_keys(:year, :month) # => raises "ArgumentError: Key month is required"\n```\n\nUseful when you need check if required options was passed', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5e083b9550b21448a93a5ce4f2f5251e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7010', 'title': 'Added assert_required_keys method to hash'}, {'body': "I like the respond_with syntax and I'd like to see it in generated controllers.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7009', 'title': 'Use respond_with for generated controllers'}, {'body': "I find myself frequently removing nils and blanks from miscellaneous collections, form params, CSV data, etc. It would be nice if it were just a matter of calling something like...\n\n```ruby\n[1,2,nil, '', [3, '']].clean!\n# => [1,2, [3]]\n```\n\n\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/09edaa101c1df80158e7ab4101a2e65a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7008', 'title': 'Remove nil and blank values from arrays and hashes.'}, {'body': "This version of ```extract!``` doesn't return pairs with nil values, if key is absent in receiver.\n\nAlso, it returns extracted hash of the same type as reciever (for example, on hash with indifferent access it returns hash with indifferent access)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7d116b912a4fc7986b40d5d0d0d811d6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7007', 'title': 'make Hash#extract! more symmetric with Hash#slice'}, {'body': 'This comment from the generator:\n\n```ruby\n # Expands the lines which load the assets.\n config.assets.debug = true\n```\n\ncould be more informative, eg.\n\n```ruby\n # Turn debug mode off to concatenate and preprocess assets\n config.assets.debug = true\n```\n\nOriginal post: #7005', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/908c9abc72ab86111a153b11cb584f26?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7006', 'title': 'A more informative comment for config.asset.debug'}, {'body': "Hey guys,\n\nI fixed some broken links in 2.2 release notes, i18n, debugging, security, 2.3 release notes and plugins. \n\nUnfortunately, there are some broken links which I couldn't fix because I haven't found their new url yet.\n\n* httpOnly in security\n* in-place-editor plugin in security\n* deprecation_page in 2.2 release notes\n* rg in 2.3 release notes", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fdedc3252ca9832de241e2de97fc1519?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7004', 'title': '[Guide] Fix broken links'}, {'body': 'I was looking around I found https://github.com/evan/bleak_house and replaced it', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fdedc3252ca9832de241e2de97fc1519?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7003', 'title': "Bleak House link doesn't exist (Guide)"}, {'body': "Often it's useful to retrieve a random record. This provides\nan alternative to the often used .first or .last when a random record\nis actually what is intended.\n\n Post.random\n # => Returns a random Post record or nil", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/08c185f1f22e2722710981cdd73c3b87?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/7001', 'title': 'Added a method for retrieving a random record.'}, {'body': '`stored_attributes` and `serialized_attributes` are changed to class method only.\n\nPlease see #6997 comments.\ncc/ @carlosantoniodasilva @josevalim\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/7000', 'title': 'Use instance_accessor: false instead of instance_writer.'}, {'body': 'AR test is break.\n\nmaybe related to\nhttps://github.com/rails/rails/commit/b76b9e216463f045c8a5ca4b1a6a7994f2baa389\nhttps://github.com/rails/rails/commit/c433adffa23785d3727379902859f57bc3f68b27', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6999', 'title': 'Fix build. We changed the behavior of inspect method.'}, {'body': "Hello,\n\nI allow myself to add some information on how to setup tools for testing on Fedora and CentOS and I remove the `bundle exec` statements because normally there aren't required now.\n\nI hope it can be useful.\n\nHave a nice day.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6998', 'title': 'Add few information on Fedora and CentOS and remove "bundle exec" statements'}, {'body': 'I think stored_attributes and serialized_attributes should be class level attributes.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6997', 'title': 'Added *instance_writer: false* to stored/serialized attributes.'}, {'body': "I can't find corresponding test case.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6996', 'title': 'Remove unused code.'}, {'body': "Last versions of Turn don't monkey patch MiniTest to setup\nthe natural language option. Here is an\n[example](https://github.com/TwP/turn/blob/master/try/test_autorun_minitest.rb#L3).\n\nThis patches the following behaviour:\n\n $ rake test:units\n `': undefined method `use_natural_language_case_names='\n for MiniTest::Unit:Class (NoMethodError)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6995', 'title': 'update test_help to config properly turn natural language option'}, {'body': "When generating namespaced model inside mountable engine, table_name_prefix was not including engine name:\n\n```\ncd my_engine\nrails g model namespaced/user\n```\nFile: my_engine/app/models/namespaced.rb:\n\n```ruby\nmodule MyEngine\n module Namespaced\n def self.table_name_prefix\n 'namespaced_'\n end\n end\nend\n```\n\nTable name prefix should include engine name: `my_engine_namespaced_`\n\nI added failing test and fix.\nI noticed that one test failed after this change, which I believe was wrong assumption.\nI also fixed this test according to current changes", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8085138938c34ae1af140bfc91f2fe56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6993', 'title': 'Engine table name prefix generator fix'}, {'body': 'Please see #6977\nand https://github.com/kennyj/rails/commit/0cb11d26213983eacaecb665818a519bd4ff4c7e .\n\ncc/ @josevalim', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6992', 'title': 'Allow people to register their own flash types.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6991', 'title': 'update performance test template to use test method'}, {'body': 'We discovered this issue in one of our production apps, because we tried to use `touch` as a custom mime type, which led to the `touch` method of `Object` being executed sometimes, causing vexing errors.\n\nThis is the case for any mime type with the same name as a method on Object, even private ones.\n\nThis is caused by the following execution path:\n\n1. `respond_to :touch` is called in a controller. This adds `:touch` to the list of mimes.\n2. `retrieve_collector_from_mimes` calls `Collector.new(mimes)`\n3. `initialize` calls `mimes.each { |mime| send(mime) }`\n4. `send(:touch)`, instead of triggering `method_missing` on the `AbstractController::Collector`, actually calls `Object.touch`. This can lead to any sort of behavior.\n\nA proposed fix for this issue is attached. It is based on generating the required methods on `Collector` after each mime type is registered, instead of relying on `method_missing`. That way, `send` always hits them instead of going up to `Object`.\n\nCheck out the commit messages for more info.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aea8f7ad3f630aa93ddcd199a833b672?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6990', 'title': 'Fix: Mime type names conflict with Object methods'}, {'body': 'Most common Rails authentication libraries use password_confirmation\nfield on registration which should be excluded by default alongside\nthe password field.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed68d9fac0a927b5ea3d4351f56b5811?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6988', 'title': 'Filter password_confirmation param from being logged.'}, {'body': 'This is a follow up of 07314e64fd62fb8e6165c8c539420160da9437e9\n\ncc @josevalim @jonleighton', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6fa1cdda524d49996a8bc6917328de3d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6987', 'title': 'Limit the number of records in Relation#inspect'}, {'body': 'Please see #6975.\nI think we should also merge to 3-2-stable.\n\ncc/ @tenderlove @rafaelfranca\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6986', 'title': 'Fix #6975. Round usec when writing timestamp attribute.'}, {'body': 'Query caching should be disabled for queries asking for a pessimistic lock. Otherwise the lock query may not reach the database, thus breaking the expected functionality.\n\nFixes #867', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d28da594945b3665f6c06bd4e7dc8e10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6985', 'title': 'Disable query cache for lock queries'}, {'body': 'I often find myself specifiying version number for my apps. And usually do this by creating `version.rb` file inside `config/initializers` directory. I also think that rails should encourage developers to version their apps.\n\nThis patch adds `version.rb` template to rails app generator. Initially file is commented out, so It does not specify any version number unless developer manually enables it.\n\n**edit**\n\nAs @josevalim mentioned, this can also be done using `config/applicatoin.rb` file.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/523b735c515f4f89e7f4f1f31d2add74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6983', 'title': 'Generate config/initializers/version.rb file'}, {'body': "If the request format is text/html then return the existing failsafe\nresponse. For all other formats return text/plain.\n\nThe original issue points out to return JSON at the appropriate time,\nhowever as @wycats pointed out, it's often better to return text/plain.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed68d9fac0a927b5ea3d4351f56b5811?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6981', 'title': 'Fixes issue #5660: Failsafe exception returns text/html and text/plain.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6980', 'title': 'fixed some white spaces'}, {'body': 'For instance:\n\n a = [*1..5]\n a.third = 0 # Now `a` equal [1, 2, 0, 4, 5]', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6979', 'title': 'Add array named setters'}, {'body': 'Patches `CollectionAssociation#count` to return 0 without querying\nif the parent record is new. Consider the following code:\n\n class Account\n has_many :dossiers\n end\n\n class Dossier\n belongs_to :account\n end\n\n a = Account.new\n a.dossiers.build\n\n # before patch\n a.dossiers.count\n # SELECT COUNT(*) FROM "dossiers" WHERE "dossiers"."account_id" IS NULL\n # => 0\n\n #\xa0after\n a.dosiers.count # fires without sql query\n # => 0\n\nFixes #1856.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6978', 'title': 'Count returns 0 without querying if parent is not saved'}, {'body': '"notice" , "error", "warning" are common flash types.\n\nex. notice_stickie, twitter bootstrap.\n\nBut only notice, alert exist on current helper.It\'s highly inconvenient.\n\nsee https://github.com/xdite/bootstrap-helper\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/19e786a2a74377ff6e052d87fd8d1fa8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6977', 'title': 'add common flash types, such as error, warning'}, {'body': 'Hi,\n\nI thought some small documentation for the inheritance_column method would be nice.\nI hope you agree.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0a1802a0afcb2bcf9baa21fd2fb54828?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6976', 'title': 'Add documentation for inheritance_column method'}, {'body': "It's related to #6050 but for 3.2 branch", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6973', 'title': 'Missed backport for 3.2'}, {'body': 'Missed backport for 3.2 related to #6050', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6972', 'title': 'Cherry picked wrapped keys in log for 3.2'}, {'body': 'Suppose the following query :\n\n User.where(token: params[:token])\n\nIf `params[:token]` equals "abc", the generated sql query will be the following :\n\n SELECT * FROM users WHERE token = \'abc\';\n\nHowever, if `params[:token]` equals {}, the generated sql query will be :\n\n SELECT * FROM users;\n\nThis can actually be a security issue on some applications.\n\nMy patch transforms empty hash conditions to :\n\n SELECT * FROM users WHERE users.id IS NULL;\n\nThis may not be the best way around this issue. But I\'m willing to improve it depending of the feedback provided here.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6fa1cdda524d49996a8bc6917328de3d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6971', 'title': 'fix querying with an empty hash'}, {'body': 'Before this patch, `count` returns an incorrect result when is\nexecuted with multiple columns:\n\n User.select(\'distinct username, email\').count\n # => SELECT count(*) FROM "users"\n\n User.select(\'distinct users.*\').count\n # => SELECT count(*) FROM "users"\n\nIt proposes to raise an ActiveRecordError instead.\n\n >> User.select(\'distinct username, email\').count\n # => ActiveRecord::ActiveRecordError: calculation of multiple columns is not\n # supported\n\n >> User.select(\'distinct users.*\').count\n # => ActiveRecord::ActiveRecordError: calculation of multiple columns is not\n # supported\n\nFixes #5554.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6970', 'title': 'fix calculation for a relation with multiple selected columns'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7d425eb75982fddc0438b8420c93189?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6969', 'title': 'Use ArgumentError vs. RuntimeError, which is more precise'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6968', 'title': "CSV fixtures aren't supported by default anymore, update generated test_helper.rb to reflect that"}, {'body': 'This patch fixes quoting for ActiveSupport::Duration instances:\n\n # before\n >> ActiveRecord::Base.connection.quote 30.minutes\n => "\'--- 1800\\n...\\n\'"\n\n # after\n >> ActiveRecord::Base.connection.quote 30.minutes\n => "1800"\n\nAlso, adds a test for type casting ActiveSupport::Duration instances.\n\nRelated to #1119.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6967', 'title': 'fix quoting for ActiveSupport::Duration instances'}, {'body': "test_rollback_when_saving_a_frozen_record in transactions_test.rb failed.\nThe runtime error's message returned 'hash' instead of 'Hash.' This commit \nchanges the test to reflect the message, which makes the test pass.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ec70e3175c0450768e5f920192a83dcb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6965', 'title': "Change 'Hash' to 'hash'."}, {'body': 'I listed files to use `extend ActiveSupport::Concern` and not to require `active_support/concern`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6964', 'title': "Added missing require 'active_support/concern' in Active Record"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6961', 'title': 'fix link and add activeresource link in release notes page [ci skip]'}, {'body': "Hello\n\nI found more useful to see the abilities of the command line tools Rails provides so I decided to add more information on the options we can specify when we generate our models.\n\nI hope it's useful\n\nHave a nice day.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2d27b53e2eeb6a053552332020628029?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6959', 'title': 'Add few information on the field types'}, {'body': 'It was not possible to test options request from a controller test_case. \n\nJust added the method options and refactored the head one.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ba1d6472ee5893bdfc012225e9afa263?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6957', 'title': 'Add the options method to action_controller testcase.'}, {'body': 'For instance, `$ rails g migration AddReferencesToProduct user:references supplier:references{polymorphic}` will generate:\n\n add_reference :products, :user, index: true\n add_reference :products, :supplier, polymorphic: true, index: true', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6956', 'title': 'Add references statements to migration generator'}, {'body': 'As part of the changes for Rails4 we want to sort out all the cryptography related things we have in place right now. The first part of this will be to add PBKDF2 for key derivation, then we can switch the session store and cookies.signed to use derived keys instead of using the bare secret.\n\nSimilarly future functionality like encrypted cookies / sessions can utilize derived keys.\n\nSo before merging I want to get some feedback from @meder and @thaidn on the particulars of our implementation. In particular, what are suitable default values for `iterations` and `key_size`.\n\nThis is a pre-requisite for #3955 #5034 and possibly others.\n\nNote to other committers: Please leave this one for me to merge', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/efa76b164a7de4a5730e4fa397cc4425?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6952', 'title': 'Add ActiveSupport::KeyGenerator as a simple wrapper around PBKDF2'}, {'body': 'Allows to easily set :from, :replay_to, etc. options in\nconfig/application.rb using simple syntax:\n\n config.action_mailer.default_options = {from:"no-replay@example.org"}\n\nThis was not possible using #default method because\n\n config.action_mailer.default(from: "no-replay@example.org")\n\nis interpreated as reader method and just returns nil.\nIt would not call ActionMailer::Base.default method. The only\nway of calling this method from config/application.rb was to use\nthe direct syntax which looks ugly in my opinion:\n\n```\n config.assets.enabled = false\n config.assets.version = \'1.0\'\n config.encoding = "utf-8"\n config.action_mailer.default_url_options= {\n host:"example.org",\n protocol:"https"\n }\n ActionMailer::Base.default(from: "no-replay@example.org")\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b81cae1fb43808ac23a2188258ca9e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6950', 'title': 'Introduce config.action_mailer.default_from='}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6948', 'title': 'remove test/dummy from gitignore when "plugin new -T"'}, {'body': 'Just fixing some simple hash syntax stuff in the Rails template generators.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/904e37d005ddd0d08bd846b2a01377ee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6947', 'title': 'Update using Ruby 1.9 hash syntax'}, {'body': "By marshalling and unmarshalling jobs when adding them to the test queue, we can ensure that jobs created during test runs are valid candidates for marshalling, and, thus, that they can be used with queueing backends other than the default simple in-process implementation.\n\nAs Rails::Queueing::Queue (and TestQueue) are not marshallable, this ensures that a queued job does not contain a reference to the queue itself.\n\nThis establishes marshallability and a constrained object graph as a standard expectation for jobs, which is, I think, a reasonable expectation. Where an application explicitly does not care about this, authors are free to configure a different test queue implementation in the application's test environment.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2abf5beb51d5d66211d525a72c5cb39d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6946', 'title': 'Ensure that queued jobs are marshallable'}, {'body': "Here's a test case and fix for issue #687.\n\nThe problem only exists when the evaluating block expressions.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d337e2cf7c6d03caac6988d83e0e7f66?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6943', 'title': "Don't HTML escape ActionMailer plaintext templates"}, {'body': 'Similar to transform_keys i have added transform_vaules function\n\nFor example, we need read year and month option from params and set to DateTime#change method, with transform values we can use \n \n DateTime.now.change params.symbolize_keys.slice(:year, :month).transform_values(&:to_i)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5e083b9550b21448a93a5ce4f2f5251e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6942', 'title': 'Added transform_values function to activesupport hash extension'}, {'body': 'The issue I encountered was that Rails mountable engines didn\'t work\ncorrectly with SASS and the Asset Pipeline.\n\nIn my testcase, I have an engine that specifies some asset gem in its `foo.gemspec`. In the `lib/foo/engine.rb` it requires the gem. Then `application.css.scss` did:\n\n @import \'file_from_gem\';\n\nThat file would not be able to be found when trying out the engine\nusing the dummy application (`cd test/dummy && rails server`).\n\nIt *would* all work fine when the engine is tried out using a "full" Rails application as generated with `rails new fullapp`. Going over the diff between the generated test dummy and the full app, I found that changing the `Bundler.require` statement in `config/application.rb` fixed the issue, even though I\'m not completely sure why.\n\nTL;DR: The change in this commit fixes that @import statements that load css found in gems work correctly in the generated `test/dummy` application for Rails engines.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dfb445c996da29c8bd3856e900a6576a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6941', 'title': 'Generate a complete Bundler.require(...) statement for plugins'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6940', 'title': 'observer update refactoring'}, {'body': 'with this change root has always one assignment', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6938', 'title': 'small refactoring of as_json method'}, {'body': 'There exists no way to zero out counter caches other than to iterate over every record and call #reset_counters. This commit adds a #zero_counter method that zeros out the supplied counter.\n\n`Usage: Topic.zero_counter(:replies)`', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/36b068878026b17caaae630ff10940e1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6937', 'title': 'Adds zero_counter method for zeroing out counter caches'}, {'body': 'This commit allows a user to do something like:\n```ruby\n before_validation :do_stuff, :on => [ :create, :update ]\n after_validation :do_more, :on => [ :create, :update ]\n```\n\nThis addresses issue #6744.\n\nThis also uses the unit tests from mandrews/rails/@0f115f4012779ec8691d2c20ad3be8033861c1b0\n(lightly modified) ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e91cde3a493c5c5828c70b1af0b74099?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6936', 'title': 'Fix collisions with before and after validation callbacks.'}, {'body': 'Fix bug with autosave collection association on new record with a marked\nfor destroy record in autosave collection.\n\nFixes #6918.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6935', 'title': 'Backport #3329 to 3-2-stable'}, {'body': "If an attribute isn't modified, I think we shouldn't mark the store as changed.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6934', 'title': "Don't mark the store as changed if an attribute isn't changed."}, {'body': "It has always bugged me that there is a backtick here and not a single quote\nand that one ArgumentError has single quotes and not the other.\n\nI know it's a silly little change but it seems inconsistent enough to me to fix.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6927', 'title': 'Made ArgumentErrors consistent.'}, {'body': "I wasn't certain if doing conditional `undef`s in the actual source was OK or if this stuff should be done on the objects in the test suite. If the later please say so and I'll update the PR.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6923', 'title': 'Fixed a few method redefine warnings'}, {'body': 'Add references schema statements.\n\nExamples:\n\n add_reference :products, :supplier, polymorphic: true, index: true\n remove_reference :products, :supplier\n\n`add_belongs_to`, `remove_reference` and `remove_references` are\nacceptable. `add_reference` is reversible.\n\nRelies on #6914', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6920', 'title': 'Reference statements'}, {'body': '...4aaf0ae309bf410e2b786c4e3f6', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37fb5d7247d26fbd3ae3fff62de978c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6919', 'title': 'making file name and class name consistant'}, {'body': 'This is just a clean merge of #6162 which references #3165 from @isaacsanders.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f7b2fe18bb8705a677051523cf62d30f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6916', 'title': 'Fixed merge: Model.select takes a variable list of arguments'}, {'body': 'and rename column test', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6914', 'title': 'Refactor migration test_helper'}, {'body': 'Default and null options', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6913', 'title': 'Add more options to column_exists? method'}, {'body': "Sometimes mtime in files can be wrong (e.g. when you change your local time in travel or on other reasons). In this case code reload in rails don't work at all. This is very frustrating.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/be74c8f8958cafb02ea319768e98daa4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6911', 'title': 'Bug with FileUpdateChecker with wrong mtime'}, {'body': 'When Rails::Paths::Root\'s []= is used to replace a path it should persist the previous path\'s glob. Without passing the glob along we get gnarly bugs when trying to wire up things like engines.\n\n/cc @josevalim\n______\nFrom rails/engine.rb docs:\n```\n# class MyEngine < Rails::Engine\n# paths["app/controllers"] = "lib/controllers"\n# end\n```\nThis works great. but if you did the same with something that was configured with a glob, like app/initializers, you get errors like this:\n\n```\nlib/active_support/dependencies.rb:245:in `load\': cannot load such file -- /Users/nick/Desktop/foo_engine/lib/foo_engine/initializers (LoadError)\n```\n\n``` ruby\nmodule FooEngine\n class Engine < ::Rails::Engine\n isolate_namespace FooEngine\n\n config.paths[\'config/initializers\'] = "lib/foo_engine/initializers"\n end\nend\n\n# Before the initializer override:\n>> FooEngine::Engine.config.paths["config/initializers"].glob\n=> "**/*.rb"\n\n# After the initializer override:\n>> FooEngine::Engine.config.paths["config/initializers"].glob\n=> nil\n```\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7ba6774b23fa1992e2363b50f1bc7808?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6910', 'title': 'Persist glob when replacing a path'}, {'body': 'as discussed, removing AV::Base.prepare.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0fe13386ba69a128e9fadc19ae9d96be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6908', 'title': 'Av prepare2'}, {'body': 'Since fda24312d3, we have collation support for PostgreSQL.\nThus I extracted collation task implementation to database tasks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6906', 'title': 'Extract collation tasks to database tasks.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6905', 'title': 'Added a changelog entry about fda24312d3.'}, {'body': 'This was requested by @wycats in Rails-core mailing list (https://groups.google.com/forum/#!msg/rubyonrails-core/MhbmIeHBURU/EiXenlob1okJ)\n\n```\nactivemodel is used for ActiveModel::Naming for a few, mostly optional aspects of ActionPack related to automatically converting an ActiveModel compliant object into a key for params and routing. It uses only two methods of ActiveModel (ActiveModel::Naming.route_key and ActiveModel::Naming.param_key). I think we should remove this dependency, as the point of the ActiveModel API refactor in Rails 3 was to allow *any* object to work in AP. Additionally, only a few areas of the code use even the ActiveModel API.\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6904', 'title': 'Remove ActiveModel dependency from ActionPack'}, {'body': 'memcache-client was deprecated in favour of dalli in 2010.\n\nThe purpose of this PR is offer a better upgrade path for current users of mem_cache_store as was suggested by @jeremy (https://github.com/rails/rails/pull/6296#issuecomment-5754159)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/73d57855a3bfe5c534596197a895ab6e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6903', 'title': 'Replace deprecated `memcache-client` gem with `dalli` in ActiveSupport::Cache::MemCacheStore'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6902', 'title': 'fix ActionMailer::Async docs and update to follow coding conventions'}, {'body': 'Missing dependency as described in #6898', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37fbd4d6899a4a1c5e36b4011d4dad30?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6900', 'title': 'Require URI in ConnectionSpecification'}, {'body': 'Since PostgreSQL 8.4, Collate and Ctype options are supported when creating database.\n\nPlease see also http://www.postgresql.jp/document/9.1/html/sql-createdatabase.html.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6895', 'title': 'Support collate for postgresql'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8d1c64e90229ca99fbb1002c1b0dcc8a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6894', 'title': 'fixing typo in active record from method'}, {'body': "Some cleanup on multiparameter attributes assignment, it's not an easy code to follow and maintain. I've basically cleaned up some code, and moved the *instantiation* code to a `MultiparameterAttribute` class to avoid passing arguments here and there.\n\nI'm opening as a pull request now to ask for some feedback/review, and to allow inline comments if necessary. In case it's ok I plan to merge and continue the work later.\n\nAny feedback is welcome, thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/77237b97a465ae5a293ad323b7296837?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6893', 'title': 'Multiparameter attributes refactoring'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6890', 'title': 'Skip test_setting_time_attribute for Oracle database'}, {'body': 'Add an optional parameter to blank? method, which is returned when self is blank.\n\nA little sugar to be more DRY:\n\n a = b["foo"]["bar"]["stuff"].blank? ? b["foo"]["stuff"] : b["foo"]["bar"]["stuff"]\n\nbecomes\n\n a = b["foo"]["bar"]["stuff"].blank? b["foo"]["stuff"]\n\nWe could use try() also, but I don\'t know which is the best. Maybe both would be good ?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d23ec6b59ff23f7ffb9e99d0ec5b5a2d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6888', 'title': 'Add an optional parameter to blank? method'}, {'body': 'See https://gist.github.com/3007749 for justification', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/602f1b8ccf99dc47c43da83d53b4ffd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6886', 'title': 'Speed up Hash#transform_keys using Hash#each_key'}, {'body': "SQLite doesn't support `time` columns, a warning should be issued to keep people out of trouble.\n\nRelates to #6344.\n\nFeedback is, as always, appreciated.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6883', 'title': 'Add warnings for SQLite time column.'}, {'body': "sorry, I had some mistakes.\nI think they are individual commits, but if we should squash these, I'll update.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6880', 'title': 'Fix wrong commits. I had mistakes.'}, {'body': "This pull request addresses a test_basic_model test error with Oracle enhanced adapter which ids start from 1000 as a default.\n\nThis fix has been tested with sqlite3, mysql, mysql2 and postgresql adapters.\n\n```ruby\n$ cd activerecord\n$ ARCONN=oracle ruby -Itest test/cases/inclusion_test.rb -n test_basic_model\nUsing oracle\nRun options: -n test_basic_model --seed 53307\n\n# Running tests:\n\nE\n\nFinished tests in 0.110588s, 9.0426 tests/s, 0.0000 assertions/s.\n\n 1) Error:\ntest_basic_model(BasicInclusionModelTest):\nActiveRecord::RecordNotFound: Couldn't find Teapot with id=1\n /home/yahonda/git/rails/activerecord/lib/active_record/relation/finder_methods.rb:279:in `find_one'\n /home/yahonda/git/rails/activerecord/lib/active_record/relation/finder_methods.rb:260:in `find_with_ids'\n /home/yahonda/git/rails/activerecord/lib/active_record/relation/finder_methods.rb:38:in `find'\n /home/yahonda/.rvm/gems/ruby-1.9.3-p194@railsmaster/bundler/gems/active_record_deprecated_finders-c5418c5119b3/lib/active_record_deprecated_finders/relation.rb:123:in `find'\n /home/yahonda/git/rails/activerecord/lib/active_record/querying.rb:6:in `find'\n test/cases/inclusion_test.rb:7:in `test_basic_model'\n /home/yahonda/.rvm/gems/ruby-1.9.3-p194@railsmaster/gems/mocha-0.11.4/lib/mocha/integration/mini_test/version_230_to_262.rb:28:in `run'\n /home/yahonda/git/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:37:in `block in run'\n /home/yahonda/git/rails/activesupport/lib/active_support/callbacks.rb:348:in `_run__3118453750921688770__setup__callbacks'\n /home/yahonda/git/rails/activesupport/lib/active_support/callbacks.rb:75:in `run_callbacks'\n /home/yahonda/git/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:36:in `run'\n\n1 tests, 0 assertions, 0 failures, 1 errors, 0 skips\n$\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6879', 'title': 'Address test_basic_model test error with Oracle enhanced adapter'}, {'body': 'fix the bug limit of ENUM returns 0.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d52c8b0a24dfaec053feba8ba4125ac5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6878', 'title': 'fix bug in limit of enum columns of mysql'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d52c8b0a24dfaec053feba8ba4125ac5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6877', 'title': 'Fix bug in limit of enum columns of mysql'}, {'body': 'The previous approach lead to some hard to understand test failures in jRuby.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d813aed3bb5101c436cfd9a428c8ad1f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6876', 'title': 'refactored html_escape method to be safer and better self documenting'}, {'body': 'According to documentation you should be able to pass something like this as a collection:\n```\n[["Dollar", "$", {:class => "bold"}], ["Kroner", "DKK", {:onclick => "alert(\'HI\');"}]]\n```\nbut when you do it from `collection_select` the `:value_method` by default is `:last`.\n\nThis is the first commit from [#hermosillorb](http://hermosillorb.com) group, "\xa1Hola amigos!".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a523eea5c127daa5b5e3f9e7499d16b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6875', 'title': 'Collection select not accepting hash at the end'}, {'body': 'Does it make sense to rename the default primary key sequence when a table is renamed?\n\nAs it is, if I ```rename_table :foo, :bar```, I end up with a table named "bar" whose id column is incremented by a sequence named "foo_id_seq". The names being out of sync complicates things when multiple DB users are used in production (e.g. one user for migrations and one user for app connections) and permissions need to be applied to tables and their associated sequences.\n\nAttached is proposed crazy sauce which renames the primary key sequence if its name matches the default PK sequence created by the adapter.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6340bd48e9f1248c6344d3008c0a08d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6874', 'title': 'Rename default sequence when table is renamed? [AR:postgres]'}, {'body': 'The current implementation on Rails is not capable of handling an object with time only, it only allows you to create an object with both time and date, which isn\'t really nice as you can create a time only column in almost all database systems.\n\nThis fix adds support for time only object creation (if the column is created as :time) by using Ruby\'s Time object. The date fields will default to "January 1, 1970" since Ruby doesn\'t have an object for time only. Implementation also includes specs showing what\'s the correct behavior and also a failure if you try to create a time only object of a column of type datetime.\n\nThis pull request fixes issue #6825.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a91bd6cef23eb3516245a092e196c4da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6873', 'title': 'Fixes #6825, adds tests covering cases and error possibilities'}, {'body': '...ch test starts with a clean slate.\n\nFixes #6867.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6870', 'title': 'Setup each test with default ActiveRecord timezone settings to ensure ea...'}, {'body': 'Before this gets rejected outright I would like to have a conversation.\n\nI submit that the harm of hiding the ActiveRelation object outweighs any benefit gained in the Rails console with having the object inspect `#to_a`\n\nI know others feel the same way, I believe it is not worth the hassle of trying to dig into the Relation object to find out what is going on and just have it return that relation.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6869', 'title': 'Remove ActiveRelation#inspect'}, {'body': '#### WHAT\n\nAvoid creating many throwaway `String` and `Regexp` objects while using ActiveSupport\'s inflections.\n\n#### WHY\n\nBoth the `pluralize` and `singularize` methods are widely used in Rails (`AssetTagHelper` is a good example). They both call `apply_inflections`, which first tries to match against every `uncountables`, cycling thru and creating a new `Regexp` and `String` for each `uncountable`. \n\n#### HOW\n\nThis patch seemed to be the simplest solution to caching `uncountable` regexp\'s that I could write. Here is the memprof and benchmark before the patch (w/1.8.7 REE):\n\n```\nMemprof.track { 1000.times { "hey".pluralize } }\n 9000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:312:String\n 9000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:312:Regexp\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:315:__unknown__\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:315:String\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:315:MatchData\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:312:__node__\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:310:String\n 1000 (irb):1:String\n 1 (irb):1:__varmap__\n\nBenchmark.ms { 1000.times { "hey".pluralize } }\n => 100.382089614868 \n```\n\nAnd after the patch:\n\n```\nMemprof.track { 1000.times { "hey".pluralize } }\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:318:__unknown__\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:318:String\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:318:MatchData\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:315:__node__\n 1000 /.../activesupport-3.2.6/lib/active_support/inflector/methods.rb:313:String\n 1000 (irb):3:String\n 1 (irb):3:__varmap__\n\nBenchmark.ms { 1000.times { "hey".pluralize } }\n => 51.4700412750244 \n```\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f86911c918d9c3eb1644189a50d74ccb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6864', 'title': 'ActiveSupport::Inflector optimization: minimize objects created'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6863', 'title': 'Guide update for Async ActionMailer'}, {'body': 'Deprecate usage of filter object with #before and #after\nmethods as around callback.\n\nThere is some code monkey patches objects passed to `set_callback` method. This should never happen.\nThe only one usage of this is found in `ActionController::Caching::Sweeper` which is easy to fix.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6859', 'title': 'AS::Callbacks: deprecate monkey patch code'}, {'body': 'the method has gone in this commit: 119e9e2dafb0cdc5b85613b730333679aef534af', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6858', 'title': ':update_details method no more exists on @lookup_context'}, {'body': "If you selectively require core_exts (e.g., `require 'active_support/core_ext/string'`), it is possible for\n`active_support/core_ext/time/calculations` to be required when `ActiveSupport::TimeWithZone` is not available. If this happens, the next call to `Time.=== will` fail with a `NameError`. This pull fixes this issue.\n\nThen nature of this problem is not amenable to unit testing, but I can provide a [script][gist] which demonstrates the problem.\n\nThis bug was introduced in Rails 3.2.4 and is present in 3.2.5, 3.2.6, 3-2-stable, and master.\n\n[gist]: https://gist.github.com/2990831/", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/292ea489740972fd2437b28bbfbccac8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6857', 'title': 'Missing require breaks Time.=== when selectively loading ActiveSupport core_exts in 3.2.4+'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5187030ec0cd68b5026199e9e4054dda?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6856', 'title': 'Add polymorphic option to model generator'}, {'body': "sorry, tiny commits.\n\nI've seen around the database task a few day.\nI noticed this had some no good codes (consistency, global method ...and more).\nI've tried to fix these problem before trying #5547, #6648 and some improvements.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6855', 'title': 'Refactor and improve database tasks.'}, {'body': 'Within an engine mounted in a dynamic scope, I\'m trying to make an link to the same action but another scope (ie. changing the dynamic part of the scope) and it doesn\'t work.\n\nI need this to build a link to the current page in another locale. The scope defines the locale, and the current page is handled by the engine.\n\nI wrote a failing test to demonstrate the current behavior, which doesn\'t work. Rails generates an URL with the new scope in the query string, and the old scope in the path.\n\nIs there another way to change the dynamic scope inside the engine ?\nOr is this a bug that should be fixed ?\n\nThe output is:\n"/more-awesomeness/blog/link_to_another_scope" expected but was\n"/some-awesomeness/blog/link_to_another_scope?omg=more-awesomeness"\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/352f3b19dfbfc17e7f7498dc2f658cac?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6854', 'title': 'Changing scope in a mounted engine'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6853', 'title': 'add :nodoc: to internal implementations [ci skip]'}, {'body': 'The line number for the reader method is off by one due to the local variable `line` being reassigned to the writer\'s line.\n\nThis commit would provide correct line numbers for backtraces and method introspection (for example, `method(:reader).source_location`).\n\nI apologize in advance for the brevity of this commit -- I am submitting this from a phone using GitHub\'s "Edit this file" feature.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c69aac6da04a0bd37d2d4f5e3aa678e3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6847', 'title': 'correct line numbers for reader and writer methods'}, {'body': "Execute_grouped_calculation is one of those places where\nActiveRecord forgets that it has ARel underpinnings, and\nassumes that the values provided to group_values are\nstrings. This artificially hobbles otherwise functional\ncode. This patch stops assuming that incoming values\nrespond to to_sym, stops using string interpolation for\ntable aliases on objects that support aliasing, and stops\nunnecessarily joining group_values on the relation.\n\nAdditionally, it calls to_sql, if available, on objects\nsent to column_alias_for, in order to get a more reasonable\nalias string than a non-string's default to_str method.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6842', 'title': 'Stop assuming strings for grouped calculations'}, {'body': "Execute_grouped_calculation is one of those places where\nActiveRecord forgets that it has ARel underpinnings, and\nassumes that the values provided to group_values are\nstrings. This artificially hobbles otherwise functional\ncode. This patch stops assuming that incoming values\nrespond to to_sym, stops using string interpolation for\ntable aliases on objects that support aliasing, and stops\nunnecessarily joining group_values on the relation.\n\nAdditionally, it calls `to_sql`, if available, on objects\nsent to column_alias_for, in order to get a more reasonable\nalias string than a non-string's default to_str method.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6841', 'title': 'Stop assuming strings for grouped calculations'}, {'body': 'Adds support for ActionMailer to push messages to the Rails Queueing system and deliver async', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6839', 'title': 'Async actionmailer'}, {'body': "If we want to add a database tasks (e.g. OracleDatabaseTasks) by external gems, according to the current implementation, we can't do it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6838', 'title': 'Added a feature to add a database task. e.g. OracleDatabaseTasks'}, {'body': 'I think the tasks tests should be moved to under the tasks dir.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6837', 'title': '\u3010Active Record\u3011 Move tasks(rake) tests to under the tasks dir.'}, {'body': 'I prefer generated ruby code with ruby 1.9 hash syntax.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/13c60e2a5806406b537daa542d3495da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6836', 'title': 'Ruby 1.9 hash syntax for generated code'}, {'body': 'The current implementation on Rails is not capable of handling an object with **time only**, it only allows you to create an object with both time **and** date, which isn\'t really nice as you can create a **time only** column in almost all database systems.\n\nThis fix adds support for time only object creation (if the column is created as **:time**) by using Ruby\'s Time object. The date fields will default to "January 1, 1970" since Ruby doesn\'t have an object for time only. Implementation also includes specs showing what\'s the correct behavior and also a failure if you try to create a time only object of a column of type datetime.\n\nThis pull request fixes issue #6825.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a91bd6cef23eb3516245a092e196c4da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6835', 'title': 'Fixes #6825, adds tests covering cases and error possibilities'}, {'body': 'By some reasons, if someone will put these options in javascript_include_tag or stylesheet_link_tag it will\ncause strange errors (when sprockets is enable for app). For me it took about work day to detect what exactly happened.\n\nYou can easy reproduce the error: just create new rails 3.2 app, generate simple controller with one action, specify root action in routes and add :cache => true, :cache => "foo" or :concat => "foo" to the end of any javascript_include_tag or stylesheet_link_tag helpers.\n\nI am in the middle of migrating 2.3.x app to 3.2.x for my current project, so I have a lot of legacy :cache options. Unfortunately current exception is too hard to undersand situation for developers, without spending time to debugging Rails. \n\nI suggest to ignore :cache and :concat options for js and css sprockets tag helpers (like I have done). Also I think that sprockets may detect these options and say something (for example it can show warning). \n\nIf something wrong in my commit let me know and I will fix it asap. Hope it will help someone.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5cfb39bb33ec98fae943b5bfcb90b389?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6834', 'title': 'Sprockets should ignore :cache and :concat options'}, {'body': 'Currently specifying an environment name when DATABASE_URL is present\nprevents a sucessful connection. Passing a string such as "production"\ncauses DATABASE_URL to be ignored because\nActiveRecord::Base.establish_connection only uses it if no name is\npassed, but database.yml isn\'t loaded by the initializer if DATABASE_URL\nis defined.\n\nThis change causes the resolver to use DATABASE_URL instead of failing\non an unusable environment name without breaking the ability to\npass a valid url in a string.\n\nAmong other things, this fixes rake db:fixtures:load on Heroku Cedar.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/387ec488a7ef3282e7800de41a799d59?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6833', 'title': "Ensure DATABASE_URL is not ignored when database.yml isn't loaded"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6832', 'title': 'add :nodoc: to internal implementations [ci skip]'}, {'body': 'ActiveRecord model constructors accept a hash of parameters which are used to invoke the corresponding attribute writer methods. Attribute writers are privately invoked with #send, but they are first screened with #respond_to? to avoid invoking private methods. This precludes the common practice of encapsulating members by allowing them to be initialized at construction but not reassigned after construction.\n\nThis patch enables the constructor to invoke private attribute writers by accepting an additional option (:with_private) along with the options which are used to control mass-assignment protection.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d856d2ac977eebd19b55bc4cbd7cf9a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6831', 'title': 'Support initialization of private attributes'}, {'body': "Warn users in cases where they have named a scope the same as an Array instance method. Delegation gives precedence to Arrays, so it could confuse the developer as to why their scope is never evaluated.\n\nThe following example illustrates this problem:\n\n```ruby\nclass Foo < ActiveRecord::Base\n def self.reverse\n order(:id => 'desc')\n end\nend\n```\n\nWhen we call:\n\n```ruby\nFoo.scoped.reverse\n```\n\nThe scope is evaluated to an array and reverse is called on that array. The class method on Foo is never evaluated.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/75a9dbc77613323e74f66e8ed848eafd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6830', 'title': 'Warn on name collisions between Array instance methods and base class methods'}, {'body': 'The keys of the error messages are actually attribute names. It makes\nthe documentation easier to understand:\n\n # Returns +true+ if the error messages include an error for the given\n # +attribute+, +false+ otherwise.\n #\n # person.errors.messages # => { :name => ["can not be nil"] }\n # person.errors.include?(:name) # => true\n # person.errors.include?(:age) # => false\n def include?(attribute)\n (v = messages[attribute]) && v.any?\n end', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6829', 'title': 'change param name to improve documentation'}, {'body': 'This allows us to mark the parent object as invalid if all associated objects\nin a presence validated association are marked for destruction.\n\nSee: #6812', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d541b1a02e460eb197c163092fb60781?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6827', 'title': 'Validates_presence_of associated object marked for destruction'}, {'body': 'Move all helper and routes logic into the AbstractController instead of letting the view decide which modules to include.\n\nThis is another step in decoupling view and controller.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0fe13386ba69a128e9fadc19ae9d96be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6826', 'title': 'Simplify AV.prepare'}, {'body': "I find myself looking at the ActiveSupport [Hash#extract! documentation](http://api.rubyonrails.org/classes/Hash.html#method-i-extract-21) over and over, wishing it didn't modify the original hash. Of course, I simply forget that [#slice](http://api.rubyonrails.org/classes/Hash.html#method-i-slice) is available, but I figure I'm not the only one missing this.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5e6ceef905d14ade228ea22c445d57bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6824', 'title': 'alias Hash#slice as #extract'}, {'body': "Previous calculation was simple, but not correct when leap seconds get\ninvolved. Implemented 'Seconds Since the Epoch' according to 'Single\nUnix Specification'.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b5009f255a6f0c386d40d6143948df8e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6823', 'title': 'Fix calculation of seconds since epoch'}, {'body': 'With this pr, the documentation of ActiveModel::AttributeMethods is covered :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6822', 'title': 'add :nodoc: to ActiveModel::AttributeMethods#attribute_method?'}, {'body': "This patch addresses the difficulty of retrieving datetime fields. By default, the database holds a higher precision than the time as a String. Currently there isn't a sensible way to specify a precision on timestamp fields. \n\nHowever, you are able to get postgres to accept a precision by sending along a :limit option from ActiveRecord. This commit is an attempt to swap that responsibility with :precision, as I think it was intended.\n\nThis issue is discussed at length at the following links:\n- [#3519](https://github.com/rails/rails/issues/3519)\n- [#3520](https://github.com/rails/rails/issues/3520)\n\nAlso, kudos to @mattscilipoti for pointing it out in the above issues.\n\nThanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5f2d06be136bf5fb34da25f62afefae7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6821', 'title': 'Allow precision option for postgresql datetimes'}, {'body': 'This patch is to remove a default from ActiveSupport\'s inflections. The\ncurrent default of words ending in "fe" to be pluralized as "ves" is\nstrange in that this is a grammatical exception rather than the rule.\nThe conversion of "f" to "ve" in pluralization is not as common as the\ncase of simply adding the "s" and, when the exception does occur, should\nwe really care? I believe it can end up causing more confusion than anything\nelse. Aside from words like "half" (which was covered in the same rule\nbut with a different regex case), or the words "life" (and perhaps "knife" for Chef\nusers), I am unsure as to why people would need to pluralize these words. I\nwould be open to discussion on what other words should be added to the list\nof irregulars, but when is the last time you saw `has_many :wives`?\n\nSigned-off-by: David Celis ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b0144a16ba125a94460c5d45f07efb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6820', 'title': 'Remove the default "f" => "ve" plural inflection.'}, {'body': '... [ci skip]', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6818', 'title': 'add :nodoc: to AM::AttributeMethods#instance_method_already_implemented?...'}, {'body': 'We have `attribute_method_prefix`, `attribute_method_suffix` and `attribute_method_affix`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6815', 'title': 'add :nodoc: to AM::AttributeMethods::AttributeMethodMatcher'}, {'body': '- Correctly shows a noun article e.g. \'a\' or \'an\'.\n\n `"apple".articleize #=> "an apple"`\n `"daffodil".articleize #=> "a daffodil"`', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d759f33a47c4ee95df9276a625664a8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6813', 'title': "Added inflector method 'articleize'"}, {'body': '1. Change in test name as already defined.\n2. ambiguous first argument; put parentheses or \neven spaces', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6808', 'title': 'Removed warnings.'}, {'body': 'This is a follow up to #4719. It appears that singularize and pluralize are supposed to be idempotent - i.e. when you call singularize or pluralize multiple times on the same string, you should get the same result. (At least for the "officially supported" cases that the stock inflector is designed to handle.) #4719 added the missing tests for regular cases, and this commit added the missing tests for the irregularities.\n\nWhile I\'m at that, I also synced up the irregularity test cases with the current set of irregularity cases that we ship out-of-the-box.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6806', 'title': 'Inflector: Added missing tests cases to ensure idempotency of singularize and pluralize'}, {'body': "To test uploading a file without using fixture_file_upload, a posted ActionDispatch::Http::UploadedFile should not be paramified (just like Rack::Test::UploadedFile).\n(Rack::Test::UploadedFile and ActionDispatch::Http::UploadedFile don't share the same API, tempfile is not \naccessible on Rack::Test::UploadedFile as discussed in https://github.com/brynary/rack-test/issues/30)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5a8c34e4e2dd183810ea5e047cc821e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6805', 'title': "Don't paramify ActionDispatch::Http::UploadedFile in tests"}, {'body': 'delete *column* because is unused by the method.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6804', 'title': 'changed the firm of changes_from_zero_to_string?'}, {'body': 'I wanted to know if a string was plural or singular, so I added string extensions.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e5652f125c081a164dc8cd49ac125bd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6802', 'title': 'plural? and singular? methods for String'}, {'body': 'Currently, ActiveSupport\'s ```class_attribute``` method allows for specification of class-level attributes that also propagate down to instances of a given class. However, when there is no value explicitly defined, methods defined by ```class_attribute``` return nil. In most circumstances this is okay, however, if you\'re implementing a pseudo-abstract class, it is probably better to raise a NotImplementedError than return nil if this method gets called on the abstract class.

Current behavior is as follows:

```ruby
class Foo
class_attribute :bar
end

class Baz < Foo
end

class Qux < Foo
self.bar = \'quux\'
end

puts Foo.bar.inspect #=> nil
puts Baz.bar.inspect #=> nil
puts Qux.bar.inspect #=> "quux"
puts Foo.new.bar.inspect #=> nil
puts Baz.new.bar.inspect #=> nil
puts Qux.new.bar.inspect #=> "quux"
```

I propose that the following behavior be supported:

```ruby
class Foo
class_attribute :bar, :default => lambda do |attribute|
raise NotImplementedError.new("#{attribute} is undefined")
end
end

class Baz < Foo
end

class Qux < Foo
self.bar = \'quux\'
end

puts Foo.bar.inspect # raises error
puts Baz.bar.inspect # raises error
puts Qux.bar.inspect #=> "quux"
puts Foo.new.bar.inspect #=> raises error
puts Baz.new.bar.inspect #=> raises error
puts Qux.new.bar.inspect #=> "quux"
```

By allowing ```class_attribute``` to take a default lambda (and perhaps a raw value), classes can cleanly implement abstract values in a generic fashion. Of course, if ```:default``` isn\'t provided, the behavior would not change; thus, backward compatibility would be ensured.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/760f05cfef0021cfd2b3dd969579c4c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/4933', 'title': 'Fallback behavior for class_attribute'}, {'body': "Currently, if we send an email and use the implicit template with it but not template exists, nothing fails.\nI don't think that's the behavior usually intended.\n\nThis will raise an `ActionView::MissingTemplate` in that case.\nIt already occurs like this when rendering an explicit template.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6fa1cdda524d49996a8bc6917328de3d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6801', 'title': 'Mailer with no implicit template'}, {'body': "previously dynamic finders only worked in combination with the actual column name and not it's alias defined with #alias_attribute", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6fcf10b07508fa819e43598a9364016?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6800', 'title': 'Dynamic finders for aliased attributes'}, {'body': "Sorry, it's tiny refactor again.\n\nThe codes are repeated, and I love DRY.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6799', 'title': "Refactor testcase codes. It's repeated."}, {'body': '\uff0b tiny refactor (remove duplicated codes)\n\nrelated to #6782', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6798', 'title': 'Refactor db:structure:load task.'}, {'body': 'Rails does not check the length of the value of normal and permanent cookies, just signed cookies. This pull request changes this, so all cookies are checked.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ebecfa2fcf3adda56063f996b79ca6b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6796', 'title': 'Check cookie overflow'}, {'body': "Rails doesn't check the size of normal and permanent cookies. Only the size of signed cookies is checked. This pull request changes that, so every cookie size is checked as documented.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ebecfa2fcf3adda56063f996b79ca6b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6795', 'title': 'Check cookie overflow'}, {'body': 'Corrects the AP test\u3002/cc @tenderlove', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e8f6a5f8b9e4096de0e583b64ea2a9fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6789', 'title': 'Correct the AP test\u3002'}, {'body': '...cludeTag', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6787', 'title': 'add :nodoc: to AV StylesheetIncludeTag, JavascriptIncludeTag and AssetIn...'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6785', 'title': "Rename testcase name. It's wrong in the context."}, {'body': 'A very small change that removes what I consider a duplicate test.\n\nComments welcome.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b09d62315dbafc471538dd71d404ad48?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6784', 'title': 'Remove extra test case.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6783', 'title': 'Rename MySQLTestPurge to MySQLPurgeTest for consistency.'}, {'body': "I'm also inspired by #6761. I've moved the logic for db:structure:dump into the task classes.\n\nFYI: I'm trying to solve #5547, and #6648 was my first PR for this problem.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6782', 'title': 'Refactor db:structure:dump task.'}, {'body': 'A bare-bones proposal to support a PUT request on resources:\n\nPUT /photos\n\nThis would result in a call to PhotosController#map. The purpose of this is to create a new convention for bulk updates on collections. The obvious corresponding database action would be update_all.\n\nThis implementation is by no means complete and only meant as a starting point for discussion. \nSuggestions and comments are welcome.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/150b7dfb3c10c343999c41183f3253cd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6780', 'title': 'Map (PUT) action for resourceful routes'}, {'body': "In the spirit of #6761 I've moved the logic for db:charset into the task classes.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/46fd60ea4dde74f3d46fcfd27ed700bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6779', 'title': 'Refactor db:charset task'}, {'body': "This is cherry-picked test for the master branch that I've done here #6649", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6777', 'title': "Added test for case when view doesn't have logger method when using Acti..."}, {'body': '### Scenario\n\nA developer added a before_filter that did: `response.headers[\'Cache-Control\'] = \'no-transform\'` in order to avoid mobile carriers from making invalid modifications to content.\n\n### Issues\n\nexpires_* calls were no longer applied (see commit details), and as such, Rack::Cache begun caching all mobile renders.\n\n### Arguments\n\nIt may be considered that setting only "no-transform" should result in the above behavior. I would stand by this view point, to a large extent, but many developers find these areas confusing. During investigating the root causes, additional bugs or at least vague semantics were found that were also addressed. It can be argued that the commit aligns a little better with the documentation, and applies some notion of POLS, whereby Rails calls / data structures are authoritative. An alternative POLS for many developers may be that the "last modification to Cache-Control should win", in which case this is still a violation if the header is modified after expires_in in a conflicting way.\n\n### Extended commit message:\n\nThere are several aspects to this commit, that don\'t well fit into broken down\ncommits, so they are detailed here:\n\n * When a user uses response.headers[\'Cache-Control\'] = some_value, then the\n documented convention in ConditionalGet is not adhered to, in this case,\n response.cache_control is ignored due to `return if\n self[CACHE_CONTROL].present?`\n * When a middleware sets cache-control headers that would clobber, they\'re\n converted to symbols directly, without underscores. This would lead to bugs.\n * Items that would live in :extras if set through expires_in, are placed\n directly in the @cache_control hash, and not respected in many cases\n (somewhat adhering to the aforementioned documentation).\n * Although quite useless, any directive named \'extras\' would be ignored.\n\nThe general convention applied is that `expires_*` take precedence, but no longer\noverwrite everything and `expires_*` are ALWAYS applied, even if the header is\nset.\n\nI am still unhappy about the contents of this commit, and the code in general.\nIdeally it should be refactored to no longer use :extras. I\'d likely recommend\nexpanding @cache_control into a class, and giving it the power to handle the\nmerge in a more efficient fashion. Such a commit would be a larger change that\ncould have additional semantic changes for other libraries unless they utilize\nexpires_in in very standard ways.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b19b02a49b433c9e2e6e6c43785d2bfb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6776', 'title': 'Ensure that cache-control headers are merged'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e8f6a5f8b9e4096de0e583b64ea2a9fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6775', 'title': 'make events not use date and time to determine parent_of. fixes #5932'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6772', 'title': ' ORA-02289: sequence does not exist for `SELECT "BLACK_JOKES_SEQ".NEXTVAL FROM dual`'}, {'body': "Example: let's say that we need to apply two migration on production. First one delete unused column A. Second one does complicated data migration that failed during migration. In this case source code will be rollback to previous working version, but only the last migration got reverted. Production will run previous working version of source code that expects column A to exists, but it is not.\n\nThe thing that ActiveRecord::Migrator rollbacks only last applied migration will create inconsistency between data and code. It could be sensitive in some cases in production mode.\n\nThis patch applies all migrations under same ddl transaction if it is supported by database, so that Database state and source code are always consistent.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6768', 'title': 'AR::Migration#migrate: apply all migration under same DDL transaction'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6767', 'title': 'Fix build: fix invalid syntax and sqlite rake failing tests'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6766', 'title': 'add :nodoc: to AR::Tasks and update to follow the coding conventions'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6765', 'title': 'Fix build: check if sqlite3 file exists before remove'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6764', 'title': 'bump AS deprecation_horizon to 4.0'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6762', 'title': 'bump AS deprecation_horizon to 4.1'}, {'body': "Right now, this is a work in progress. I'm pushing it here for a few reasons:\n\n* Feedback before I get too carried away is welcome.\n* Everyone gets a little more visibility of how (I think) rake tasks should be approached.\n* I'm short of time, so others may wish to contribute (and if so, get in touch).\n\nBut as to what's happening in these commits, essentially:\n\n* I want to get every single rake task that has a db prefix down to a single line of code\n* All the logic ends up in classes and objects.\n* Easier to read, easier to maintain, easier to test, easier to reuse.\n* Currently, I've done this for db:create, db:drop, db:create:all and db:drop:all.\n* My plan is for adapter-specific tasks to end up in DatabaseTasks, but then there'll also be MigrationTasks, SchemaTasks, FixturesTasks, TestTasks, and maybe one or two others.\n\nAnd finally, my questions for right now:\n\n* Does anyone want to help?\n* Core committers, would something like this get accepted, or am I wasting my time?\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/29f82ebe1801087f04de6aaae92e19ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6761', 'title': 'Get logic out of db rake tasks, and into classes and objects'}, {'body': "bump tzinfo gem.\n\n[Updated] This PR is going to bump only tzinfo gem.\n\nFYI: I tried to bump journey too, but I couldn't do it. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6760', 'title': 'Bump tzinfo gem.'}, {'body': 'Non-`StandardError` `Exception`s are generally not meant to be caught without re-raising the exception, because they are often unrecoverable errors. I found some instances of these exceptions being unnecessarily caught.\n\nFor reference, here are a list of non-`StandardError` exceptions from a fresh irb session.\n\n```ruby\nObjectSpace.each_object(Class) do |c|\n c < Exception && !(c < StandardError) && puts("#{c.name} < #{c.superclass}")\nend\n```\n```ruby\nGem::LoadError < LoadError\nSystemStackError < Exception\nNoMemoryError < Exception\nSecurityError < Exception\nNotImplementedError < ScriptError\nLoadError < ScriptError\nSyntaxError < ScriptError\nScriptError < Exception\nStandardError < Exception\nInterrupt < SignalException\nSignalException < Exception\nfatal < Exception\nSystemExit < Exception\nGem::SystemExitException < SystemExit\nIRB::Abort < Exception\n```\n\nIf one of the above exceptions does need to be caught, it would make more sense to specify a more specific exception class to catch (e.g. `ScriptError` when dynamically loading scripts). However, the lines I changed didn\'t need to catch serious errors like those listed above.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6af3d9442783aa00ef1e5d7772f997d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6759', 'title': 'Avoid unnecessary catching of Exception instead of StandardError.'}, {'body': 'Hi folks! Currently I have one engine with some migrations.\n\nWhen I run `rake db:schema:load` this task does not assign `ActiveRecord::Migrator.migrations_paths` with the path to migrations in the engine.\n\nThis PR is about to fix this issue. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f31eb518bd835c8e89ec545b8d168644?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6758', 'title': 'Fixing load config in some tasks'}, {'body': 'I\'m not sure if you want rake at 0.8 or 0.9, but I\'ve found "~> 0.8" to be sufficient for everything I\'m doing with it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/16c4b19d8670085a428787f8b2438223?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6757', 'title': 'Fixed gem deps'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6756', 'title': 'Build fix actionpack'}, {'body': 'We removed csv fixture support by https://github.com/rails/rails/commit/1716da07204193c8acf967e2d75a53a82e4c7c28 .\n\nBut db:fixtures:load task try to read csv file yet.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6755', 'title': "Don't read csv file during executing db:fixtures:load."}, {'body': "If we migrate database on postgresql, we have many notice messages: e.g.\n\n```\nNOTICE: CREATE TABLE / PRIMARY KEY will create implicit index\n```\n\nI've already known `min_messages` option, but I guess that many people don't know this option. \nSo I guess we should change default min_messages to `warning`\u3000for convenience.\n\nWDYT?\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6754', 'title': '\u3010PostgreSQL\u3011 Change default minimum log level to warning.'}, {'body': 'make it clearer that subscribers are not notified asynchronously, but saved for later use.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9c098e9e645631061bd1dcb9ac7323d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6753', 'title': 'Documentation: "asynchronously" is misleading here'}, {'body': 'When using compute_source_path to determine the full path of an\nasset, if our source begins with \'/\', we don\'t want to include\nthe directory. Examples are illustrative:\n\n```\ncompute_source_path("foo", "stylesheets", "css")\n# => "/Users/steve/src/my_app/public/stylesheets/foo.css"\ncompute_source_path("/foo", "stylesheets", "css")\n# => "/Users/steve/src/my_app/public/foo.css"\n````\n\nBefore this patch, the second example would return the same as the\nfirst.\n\nFixes #5680.\n\nIf this is accepted, I will also backport to 3.2.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6752', 'title': 'Respect absolute paths in compute_source_path.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f16c5c991a2412243d8d00054e5dab2e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6751', 'title': 'Extend assets cache store section in Assets Pipeline Guide [ci skip]'}, {'body': 'Trivial doc fix.\nThanks', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6748', 'title': 'Fix doc example for dasherize'}, {'body': 'This is currently not possible using `#default` method because\n\n```ruby\nconfig.action_mailer.default(from: "no-replay@example.org")\n```\n\nis interpreated as reader method and just returns nil. It does not call `ActionMailer::Base.default` method. The only way of calling `ActionMailer::Base` methods from `config/application.rb` is to use the direct syntax which is ugly in my opinion:\n\n```ruby\nconfig.assets.enabled = false\nconfig.assets.version = \'1.0\'\nconfig.encoding = "utf-8"\nconfig.action_mailer.default_url_options={host:"example.org", protocol:"https" }\nActionMailer::Base.default(from: "no-replay@example.org")\n```\n\nAlso the `:from` option is probably the same across multiple mailers. Other options like `:to, :subject, :cc, :bcc` etc. differ between mailing templates but `:from` is usually constant. So i think it deserves a simple way for setting it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b81cae1fb43808ac23a2188258ca9e4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6747', 'title': 'Allow to easily set default :from option using railties in config/application.rb'}, {'body': "composed_of is a complicated feature that's rarely used. So let's deprecate it in 3-2 and remove it in master.\n\nRelated: #6742\n\n/cc @jonleighton @tenderlove", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6743', 'title': 'Removing composed_of'}, {'body': "composed_of is a complicated feature that's rarely used. So let's deprecate it. And remove it in Rails 4.\n\nRelated: #6743\n\n/cc @jonleighton @tenderlove", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6742', 'title': 'Deprecate composed of'}, {'body': "composed_of is a complicated feature that's rarely used. So let's deprecate it. And remove it in Rails 4.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6741', 'title': 'Deprecate composed of'}, {'body': 'Historically, update_attribute and update_attributes are similar, but\nwith one big difference: update_attribute does not run validations.\nThese two methods are really easy to confuse given their similar\nnames. Therefore, update_attribute is being deprecated in favor of\nupdate_column, and will be removed in Rails 4.\n\nSee the discussion on rails-core here:\nhttps://groups.google.com/d/topic/rubyonrails-core/BWPUTK7WvYA/discussion', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6739', 'title': 'Deprecate update_attribute'}, {'body': 'Historically, update_attribute and update_attributes are similar, but\nwith one big difference: update_attribute does not run validations.\nThese two methods are really easy to confuse given their similar\nnames. Therefore, update_attribute is being removed in favor of\nupdate_column.\n\nSee the thread on rails-core here:\nhttps://groups.google.com/forum/?fromgroups#!topic/rubyonrails-core/BWPUTK7WvYA', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6738', 'title': 'Remove update_attribute.'}, {'body': 'Fix `db:schema:load` + `:dump`: look first in DATABASE_URL, then database.yml.\n\n\nCurrently when I run `heroku run rake db:migrate` on Heroku with the official\nRails 3.2.6 I get:\n\n ...\n \n ...\n database configuration does not specify adapter\n\n... and then rake fails.\n\nMy findings:\n\nThis last line is printed by `db:schema:dump` called from within `db:migrate`.\n\n`db:migrate` "itself" (`ActiveRecord::Migrator.migrate`) uses\n`with_connection`, which succeeds, while `db:schema:dump` uses\n`ActiveRecord::Base.establish_connect(Rails.env)` followed by\n`ActiveRecord::Base.connection`, which fails.\n\nThe latter call unconditionally looks in config/database.yml for the database\nsettings, whereas the former uses whatever settings were initialized by Rails.\n\nWhen Rails is initializing, `Railties::ActiveRecord` calls\nActiveRecord::Base.establish_connection without parameters.\n\n\nRemoving the `Rails.env` argument allows `establish_connect` to probe for the\ncorrect settings itself, and then it picks `DATABASE_URL` first, regardless of\n`RAILS_ENV` or `RACK_ENV`. This seems to me the more proper behaviour.\n\n\nIf I set `RAILS_ENV=production`, not only `RACK_ENV=production`, for some reason\nthat works. Possibly heroku\'s database.yml contains a `#{RAILS_ENV}:` line or\nsomething along those lines, I haven\'t checked. Either way, it doesn\'t affect\nthe above reasoning for the proper behaviour of `db:schema:dump`.\n\nThis pull request also contains the equivalent fix for `db:schema:load`.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f79caabf1f8e37c60fcf930ff68e19ef?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6736', 'title': 'db:schema:load db:schema:dump: establish_connection(Rails.env) -> establ...'}, {'body': 'Fix `db:schema:load` + `:dump`: look first in DATABASE_URL, then database.yml.\n\n\nCurrently when I run `heroku run rake db:migrate` on Heroku with the official\nRails 3.2.6 I get:\n\n ...\n \n ...\n database configuration does not specify adapter\n\n... and then rake fails.\n\nMy findings:\n\nThis last line is printed by `db:schema:dump` called from within `db:migrate`.\n\n`db:migrate` "itself" (`ActiveRecord::Migrator.migrate`) uses\n`with_connection`, which succeeds, while `db:schema:dump` uses\n`ActiveRecord::Base.establish_connect(Rails.env)` followed by\n`ActiveRecord::Base.connection`, which fails.\n\nThe latter call unconditionally looks in config/database.yml for the database\nsettings, whereas the former uses whatever settings were initialized by Rails.\n\nWhen Rails is initializing, `Railties::ActiveRecord` calls\nActiveRecord::Base.establish_connection without parameters.\n\n\nRemoving the `Rails.env` argument allows `establish_connect` to probe for the\ncorrect settings itself, and then it picks `DATABASE_URL` first, regardless of\n`RAILS_ENV` or `RACK_ENV`. This seems to me the more proper behaviour.\n\n\nIf I set `RAILS_ENV=production`, not only `RACK_ENV=production`, for some reason\nthat works. Possibly heroku\'s database.yml contains a `#{RAILS_ENV}:` line or\nsomething along those lines, I haven\'t checked. Either way, it doesn\'t affect\nthe above reasoning for the proper behaviour of `db:schema:dump`.\n\nThis pull request also contains the equivalent fix for `db:schema:load`.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f79caabf1f8e37c60fcf930ff68e19ef?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6735', 'title': 'Schema dump database url first'}, {'body': "Setting `config.gzip_compression = true` will load the `Rack::Deflater` middleware & enable gzip compression. \n\nThis config setting is useful if the HTTP requests terminates directly at app server & no longer goes through a web server(Example Heroku's Cedar stack). Therefore, gzip compression becomes responsibility of rack middleware. \n\nIn absence of this setting, people have resorted to hacking [config.ru directly](http://stackoverflow.com/questions/7236583/where-to-insert-rackdeflater-in-the-rack). this patch provides a clean way, if anyone want to enable gzip compression at app server level", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cb0b42e452cd13d469565a23a8abe441?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6728', 'title': 'Add config which enables gzip compression, Disabled by default'}, {'body': "Signed-off-by: Marcelo de Moraes Serpa \n\n(Now pointing to the right branch @ rails/rails)\n\nHi guys,\n\nI'm not sure if someone already did that, so here's a pull request with the patch for 2.3 from http://seclists.org/oss-sec/2012/q2/504 applied.\n\nCheers,\n\nMarcelo.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d85beb3ce5d586dd494a25aec0965578?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6725', 'title': '2 3 stable'}, {'body': "Hi guys,\n\nI'm not sure if someone already did that, so here's a pull request with the patch for 2.3 from http://seclists.org/oss-sec/2012/q2/504 applied. \n\nCheers,\n\n- Marcelo.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d85beb3ce5d586dd494a25aec0965578?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6723', 'title': '2 3 stable - with AR sql injection vulnerability patch (http://seclists.org/oss-sec/2012/q2/504)'}, {'body': 'Verbatim as attached to http://seclists.org/oss-sec/2012/q2/504', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/568db64de3c7c90b07411d58cbb5484d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6722', 'title': 'Backported rails 2.3 fix for CVE-2012-2695'}, {'body': '.../o them [nil] turns into [] and that is quite innocent.\n\ngenerated SQL - `IN (NULL)`\ncompact! did all the job.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6721', 'title': "These lines don't help to mitigate CVE. They only turn [nil] into nil, w..."}, {'body': "This is Justin Collins' SQL Injection patch for 2.3.x, adapted for 2-2-stable. Fixes CVE-2012-2695.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2f06b9fd0e5a878aec3252cbc8d4012d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6719', 'title': 'CVE-2012-2695 fix for 2-2-stable'}, {'body': 'In Ruby 1.8, the order in which `keys` will return keys, or `each` yield pairs is undefined.\n\nI guess, this is why the following test is breaking the build:\n\n```ruby\ndef test_dup_call_parent_dup_when_include_validations\n book = Book.new\n book[\'title\'] = "Litterature"\n book[\'author\'] = "Foo"\n duped = book.dup\n\n assert_equal book.keys, duped.keys\n assert_equal book.values, duped.values\nend\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6716', 'title': 'Fix Build'}, {'body': ' I think we need assert here to test things. And to tell us if these are failing. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6715', 'title': 'Need a assert here in tests'}, {'body': 'It looks strange having some of the values in three k/v pair\nblocks and then having the remainder one per line.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0bc875c603399dbfb1f166548c64dd76?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6714', 'title': 'reformating ESCAPED_CHARS hash'}, {'body': "Adds possibility to use [uuid-datatype](http://www.postgresql.org/docs/9.1/static/datatype-uuid.html) instead of saving uuids in strings.\n\nHope I didn't messed up anything.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b85d2c78cae9885b7f1ad2b5f808a450?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6713', 'title': 'Add uuid datatype support to PostgreSQL adapter'}, {'body': 'I found following warning in Ruby2.0.0dev(2012-06-12 trunk 36037).\n\n```\nactivesuport/lib/active_support/core_ext/load_error.rb:9: warning: method redefined; discarding old path\n```\n\nRuby2.0 already has LoadError#path.\n\nsee http://bugs.ruby-lang.org/issues/show/5221\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f39a252784d5a99589be6e20c4553fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6711', 'title': 'fix method redefined warning in Ruby2.0'}, {'body': 'So this condition is no more needed now.\n\nSee: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L5', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6709', 'title': 'current AR::ConnectionAdapters::SQLite3Adapter supports only SQLite3 ~> 1.3.6'}, {'body': '`git ls-files` has `--exclude-standard` option that excludes standard git exclusions from the list, which totally fits the purpose of `git ls-files`ing in this case.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6708', 'title': "ignore .gitignore'd files in rake test:uncomitted"}, {'body': 'Removed Ruby < 1.8.6 support in a test case.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6706', 'title': 'TimeZone format is always /[+-]\\d{2}:\\d{2}/ in Ruby 1.9'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ada0fa9f326acbba88da65d76f675aca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6705', 'title': 'both string and symbol will be interpolated as string no need to convert to_s'}, {'body': 'This if statement was introduced in 6ea4dd4a65f85f165f71cf1c866dea578dae9e49.\nThe comment says, "no Proc#binding in Ruby 2" in this commit, but the actual plan for Ruby 2 now is "100% compatible with Ruby 1.9.3" (Matz) http://vimeo.com/43590847', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6704', 'title': 'Proc always respond_to :binding'}, {'body': 'campus <-> campuses', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f54bf20a6ff4b4ecc285be230e37874e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6700', 'title': 'Update b5d82e20a8be3bf6b588f780640505d7ec12d126'}, {'body': "I found following warning in Ruby2.0.0dev(2012-06-11 trunk 36028).\n\n```\nrails/activesupport/lib/active_support/multibyte/chars.rb:136: warning:\ncharacter class has duplicated range: /\\b('?[\\S])/\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8f39a252784d5a99589be6e20c4553fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6699', 'title': 'fix warning in Ruby2.0.0'}, {'body': 'This pull request address errors discussed in be4ecdcc87984e9421ff5d5c90d33f475e0fbc01 for master branch.\n\n```ruby\n 1) Error:\ntest_dont_add_if_before_callback_raises_exception(AssociationCallbacksTest):\nActiveRecord::StatementInvalid: OCIError: ORA-00911: invalid character: SELECT 1 AS _one FROM "POSTS" WHERE "POSTS"."AUTHOR_ID" = 1 AND "POSTS"."ID" = 3 AND ROWNUM <= 1\n stmt.c:253:in oci8lib_191.so\n```\n\nTested with postgresql, mysql, mysql2 and sqlite3 adapters also.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6698', 'title': 'Address ORA-00911 errors because of the heading underscore.'}, {'body': 'https://groups.google.com/d/topic/rubyonrails-core/IquCr3-vNVE/discussion generated some good discussion, but also some plain noise because the "where" method in Active Record isn\'t documented.\n\nI decided to fix that. This commit adds rdoc for #where, based on both the Rails Guide and a perusal of the Active Record test suite. I\'m opening a pull request, rather than just committing to docrails, because I want some input on style and substance for documenting this important method.\n\nI also found examples in the test suite of condition templates like this:\n\n User.where("field = \'%s\'", "value")\n\nI don\'t see this printf-style mentioned anywhere in the guides or other external documentation; I\'m wondering if it\'s still valid/considered in good taste. If it is, then I\'d appreciate a pointer to which %-escapes are supported.\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4daf6f4daceb77bbd6cb266ea6281a5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6697', 'title': 'Documentation for where method on relations'}, {'body': "If someone receives a routing error, they likely need to view the routes. Rather than making them visit '/rails/info/routes' or run `rake routes` we can give them that information on the page.\n\nScreenshot:\n![Screeshot](http://f.cl.ly/items/1i0O3X1i2X1B3s1p302p/Screen%20Shot%202012-06-09%20at%208.36.00%20PM.png)\n\nActionDispatch Tests Pass", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6696', 'title': 'Show Routes while Debugging RoutingError'}, {'body': "If You've the following model\n\n```ruby\nclass Post < ActiveRecord::Base\n scope :since, Proc.new { where('written_on >= ?', Time.now - 1.day) }\n scope :to, Proc.new { where('written_on <= ?', Time.now) }\nend\n```\n\nand you call `Post.since.to`, we get an exception.\n\nBecause `since` method return ActiveRecord::Relation instance, and this class's method_missing call Array's method firstly.\nThus ActiveRecord::Relation#to is same to Array#to, we get an exception.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6695', 'title': 'Fix #6635. We should call Scoping methods, before calling Array methods.'}, {'body': 'Broken here 03f2249153ae4d2078646e6796d8b9e5ef747fba', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6694', 'title': 'Build fix broken here 03f2249153ae4d2078646e6796d8b9e5ef747fba'}, {'body': "*Problem*\n\nUnable to run functional / integration tests with Rails 2.3.5 and Test-Unit 2.5 due to \n\n gems/activesupport-3.2.5/lib/active_support/testing/deprecation.rb:48:in `message': uninitialized constant Test::Unit::ActiveSupport::Deprecation (NameError)\n from gems/test-unit-2.4.9/lib/test/unit/ui/console/testrunner.rb:182:in `output_fault_in_detail'\n\n*Reason and Fix*\n\nactive_support/testing/deprecation.rb surrounds Test::Unit::Error#message with a call to ActiveSupport::Deprecation.silence, however Test::Unit now declares it's own Test::Unit::ActiveSupport module, which of course lacks the Deprecation module.\n\nPrepending the call with :: fixes the problem.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/36feb4959db6ab8259a44962f0fa761f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6693', 'title': 'Bugfix: Namespace collision with test-unit-activesupport 1.0.0'}, {'body': "When new programmers push their code to a production server and receive an error they often don't know to check the logs, this simple reminder will help. Most professional applications have custom error pages so this change shouldn't affect them. The wording of the message should not confuse non-developer visitors.\n\nI run into this while going through getting started tutorials like Rails Girls: http://guides.railsgirls.com/heroku/ with users. Specifically when users push their code to Heroku and then don't migrate their databases. They're often confused about what to do next and won't instinctively check the logs without someone else telling them to. Hopefully this should help.\n\nScreenshot of 404: http://cl.ly/3j1S0k3I3K292u3x2q3K\n\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6692', 'title': 'Add Prompt to 404 & 500 Pages to Check Logs in Production'}, {'body': 'I fixed the copy source dir of stylesheet templates.\n\n````\n% rake rails:templates:copy\nrake aborted!\nNo such file or directory - /Users/suginoyasuhiro/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/railties-3.2.5/lib/rails/generators/rails/stylesheets/templates\n````', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a0a01586fbc5903ba30b421c5b73c6c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6690', 'title': "Fix: 'rake rails:templates:copy' doesn't work"}, {'body': 'Found here\n\nhttps://github.com/rails/rails/blob/3-2-stable/actionpack/test/template/url_helper_test.rb#L106-113\n\nsame as \n\nhttps://github.com/rails/rails/blob/3-2-stable/actionpack/test/template/url_helper_test.rb#L131-138\n\nand \n\nhttps://github.com/rails/rails/blob/3-2-stable/actionpack/test/template/url_helper_test.rb#L115-120\n\nsame as\n\nhttps://github.com/rails/rails/blob/3-2-stable/actionpack/test/template/url_helper_test.rb#L140-145\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6689', 'title': 'Duplicate test removed'}, {'body': 'BufferedLogger accepts `level` as a parameter to the constructor. It was ignoring this parameter and was not setting the appropriate log level of the underlying Logger.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7b02f93158e77deb0b0e316efec9321?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6688', 'title': 'BufferedLogger level while creation'}, {'body': "What \n====\n\nI propose reverting to the old implementation of `ActiveRecord#attributes` (changed in c4809d9984ab5d20759075a96ddea6096ab93802).\n\nWhy\n====\nThe current way that `attributes` builds its attributes hash creates `(n * 2) + 1` extraneous arrays, where `n` is the number of attribute keys. Switching back to the old implementation reduces this to 0.\n\nFor instance, I have a model with 43 columns; with Memprof (on 1.8.7) we can see that `attributes` normally creates 87 Arrays because of the `map` usage:\n\n```\n1.8.7 :010 > Memprof.track { my_record.attributes }\n 87 /.../activerecord-3.2.5/lib/active_record/attribute_methods.rb:184:Array\n 1 /.../activerecord-3.2.5/lib/active_record/attribute_methods.rb:184:__node__\n 1 /.../activerecord-3.2.5/lib/active_record/attribute_methods.rb:184:Hash\n```\n\nNow when we switch back to the original implementation that builds a hash with `each` (despite having 2 more LOC), we can see the benefit:\n\n```\n1.8.7 :010 > Memprof.track { my_record.attributes }\n 1 /.../activerecord-3.2.5/lib/active_record/attribute_methods.rb:184:Hash\n 1 /.../activerecord-3.2.5/lib/active_record/attribute_methods.rb:179:Array\n```\n\nI didn't verify the object count in 1.9 myself, but I did a 1.9 GC profile and confirmed that GC did run fewer times overall with this change (over a large sample).\n\nNote\n====\nafaik, `attributes` isn't actually used that often, however `serializable_hash` uses it. Since `serializable_hash` would most likely be used in apis where it's common to return lists of many records, it seems worthy of optimizing this method.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f86911c918d9c3eb1644189a50d74ccb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6687', 'title': 'ActiveRecord#attributes optimization: minimize objects created'}, {'body': "Previously if you had a primary key without a sequence on a db whose connector\nresponded to :pk_and_sequence_for, the primary key would be missed by the schema\ndumper. This fixes that problem by checking :pk_and_sequence_for, then\n:primary_key.\n\nNot sure how to go about testing this - it's easy to get into this state in a DB like postgres\nby creating a table with a normal sequence ID, then later migrating to drop that ID and\ncreate a new primary key column of e.g. varchar. None of the other tests seem to do\nanything like that, though, so I thought I'd ask before venturing out myself.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/966f28048f6e420c942ecb6d132eb07e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6686', 'title': 'Fix non sequence pkey dumps'}, {'body': "No one uses thread-safe mode because it's disabled by default\nThis makes thread-safe mode configuration over convention\n\nIf thread-safe mode were the happy path, more people would use it", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4131d2f57a0db2a2b4d9a62bd389fd44?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6685', 'title': 'Enable threadsafe! by default'}, {'body': 'This commit makes available two new options to has_secure_password:\n\n- encrypted_attribute: The attribute for the encrypted password.\n Replaces the hard-coded `password_digest` attribute\n\n- password_attribute: The instance method for the password\n Replaces the hard-coded `password` method\n\nExample usage:\n\n # Schema: User(name:string, encrypted_password:string)\n class User < ActiveRecord::Base\n has_secure_password :encrypted_attribute => :encrypted_password,\n :password_attribute => :passw\n end\n\nThe User model will now use `encrypted_password` for the digested password, and\nwill make available @user.passw.\n\nWith no options specified, defaults are `password_digest` and `password`, so no\naction will be required to update this method from older versions.\n\nNote: config.filter_parameters will need to be changed from the default `password` if\nsomething different is being used.\n\nUse cases: Legacy database (eg. Django applications use a `password` column for digest), conflicting plugins ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb56e6fa19ee55379e313367f049c1f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6684', 'title': 'Remove naming constraints from has_secure_password'}, {'body': 'Several tests that passed when run in the order they are loaded by rake test were failing when run in different sequences due to problems with the implementation of #assert_queries and #assert_no_queries as well as incorrect assumptions made about how many queries might be executed by a database adapter in various cases.\n\n#assert_no_queries was simply broken (but happened to not fail in `rake test` because of caching, etc.) because it tried to temporarily change SQLCounter.ignored_sql, but at that point, the instance of SQLCounter was already using a regular expression built from the original value of SQLCounter.ignored_sql.\n\nIgnoring SQL was also not really working with mysql or postgresql either, because not all of the necessary SQL was being ignored for those adapters.\n\nSome tests were trying to avoid counting metadata queries by invoking .columns, but this was unreliable. Needed to depend on SQL-ignoring instead.\n\nSome tests thought they knew exactly how many queries the connection adapter would perform in order to retrieve metadata, but the assumptions were unwarranted. Needed to assert >=1 queries vs no queries around specific statements instead.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6683', 'title': 'Fix fragile #assert_queries implementation and usages.'}, {'body': "At the end of initialize_dup was added the call to super if it exists,\nso it also works with 1.8.7 where initialize_dup doesn't exist.\nThis issu was introduced with the pull request #6324", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6682', 'title': 'Dup validation fix backport for 1 9 3'}, {'body': 'Cheery-picked from 3-2-stable\n\n\ncc @rafaelfranca ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6681', 'title': 'Plugin gen fix'}, {'body': 'Simple change from "backed" to "baked".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/12495e0381d9c477dfe4901ec794f7b8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6680', 'title': 'Fix typo in ActiveRecord::Store'}, {'body': 'if we are passing -T which is skip_test_unit\n\nSee issue #6673 for more details.\n\nI saw that we are not creating dummy app even if \nwe do skip_test_unit. \n\nFixes #6673', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6678', 'title': 'Fix issue 6673'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6677', 'title': 'Removed protected as we already doing it above.'}, {'body': "This will skip assigning the attributes if an empty Hash was provided.\n\nI've noticed this behavior kicking in when using something like collection#others.build (without any parameters):\n\n```ruby\nclass Task < ActiveRecord::Base\n belongs_to :account\nend\n\nclass Account < ActiveRecord::Base\n has_many :tasks\nend\n\naccount = Account.first\naccount.tasks.build\n```\n\nThis will call assign_attributes on task twice:\n\n * first with {} as a parameter when Task object is initialized\n * second when the association is created with {:account_id => 666} as parameter (replace 666 with the actual account id).\n\nShould also apply to 3.2 branch.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ea56ccf76f99b961b2d66a0b4b8359a7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6676', 'title': "Don't assign the attributes if the list is empty"}, {'body': "...ing, fixes #6393\n\nThis happens when A has_many many B and A accepts_nested_attributes B that has a numeric colum\nwith initial 0 value. So a.update_attributes({:b_attributes => { :id => b.id, :numeric => 'foo' }})\npasses the validation test but, the value of :numeric doesn't change.\nhis commit forces that the update fails with the above conditions.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6675', 'title': 'Validates_numericality_of is skipped when changing 0 to to non-empty str...'}, {'body': '... using debug (irb).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1ac1bdc800919b45b1002b05254d3a68?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6674', 'title': 'Fix for #inspect @ OrderedHash to keep its order while seeing the log or...'}, {'body': "See https://github.com/rails/rails/pull/6569 for info.\n\nI only ran ActiveModel tests, so if you have bad test isolation you might have to fix some tests outside ActiveModel, if they use validates_format_of.\n\nDiscussion:\nObviously the description in the security guides is not enough since ^$ are misused even in most of the ActiveModel tests. You even give an exploitable regexp as an example in http://edgeguides.rubyonrails.org/active_model_basics.html!\nSo if the problem is present even in core Rails then I don't think there's anything to think about.\n\nWe have seen this exploited on Github, Soundcloud, Tumblr, your own docs, your own tests, even veteran Rails developers make this mistake. Yes I always said this only partially solves the problem BUT it is the best solution I've seen, because it does cover the vast majority of vulnerabilities and at the same time the effect on proper code is negligible, even more so because proper code usually does not need to use ^$ in format validation (it really is a corner case). And even if you have this corner case the error goes away by adding one simple option to your validator.\nThere is no way of completely solving this without changing the Ruby language defaults and breaking loads of existing code, which wouldn't make sense because this is how behavior for RegExp is defined in Ruby and I doubt this will change, nor is there a real reason to change it.\nAnd again I will reiterate, the vast majority of related vulnerabilities come when a bad regexp is used with validates_format_of, and in the vast majority of cases using ^$ in validates_format_of is wrong so this change affects almost no one who already has proper code. The ^$ are mostly useful with gsub and extracting subpatterns, not for validation.\n\nI mean think about it, when did you need a validation that accepts multiline input and only needs 1 of the lines to match the RegExp to be valid? Never? With that in mind it would not be such a stretch anymore to say it's actually a vulnerability or at least poor behavior and not just an educational problem. Using ^$ in format validators is a corner case and should be treated as such. If you need validation like that you are doing something really weird and there's probably a better way to do it without requiring validation like that.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eda6e2638857d20ae499d26432e1a221?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6671', 'title': 'Bad Regexp exploits "fix" master branch'}, {'body': 'See https://github.com/rails/rails/pull/6569\nfor master: https://github.com/rails/rails/pull/6671\nThis is a backport for 3-2-stable branch with exception changed to a deprecation warning.\n\nI only ran ActiveModel tests, so if you have bad test isolation you might have to fix some tests outside ActiveModel, if they use validates_format_of :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eda6e2638857d20ae499d26432e1a221?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6670', 'title': 'Bad Regexp exploits "fix" backport into 3-2-stable'}, {'body': 'See https://github.com/rails/rails/pull/6569\nThis is a backport for 3-2-stable branch with exception changed to a deprecation warning.\n\nI only ran ActiveModel tests, so if you have bad test isolation you might have to fix some tests outside ActiveModel, if they use validates_format_of :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eda6e2638857d20ae499d26432e1a221?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6669', 'title': 'Bad Regexp exploits "fix" backport into 3-2-stable (fixed)'}, {'body': 'It is necessary to compact arrays with nil values.\n\nFor example, if we enforce\n```ruby \n config.active_record.whitelist_attributes = true\n````\non_load hook will call attr_accessible(nil) on ActiveRecord\nand it appears that ActiveRecord class attribute _accessible_attributes now is set to \n```ruby\n{ :default => # }\n````\n(https://github.com/rails/rails/blob/master/activemodel/lib/active_model/mass_assignment_security.rb#L183)\n\nAnd when we try to set attr_accessible on any other model, for example\n```ruby\n class User < ActiveRecord\n attr_accessible :admin\n end\n````\nand call accessible_attributes, we can get a blank value together with \'admin\'\n```ruby\n User.accessible_attributes = ["", "admin"]\n````', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/99def679b53960b3765dc9b46f4b05e3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6668', 'title': 'Compact array of values added to PermissionSet instance'}, {'body': 'Oracle Adapter does not support foreign keys if :polymorphic => true is used.\n\nSee [line 105](https://github.com/rsim/oracle-enhanced/blob/master/lib/active_record/connection_adapters/oracle_enhanced_schema_definitions.rb).\n\nThis pull request has been tested with sqlite3, mysql, mysql2 and postgresql adapters.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6667', 'title': 'Skip two tests with polymorphic if current adapter is Oracle Adapter.'}, {'body': "\n\n## Problem\n\nAfter a member of a team adds commits new code and a migration, other developers might not notice the migration and will get `NoMethodError`, `UnknownAttributeError`, or other exceptions raised.\n\nI've seen this behavior confuse beginner rails developers and seasoned devs. Usually they are capable of figuring out they need to run migrations, but the error is misleading, frustrating, and potentially time consuming.\n\n\n## Solution\n\nraise error for pending migration\n\nCan be configured by setting `config.active_record.migration`. Setting to `:page_load` will raise an error on each page refresh if there are migrations that are pending. Setting to `:page_load` is defaulted in development for new applications.\n\nSetting `config.active_record.migration` to `:app_start` will raise an error when the app is initialized if there are pending migrations. Setting to `:app_start` is defaulted in test mode.\n\nThis check is turned off in production.\n\nThe check can be disabled by setting `config.active_record.skip_migration_errors = true`. This is useful when the error would conflict with fixing the problem such as having an error on `:app_start` and trying to run `rake db:migrate` which starts the app. A convenience rake task is also included to be run before `:environment` is loaded on crucial tasks.\n\n\n## Notes\n\nThis PR picks up where #4165 left off.\n\nScreenshot of `:page_load` error: http://cl.ly/0Q0t3z1s3R2Z142p2o1B\n\nScreenshot of `:app_start` error: http://cl.ly/1k0c1i2O0v122T3P2Y1n\n\nRailties Tests are green: https://gist.github.com/2885779\n\nAR Tests are green: https://gist.github.com/2885796\n\ncc/ @jonleighton\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6665', 'title': 'Notify A User they Have Pending Migrations '}, {'body': 'See https://github.com/rails/rails/pull/6569\nThis is a backport for 3-2-stable branch with exception changed to a deprecation warning.\nNOTE: The exception is changed into a warning in the second commit (and the two tests are also updated accordingly). I only ran ActiveModel tests, so if you have bad test isolation you might have to fix some tests outside ActiveModel, if they use validates_format_of :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eda6e2638857d20ae499d26432e1a221?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6664', 'title': 'Bad Regexp exploits "fix" backport into 3-2-stable'}, {'body': "Issue #3993 was about Sprockets not acting as documented in production environments.\n\nSpecifically, during assets precompile, 'javascript_include_tag' et al are supposed to notice when the included path is a directory, and use an 'index.js' or 'index.css' file from inside that directory as a manifest:\n\nhttp://guides.rubyonrails.org/asset_pipeline.html#using-index-files\n\n#3993 was closed when a fix (SHA: df84577) was merged. The problem is that the fix is not only incorrect, it actually introduced a new bug.\n\nThe fix as merged converts paths pointing to index.* files into paths pointing at their enclosing directories. This is the opposite of the documented behavior -- if the original path is a directory, 'index' needs to be added to the path to find the file inside the directory.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e74788860015ac3a1484634ddd844939?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6662', 'title': 'Index js css fix'}, {'body': "Issue \\#3993 was about Sprockets not acting as documented in production environments.\n\nSpecifically, during assets precompile, 'javascript_include_tag' et al are supposed to notice when the included path is a directory, and use an 'index.js' or 'index.css' file from inside that directory as a manifest:\n\nhttp://guides.rubyonrails.org/asset_pipeline.html#using-index-files\n\n\\#3993 was closed when a fix (SHA: df8457748ebbfa092c4c10aedda57aeef2f28776) was merged. The problem is that the fix is not only incorrect, it actually introduced a new bug.\n\nThe fix as merged converts paths pointing to index.* files into paths pointing at their enclosing directories. This is the opposite of the documented behavior -- if the original path is a directory, 'index' needs to be *added* to the path to find the file inside the directory.\n\nThat commit therefore broke asset precompile such that any existing asset files named 'index.(js|css)' are completely skipped over, without fixing the original issue. This commit fixes the new bug and makes the feature work as documented, actually resolving \\#3993.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e74788860015ac3a1484634ddd844939?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6655', 'title': 'Index js css fix'}, {'body': 'Fixes not-quite-working PostgreSQL auto-reconnection on `Connection#verify!` and puts test coverage in place so that it should continue to work.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6654', 'title': 'Postgresql auto reconnect 2'}, {'body': "Issue \\#3993 was about Sprockets not acting as documented in production environments.\n\nSpecifically, during assets precompile, 'javascript_include_tag' is supposed to notice when the included path is a directory, and use an 'index.js' or 'index.css' file from inside that directory as a manifest:\n\nhttp://guides.rubyonrails.org/asset_pipeline.html#using-index-files\n\n\\#3993 was closed when a fix (SHA: df8457748ebbfa092c4c10aedda57aeef2f28776) was merged. The problem is that the fix is not only incorrect, it actually introduced a new bug.\n\nThe fix as merged converts paths pointing to index.* files into paths pointing at their enclosing directories. This is the opposite of the documented behavior -- if the original path is a directory, 'index' needs to be *added* to the path to find the file inside the directory.\n\nThat commit therefore broke asset precompile such that any existing asset files named 'index.(js|css)' are completely skipped over, without fixing the original issue. This commit fixes the new bug and makes the feature work as documented, actually resolving \\#3993.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e74788860015ac3a1484634ddd844939?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6653', 'title': 'Index js css fix'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/761e511b755afd61716f28153118f9a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6650', 'title': 'testing'}, {'body': "Just backport that metal controller doesn't have logger method for 3.2 /cc @josevalim", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6649', 'title': 'Logger in metal backport for 3.2'}, {'body': "Please see https://github.com/rails/rails/issues/5547.\n\n@daemon says:\n\n> For mysql/oracle rake task db:structure:dump has it's own dumper implementation, but for other databases it uses external utils to build dump.\n>\n> And it does matter when you use views/triggers/procedures with mysql: tests are simply failing because mentioned objects are missing in test db after dump/load.\n\nI agree with him.\n\np.s. I want to tell me where to write the test cases of this (railties ? but this is mysql speficic fix)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6648', 'title': 'Use mysql native commands when dumping/loading on mysql. Partially Fix #5547.'}, {'body': "This code was [originally written](https://github.com/rails/rails/commit/9d7aae7) this way in order to absorb API difference between MiniTest < 1.4 and >= 1.4.\n\nRuby >= 1.9.3 is shipped with MiniTest >= 2.5.1, so we can simplify the code here.\n\n```\n% ruby -v -rminitest/spec -e 'p MiniTest::Spec.instance_methods.include?(:__name__)'\nruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.1.0]\ntrue\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6647', 'title': 'MiniTest::Spec shipped with Ruby >= 1.9.3 always responds_to __name__'}, {'body': "Support unicode character route in config/routes.rb, e.g.:\n\n get '\u3053\u3093\u306b\u3061\u306f', :controller => 'home', :action => 'index'\n\nIn current Rails, we had to draw encoded route, e.g.:\n\n get Rack::Utils.escape('\u3053\u3093\u306b\u3061\u306f'), :controller => 'home', :action => 'index'\n\nPlease see also https://github.com/rails/rails/issues/3470", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6646', 'title': 'Support unicode character route directly in config/routes.rb. Fix #3470.'}, {'body': "Inspired by @elisehuard's GC talk at EuRuKo, I tried to reduce instances of `String` in Rails code.\n\nI haven't done actual performance benchmarks, but number of `ObjectSpace.each_object(String).count` was significantly decreased on my simple test app.\n\n```\nbefore: 128696\nafter: 121995\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6645', 'title': 'Reduce number of String instance'}, {'body': '`Module#instance_methods` returns an Array of Symbols in Ruby >= 1.9\nSo this was not actually testing anything', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6644', 'title': 'fix meaningless test case'}, {'body': '`application_controller.rb` is always in the same location, this patch fixes an issue where the path generated in namespaced controllers isn\'t correct.\n\ne.g. `require_dependency "test_app/application_controller"` instead of `require_dependency "test_app/some/module/application_controller"`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2735068c913a072744a799e3c0833b7b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6643', 'title': 'Fixed the application_controller require_dependency path generated by the app generator'}, {'body': 'This is a backport of b0e2fc84 to Rails 3.2.\nSee #5843 and #3859 also.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/df4831629f8a128c373e77f00f04980f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6642', 'title': 'Fix human attribute_name to handle deeply nested attributes'}, {'body': 'When running rails generate controller the controller file created has a redundant white line at the top. This patch just removes it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/33f024c93e8eb6291427b657904b253c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6640', 'title': 'Remove white line at the top of a generated controller file'}, {'body': 'Returning either nil or 0 is rather confusing for a predicate and changes behaviour of this method. Test is adapted accordingly.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98400edc296fd449feb1eb3ba0c6af78?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6639', 'title': 'predicate xhr? on ActionDispatch::Request returns Boolean again'}, {'body': 'Changes:\n\n* Add `instance_accessor` option to opt out of the instance writer and\n instance reader methods.\n* Raises `NameError` if the name of the attribute is not valid.\n* Update documentation and tests.\n* Add CHANGELOG entry in activesupport.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6638', 'title': 'add instance_accessor option to config_accesor'}, {'body': "@josevalim I had to implement it in previous PR, but I don't know why I didn't do it ;) This can be replaced into one line code of course. And if I squash both commits, can it be backported on 3.2, 3.1 branches?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6632', 'title': 'One-liner code for logger in ActionView::Helpers::ControllerHelper'}, {'body': "Hi,\n\nI would like to use a block in button helper like this:\n\n```erb\n<%= form_for @message do |f| %>\n\n <%= f.button do %>\n Send a message to <%= @user.name %>\n <% end %>\n # => \n\n<% end %>\n```\n\nThis pull request is similar to #6556, but for *FormHelper#button*. I also added the example section containing 2 examples. Thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bcd6fc0618a420ba3d59fe5bfaf2b323?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6631', 'title': 'Accept a block in FormHelper#button'}, {'body': "When I use Metal controller and my template contains some errors, I'm getting `undefined method `logger' for` because Metal controller doesn't contain logger method. When error is raised in my template, this line https://github.com/rails/rails/blob/master/actionpack/lib/action_view/template.rb#L297 trying to check logger but checking pass because this method have already been delegated.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6630', 'title': "Metal controller doesn't have logger method, check it and then delegate"}, {'body': "`save!` and variants are super useful when we have some generic exception handler setup, for example with `rescue_from`, and we expect the operation to succeed.\n\n`destroy` actions would benefit the same way of a `destroy!` version in the same way (especially since they so often succeed).\n\nDoesn't it sound great too? destroy!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6629', 'title': '+ ActiveRecord::Base#destroy!'}, {'body': 'When using `rails plugin new app_name --skip-gemspec`, the generated Gemfile still references (the now invalid) `gemspec` command. This patch allows the Gemfile to still have valid content.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2735068c913a072744a799e3c0833b7b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6628', 'title': "Fixed the Gemfile when gemspec is skipped in the 'rails plugin new' command"}, {'body': 'If JavaScript runtime is not installed, execjs fails with error quietly,\nwhile tests continue to run. This should not happen since it causes tests\nto fail for unknown reason (#6621).\n\nThis commit assures that if JavaScript runtime is not installed, an assertion\nis raised.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8c4b4a99d5794c95f52c58a2bf8e1710?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6627', 'title': "bundle exec rake assets:precompile shouldn't fail quietly."}, {'body': 'When I have incoming request with `:html` format and I want to render some json(using jbuilder for example), I put render :partial into my layout/template directly. It looks like: `render partial: "something", formats: :json`. But when this partial contain `json.partial!` then I have error that partial cannot be found and formats contain only `:html`. Guys from my team often using back situation, when incoming format :json, and they need to return a few rendered partials in that json, they using render partial: "name", formats: :html, and format will be missing on the second render :partial. I\'ve implemented adding new formats to lookup context.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b97b92886055641a956499b3cbb473e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6626', 'title': 'Add additional formats to lookup context'}, {'body': 'It is common practice to use protocol-less URIs when serving a site from both http and https. This form ("//cdn.host/blah/foo.css") allows the same content to be served (and cached) for both normal and secure sites, leaving the user agent to resolve the protocol.\n\nCurrently, the asset host plumbing doesn\'t recognize this as a valid URI form (it is, says RFC 3986 section 4.2). If I specify my asset host of "//a.example.com/assets", loading asset "foo.png" results in an invalid URI "http:////a.example.com/assets/foo.png" on HTTP and "https:////a.example.com/assets/foo.png" on HTTPS.\n\nThis patch correctly recognizes my protocol-less URI as valid and doesn\'t attempt to add the proto.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee075c7c5bdcad2baed4915630fe9a39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6625', 'title': 'Asset host doesn\'t recognize protocol agnostic "//" links.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f16c5c991a2412243d8d00054e5dab2e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6623', 'title': 'Remove trailing whitespaces and replace tabs with spaces'}, {'body': 'The original PR (on the master) was https://github.com/rails/rails/pull/6619.\n\nThere is a problem when dealing with Time with Timezone field.\nIf value is not change, definitely _will_change! method is executed.\n\nPlease see https://github.com/rails/rails/issues/6591.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6622', 'title': '[3-2-stable back ported] Fix #6591 Rails 3.2.5 Regression: incorrect _changed? for datetimes'}, {'body': "There is a problem when dealing with Time with Timezone field.\nIf value is not change, definitely _will_change! method is executed.\n\nPlease see https://github.com/rails/rails/issues/6591.\n\nI'll submit this PR to 3-2-stable.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6619', 'title': 'Fix #6591 Rails 3.2.5 Regression: incorrect _changed? for datetimes'}, {'body': "The resolver tests fail if the mysql gem is not installed; this breaks\nbeing able to run the sqlite3 tests without that gem. \n\nTo reproduce:\n\nbundle install --without db\ncd active record\nbundle exec rake test_sqlite3\n\nThis fix ensures the tests will only run if the mysql gem is installed.\n\nA better solution might be to move these tests into the per-adapter tests,\nand test each adapter's resolver.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4daf6f4daceb77bbd6cb266ea6281a5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6616', 'title': 'resolver tests fail if mysql adapter not installed'}, {'body': 'Just like [683fc4d](https://github.com/rails/rails/commit/683fc4db00f496e5225928afb4d4e932e0fcdc48) this removes the :confirm option.\n\n/cc @rafaelfranca\n\nThe PR adding the deprecation is #6613', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb96709a889695c9d0fe3edf4648ab7e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6614', 'title': "Remove `:confirm` in favor of `:data => { :confirm => 'Text' }` option"}, {'body': 'Just like [21141e7](https://github.com/rails/rails/commit/21141e777bdce8534e3755c8de7268324b3d8714) this PR deprecates the `:confirm` option.\n\n/cc @rafaelfranca\n\nRelated to #6614', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb96709a889695c9d0fe3edf4648ab7e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6613', 'title': "Deprecate `:confirm` in favor of `:data => { :confirm => 'Text' }` option"}, {'body': "`%Q[]` was originally used because there's a `\\n` [inside the string](https://github.com/rails/rails/blob/193e4de20646a025bf6dd3f90d1f9a53edb1cecf/railties/test/application/rake_test.rb#L157).\n\nNow that the `\\n` is no longer there, it is more readable to use single quotes instead.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/38becc6fc03453ccb1edfcdea1122408?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6611', 'title': 'Use single quote instead of %Q on route_inspect_test'}, {'body': "Fixes #6604 which was a great idea by @mpapis\n\nThis change allows, for example when generating an application using Rails 3.2.5, the application to use 3.2.5 -> 3.2.x but not 3.3 or greater and not less than 3.2.5.\n\nI believe that this is a good idea given that security issues are often fixed with patch releases and that it is safe to do so as these versions are tested for regressions which, when found, are solved with a subsequent release.\n\nI couldn't find any tests that are related to this change and all railties tests passed (eventually). \n\nThanks :-)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6610', 'title': 'Modified generated Gemfile to allow patch versions of Rails.'}, {'body': "I know it's a WIP guide but it stood out :-) I first looked on docrails and couldn't find this file.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6607', 'title': 'Updated guide to say Rails 4.0 requires 1.9.3 or higher, not Rails 3.2.'}, {'body': "`model` feels more natural for programmers, and this would make library authors a bit happier since it's compatible with `DM::Collection`\nhttps://github.com/datamapper/dm-core/blob/9d9f739/lib/dm-core/collection.rb#L45", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6606', 'title': 'AR::Relation#model would be a better API than AR::Relation#klass'}, {'body': 'I was writing a tiny patch enabling `AR::Relation#merge` to accept a collection association instance.\nIn AR 3 we need to call `scoped` like this, but I thought it could be done implicitly.\n\n\n```\neuruko = Conference.find_by_name(\'euruko\')\n# runs separate queries for Relation and association\nAttendee.where(name: \'matz\').merge(euruko.attendees)\n\n Attendee Load (0.3ms) SELECT "attendees".* FROM "attendees" WHERE "attendees"."conference_id" = 1\n Attendee Load (0.2ms) SELECT "attendees".* FROM "attendees" WHERE "attendees"."name" = \'matz\'\n```\n\n```\n# merging into one query\nAttendee.where(name: \'matz\').merge(euruko.attendees.scoped)\n\n Attendee Load (0.3ms) SELECT "attendees".* FROM "attendees" WHERE "attendees"."name" = \'matz\' AND "attendees"."conference_id" = 1\n```\n\nSo I finished writing my patch, rebased my patch against master, then noticed that this feature was already implemented in the series of `merge` refactoring done by @jonleighton\nI\'m not sure whether this was intentional or not (because there\'s no explicit test case for this), but I love this feature to be officially supported. So let me push my test case alone.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6605', 'title': 'a test case that ensures AR::Relation#merge can merge associations'}, {'body': '## Changes:\n\n* Update `include_root_in_json` default value to false for default value\n to false for `ActiveModel::Serializers::JSON`.\n* Remove unnecessary change to include_root_in_json option in\n wrap_parameters template.\n* Update `as_json` documentation.\n* Fix JSONSerialization tests.\n\n## Problem:\n\nIt\'s confusing that AM serializers behave differently from AR,\neven when AR objects include AM serializers module.\n\n class User < ActiveRecord::Base; end\n\n class Person\n include ActiveModel::Model\n include ActiveModel::AttributeMethods\n include ActiveModel::Serializers::JSON\n\n attr_accessor :name, :age\n\n def attributes\n instance_values\n end\n end\n\n user.as_json\n => {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true}\n #\xa0root is not included\n\n person.as_json\n => {"person"=>{"name"=>"Francesco", "age"=>22}}\n #\xa0root is included\n\n ActiveRecord::Base.include_root_in_json\n => false\n\n Person.include_root_in_json\n => true\n\n # different default values for include_root_in_json\n\n## Proposal:\n\nChange the default value of AM serializers to false, update\nthe misleading documentation and remove unnecessary change\nto false of include_root_in_json option with AR objects.\n\nResult:\n\n class User < ActiveRecord::Base; end\n\n class Person\n include ActiveModel::Model\n include ActiveModel::AttributeMethods\n include ActiveModel::Serializers::JSON\n\n attr_accessor :name, :age\n\n def attributes\n instance_values\n end\n end\n\n user.as_json\n => {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true}\n #\xa0root is not included\n\n person.as_json\n => {"name"=>"Francesco", "age"=>22}\n # root is not included\n\n ActiveRecord::Base.include_root_in_json\n => false\n\n Person.include_root_in_json\n => false\n\n # same behaviour, more consistent\n\nFixes #6578.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6597', 'title': 'change AMS::JSON.include_root_in_json default value to false'}, {'body': 'Put the table name between backticks... harden exploitation of CVE-2012-2661\n\nSo far the only exploitation path I found, is using the lack of backtick in this part of the statement', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/652d2718c654758a2b7a068a057fdab6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6595', 'title': 'Put the table name between backticks... harden exploitation of CVE-2012-...'}, {'body': "Backport of be623677 #5394\n\nWhen I made that PR 3 months ago I wasn't sure what the procedure was regarding backports. I believe this should be backported as I don't believe anyone is using cache_key and expecting to get the encoded object id on instances of `ActiveRecord::Relation` for example.\n\nIn that way I feel that it is more on the side of 'bugfix' vs change of behavior.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6594', 'title': 'Backport cache key patch'}, {'body': 'Skip test_remove_column_with_array_as_an_argument_is_deprecated with Oracle adapter.\n\nBecause Oracle adapter supports only remove_column :table_name, :column_name syntax\nand it has never supported remove_column :table_name, [:column_name].\n\n```ruby\n$ cd activerecord\n$ rake test_oracle\n\n... snip ..\n\n 1) Error:\ntest_remove_column_with_array_as_an_argument_is_deprecated(MigrationTest):\nActiveRecord::StatementInvalid: OCIError: ORA-00904: "[hat_name, hat_size]": invalid identifier: ALTER TABLE "HATS" DROP COLUMN "[hat_name, hat_size]"\n stmt.c:253:in oci8lib_191.so\n /home/yahonda/.rvm/gems/ruby-1.9.3-p194@v324rc1/gems/ruby-oci8-2.1.2/lib/oci8/oci8.rb:474:in `exec\'\n /home/yahonda/.rvm/gems/ruby-1.9.3-p194@v324rc1/gems/ruby-oci8-2.1.2/lib/oci8/oci8.rb:282:in `exec_internal\'\n /home/yahonda/.rvm/gems/ruby-1.9.3-p194@v324rc1/gems/ruby-oci8-2.1.2/lib/oci8/oci8.rb:275:in `exec\'\n /home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:471:in `exec\'\n /home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:88:in `exec\'\n /home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:595:in `block in execute\'\n /home/yahonda/git/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log\'\n /home/yahonda/git/rails/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument\'\n /home/yahonda/git/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log\'\n /home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:1312:in `log\'\n /home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:595:in `execute\'\n /home/yahonda/git/oracle-enhanced/lib/active_record/connection_adapters/oracle_enhanced_schema_statements.rb:261:in `remove_column\'\n /home/yahonda/git/rails/activerecord/test/cases/migration_test.rb:884:in `block in test_remove_column_with_array_as_an_argument_is_deprecated\'\n /home/yahonda/git/rails/activesupport/lib/active_support/testing/deprecation.rb:29:in `collect_deprecations\'\n /home/yahonda/git/rails/activesupport/lib/active_support/testing/deprecation.rb:7:in `assert_deprecated\'\n /home/yahonda/git/rails/activerecord/test/cases/migration_test.rb:883:in `test_remove_column_with_array_as_an_argument_is_deprecated\'\n /home/yahonda/.rvm/gems/ruby-1.9.3-p194@v324rc1/gems/mocha-0.11.4/lib/mocha/integration/mini_test/version_230_to_262.rb:28:in `run\'\n\n```\n\nThis test has been committed to 3-2-stable branch only #6219 .', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e2cb998e15d8e8fdef4f11a1f510fe74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6593', 'title': 'Skip test_remove_column_with_array_as_an_argument_is_deprecated with Oracle'}, {'body': 'This is a failing test for #6591', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a2034173a41f180ef7e182a130438e8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6592', 'title': 'Add failing test for 3.2.5 datetime attribute regression'}, {'body': "This pull is against 3-2-stable, not master. If accepted, I'll quickly put together a pull for master, as well.\n\nPolymorphic routes currently only use `arg.to_model` when [generating the path directory or name portion](https://github.com/rails/rails/blob/3-2-stable/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb#L100) of a route. They do not use the `to_param` value from the delegated model for the generated route IDs (since it currently [passes the arguments directly](https://github.com/rails/rails/blob/3-2-stable/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb#L127) to the named route functions without converting them to models).\n\nSince `to_model` is supposed to act as the ActiveModel stand-in for an object, and the polymorphic routing mechanism already takes `to_model` in to account for a small bit of it, I think this is a bug in the router to not fully follow through with its usage. It also significantly limits the usefulness of creating `to_model` stand-ins.\n\nSo, this pull has a test to exploit the bug where I exercise that the delegate is not currently being used for to_param. And, then the fix simply passes the args collection after having converted it to models.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cfaf1fb96eb0b184e3134d62c45fe8d3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6588', 'title': 'Correct the use of to_model in polymorphic routing'}, {'body': 'Backporting #6586 patch to 3-2-stable, as I found a blank line in a `rails generate`d contoller on my new Rails 3.2.5 app.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6587', 'title': 'Backporting #6586 patch to 3-2-stable'}, {'body': 'The controllers generated by `rails g` have an extra blank line at the very top.\nThese blank lines were introduce by 7c95be54b4c3f8ad2273eea39afa233f8f8b31c1\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6586', 'title': 'remove unneeded blank line from !namespeced? generated controllers'}, {'body': 'AR `explain` returns nicely formatted String, but it looks miserable on our Rails console.\n\n```\n> User.where(id: 2).explain\n User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = 2\n EXPLAIN (0.1ms) EXPLAIN QUERY PLAN SELECT "users".* FROM "users" WHERE "users"."id" = 2\n => "EXPLAIN for: SELECT \\"users\\".* FROM \\"users\\" WHERE \\"users\\".\\"id\\" = 2\\n0|0|0|SEARCH TABLE users USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)\\n" \n```\n\nWith this patch, `explain` returns a `p`-friendly String instance.\n\n```\n> User.where(id: 2).explain\n User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 2\n EXPLAIN (0.1ms) EXPLAIN QUERY PLAN SELECT "users".* FROM "users" WHERE "users"."id" = 2\n => EXPLAIN for: SELECT "users".* FROM "users" WHERE "users"."id" = 2\n0|0|0|SEARCH TABLE users USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6584', 'title': 'improve readability of AR explain result'}, {'body': 'Because Ruby >= 1.9.3 is shipped with Rake > 0.9\n\n```\n% ruby -v -rrake -e \'p defined? Rake::DSL\'\nruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.1.0]\n"constant"\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6583', 'title': 'Revert "Only include Rake::DSL if it\'s defined."'}, {'body': 'Fixes the issues reported by #6559', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/75cb325d7b55a6659fc050f6fa822c7c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6581', 'title': 'Properly add duration parts'}, {'body': 'CVE-2012-2660\n\nBut is this branch now officially closed?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd2ee04ed34353f9679324c44f50e073?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6580', 'title': 'Strip [nil] from parameters hash'}, {'body': "Current implementation of `AR::Relation#none` replaces the `Relation` instance, and consequently clears all extension methods defined on self by proceeding scopes.\n\nFor example, with this AR model and scope,\n\n```ruby\nclass User < ActiveRecord::Base\n scope :anonymous_extension, -> { scoped } do\n def one\n 1\n end\n end\nend\n```\n\nThe `one` method was removed from `none`ed relation before this patch,\n\n```\n> User.anonymous_extension.none.one\nNoMethodError: undefined method `one' for []:ActiveRecord::NullRelation\n```\n\nNow `one` properly calls the extension method.\n\n```\n> User.anonymous_extension.none.one\n => 1\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76a777ff80f30bd3b390e275cce625bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6579', 'title': 'modulize AR::NullRelation'}, {'body': "The options hash has a lot of non-similar data stored in it. It makes it difficult to keep track of what exactly is stored inside. Perhaps an alternative to using a hash is to store options in a class and make the information accessible via methods. @jonleighton expressed the Mapper class was in need of refactoring. I'm starting with what I consider low-hanging fruit given my skill level.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e1237fa7ee270ace2ebb53c8cab91a6b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6574', 'title': 'Added Options class to Mapper'}, {'body': 'Extracted redirect logic from ActionController::Force::ClassMethods.force_ssl\n\nPrior to this patch the existing .force_ssl method handles both defining\nthe filter and handling the logic for performing the redirect.\n\nWith this patch the logic for redirecting to the HTTPS protocol is\nseparated from the filter logic that determines if a redirect should\noccur. By separating the two levels of behavior, an instance method\nfor ActionController (i.e. #force_ssl_redirect) is exposed and available\nfor more granular SSL enforcement.\n\nCleaned up indentation.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a9b7461edb06ce10e12f865220e43948?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6571', 'title': 'Extracted redirect logic from ActionController::Force::ClassMethods.forc...'}, {'body': 'Extracted redirect logic from ActionController::Force::ClassMethods.force_ssl\n\nPrior to this patch the existing .force_ssl method handles both defining\nthe filter and handling the logic for performing the redirect.\n\nWith this patch the logic for redirecting to the HTTPS protocol is \nseparated from the filter logic that determines if a redirect should \noccur. By separating the two levels of behavior, an instance method\nfor ActionController (i.e. #force_ssl_redirect) is exposed and available\nfor more granular SSL enforcement.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a9b7461edb06ce10e12f865220e43948?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6570', 'title': 'Extracted redirect logic from ActionController::Force::ClassMethods.forc...'}, {'body': 'Explanation of the "issue": http://homakov.blogspot.co.uk/2012/05/saferweb-injects-in-various-ruby.html\n\nWhile I do not agree with Egor that this is an actual vulnerability in Ruby or something that can be fixed, I do agree it is an issue that should be addressed (e.g. through an educated warning). I propose a "solution" by incorporating a warning into validates_format_of, which I believe is the source of most of related vulnerabilities (caused by programmer error).\n\nThe proposed change is to throw an exception from validates_format_of when a Regexp containing the ^ or $ anchor is used, unless the programmer explicitly acknowledges his awareness about the multiline behavior by passing a :multiline => true option to validates_format_of.\n\nI believe this solution is good because of several reasons:\n1. The vast majority of users that are using validates_format_of do not want multiline matching. Consequently, the vast majority of users that are using proper Regexp will not be affected by this change at all.\n2. The vast majority of users who are using ^ or $ inside validates_format_of are not aware of their multiline behavior, or are copy-pasting Regexp, and will be affected by this change, consequently fixing a security vulnerability in their application.\n3. The minority of users who do need multiline behavior in validates_format_of simply need to add the new :multiline => true option to their validators. So if this is mentioned in the changelog or the users are running any kind of tests that at least load the model using validates_format_of (exception is raised when validates_format_of is called on the class - so at model load), they will be aware of what needs to be done (trivial - add an option).\n4. When people fix their validators they will most likely become familiar with the issue and will be able to fix potential vulnerabilities related to Regexp used outside of validates_format_of.\n\nWhile this check does not cover all possible related vulnerabilities, I think it should cover most of them, and the cost of this is very low (not a lot of people need multiline behavior). Performance hit is also negligible as the check is only performed when the model is loaded.\n\nRegarding tests in ActiveModel:\nI added a test for this case. Due to the change, some existing test cases needed to have the :multiline => true option added. It may be possible that in these existing tests, use of \\A and \\Z would be more appropriate - I will let the core developers decide this. In any case I have made all the ActiveModel pass, but I did not run tests of other parts of Rails so the whole test suite should be ran before thinking about merging this commit. The exception message string might also need to be written differently.\n\nI hope this work will be appreciated and considered for merging. I think the issue is important as Egon demonstrated in his blog post - this vulnerability was present in many big Rails projects such as Github, Soundcloud, Tumblr etc., so it should not be completely ignored.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eda6e2638857d20ae499d26432e1a221?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6569', 'title': 'Bad Regexp exploits "fix" (with warning)'}, {'body': 'CoffeeScript files to `rake stats` task\n\nOrignal PR was #2270\n\nThanks to @nfm \n\nWas trying to merge those commits but got conflicts as that one is for 3-1-stable.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6566', 'title': 'Add code statistics for Javascript and'}, {'body': 'I have got an error while trying to redirect non ASCII url. So lets escape it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bc5e8ad4fa9c924887327d33933f0d09?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6563', 'title': 'Escape path before redirection'}, {'body': "\nDependency.rb expects the symbol to be named :platforms as opposed to platform. RubyMine's inspections indicate that the symbol should be named :platforms.\nUpdating tests.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/70d63510b63e2b8b6ebcd9595f1879e2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6562', 'title': "3-2-stable Changed symbol platform to platforms for the commented out call to gem 'therubyracer'."}, {'body': "\nDependency.rb expects the symbol to be named :platforms as opposed to platform. RubyMine's inspections indicate that the symbol should be named :platforms.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/70d63510b63e2b8b6ebcd9595f1879e2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6561', 'title': "Changed symbol platform to platforms for the commented out call to gem 'therubyracer'."}, {'body': "\nDependency.rb expects the symbol to be named :platforms as opposed to platform. RubyMine's inspections indicate that the symbol should be named :platforms.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/70d63510b63e2b8b6ebcd9595f1879e2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6560', 'title': "Changed symbol platform to platforms for the commented out call to gem 'therubyracer'."}, {'body': "This reverts commit ebfa58abc895c0639211cb896a47b04e424322c8.\n\nThis change caused a regression in my application's tests:\n\n* Failing build http://travis-ci.org/#!/resolve/refinerycms/builds/1461242\n\nBroken tests pass after this change is reverted.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6558', 'title': 'Fix regression'}, {'body': 'After a Rails process has opened a connection to a PostgreSQL server, if the PostgreSQL server is subsequently restarted, or the connection has been otherwise severed, the connection would fail with an exception the next time a query was attempted using that connection.\n\nWith these changes, the connection will automatically be repaired on the next query, assuming it is safe to do so (e.g. we were not in the middle of a transaction).\n\nSome of the commits on this branch are also to fix test failures or intermittent test failures/fragilities that are unrelated or only tangentially related to the auto-reconnect changes (2 failures on TC before I started, tests that fail only when run in certain combinations, etc.)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4f6079564f02b87e4c0989585439eb39?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6557', 'title': 'Postgresql auto reconnect'}, {'body': 'Make possible to use a block in button_to helper if button text is hard\nto fit into the name parameter, e.g.:\n\n <%= button_to [:make_happy, @user] do %>\n Make happy <%= @user.name %>\n <% end %>\n # => "
\n #
\n # \n #
\n #
"\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6556', 'title': 'accept a block in button_to helper'}, {'body': "Since the environment is initialized each time rake is run, routes don't need to be re-loaded. This comes form a discussion on another pull request: https://github.com/rails/rails/pull/6461#r869953", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6555', 'title': 'Remove Unused Route Reloading Code'}, {'body': 'See #6553, which should be accepted first.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6554', 'title': 'Remove deprecated ActiveSupport::JSON::Variable.'}, {'body': "Backport of #6546 and deprecate ActiveSupport::JSON::Variable\n\nSee #6536 for the reasoning.\n\nI'm still new to the Rails code base (but intend on being a regular contributor), hopefully I went about this the correct way.\n\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6553', 'title': '3 2 stable json patch'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6552', 'title': 'Fix warning: already initialized constant Rails.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6551', 'title': "Add a railtie's changelog entry about runner hook."}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6550', 'title': 'Some of the warnings removed from "railties"'}, {'body': 'Pry allows developer to go deep inside of ruby and rails class infrastructure - https://github.com/pry/pry\nThe console becomes very powerful, `cd` and `ls` make class/method navigation extremely comfortable.\nBonuses: highlighting, nice inspects, shell shortcuts and other - check the manual.\n\nHuge thanks to @drogus for https://github.com/rails/rails/commit/dd655d88d660da8c094d20948ee721d29852f723 and https://github.com/rails/rails/commit/951b58206255791587e2491435a80cf0ab3b797b \n\nTo discuss: \nHow to handle if user has no pry installed? Probably just downgrade to IRB and show a message "Pry is not found, using IRB"?\nWhat about moving requirement process inside of rails? I mean `config.console = :pry` looks more neat.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6549', 'title': 'Make Pry(a feature rich console) default rails console'}, {'body': 'I found the next issue between CollectionAssociation `delete`\nand `destroy`.\n\n class Person < ActiveRecord::Base\n has_many :pets\n end\n\n person.pets.destroy(1)\n # => OK, returns the destroyed object\n\n person.pets.destroy("2")\n # => OK, returns the destroyed object\n\n person.pets.delete(1)\n # => ActiveRecord::AssociationTypeMismatch\n\n person.pets.delete("2")\n # => ActiveRecord::AssociationTypeMismatch\n\nAdding support for deleting with a fixnum or string like\n`destroy` method. Backport of #6511.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6547', 'title': 'Add support for CollectionAssociation#delete by Fixnum or String'}, {'body': "Tests are a bit lame, but relevant I guess. Let me know if you think they're unnecessary.\n\nRelates to #6536.\n\nas_json should return the closest Ruby representation it can. `nil`, `true`, and `false` are all simple singletons that can be represented easily without using a string representation.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6546', 'title': 'True, False, and Nil should be represented in as_json as themselves.'}, {'body': "*exists?* finder method now returns *false* with the *false* argument\n\n```ruby\nTopic.exists?(false)\n=> false\n```\n\nI would like to propose this solution. I think it may be acceptable.\nChanges don't affect on any other cases.\nDiscussion in issue #6431.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/406a9d04de19cb80e798862b9772f491?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6544', 'title': 'exists?(false) returns false'}, {'body': ' Assertions on file permissions only pass with some combinations of\nfile create mode and the process file mode creation mask. This mask\nshould be applied on the file create mode before related assertions.\n\n I needed to raise the permissions allowed by my file mode creation\nmask to make the tests on File#atomic_write pass. It fix these tests\nfor any umask value.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a0b419452eceda9515088289b3a66e14?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6541', 'title': 'Make tests pass with umask'}, {'body': 'Test was failing against JRuby. \n\nIt loads like [Constant3 Constant1]', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6535', 'title': 'JRuby return different Array for module contents.'}, {'body': 'This is a back-port of rails/rails#6525. See the commit notes there for\ndetails.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6532', 'title': 'Exceptions like Interrupt should not be rescued in tests.'}, {'body': 'This is a back-port of rails/rails#6525. See the commit notes there for\ndetails.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6531', 'title': 'Exceptions like Interrupt should not be rescued in tests.'}, {'body': 'rails/rails#6525 back-ported to 3-2-stable.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6530', 'title': 'Exceptions like Interrupt & NoMemoryError should not be rescued in tests (for 3-2-stable)'}, {'body': 'removed last instances of encoding aware from master.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c6186a95958ec40ebdff8a43088f745b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6529', 'title': 'encoding aware removal. Not required in master!'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6528', 'title': 'update Gemfile template to 1.9 hash syntax'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6527', 'title': 'Add tests to delete by fixnum or string id with has many through associations'}, {'body': "Hi,\n\nI'm interested in using the ActiveSupport::Testing::Performance module and was surprised to see that it requires and calls code from ActionView. I'd like to use this module in a context without ActionView, and now that we've moved NumberHelpers to ActiveSupport (https://github.com/rails/rails/pull/6315), we can do this.\n\nIn this pull request I'm changing ActiveSupport::Testing::Performance to use ActiveSupport::NumberHelper instead of ActionView::Helpers::NumberHelper. Also, to my knowledge this logic was untested, so I have added tests for the formatting logic (which pass before and after the code change).\n\nAny and all feedback is welcome.\n\nThanks!\n-Andrew.\n", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aed424af11b9f92cca6c051f75f013b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6526', 'title': 'Decoupling ActiveSupport from ActionView'}, {'body': "Neither Test::Unit nor MiniTest rescue exceptions like Interrupt or\nNoMemoryError, but ActiveSupport::Testing::SetupAndTeardown#run which\noverrides MiniTest::Unit::TestCase#run currently rescues them.\n\nRescuing an Interrupt exception is annoying, because it means when you\nare running a lot of tests e.g. when running one of the rake test tasks,\nyou cannot break out using ctrl-C.\n\nRescuing exceptions like NoMemoryError is foolish, because the most\nsensible thing to happen is for the process to terminate as soon as\npossible.\n\nThis solution probably needs some finessing e.g. I'm not clear whether\nthe assumption is that only MiniTest is supported. Also early versions\nof MiniTest did not have this behaviour. Finally\nActiveSupport::Testing::Performance also suffers from the same\nproblem, but I have not fixed it here.\n\nIntegrating with Test::Unit & MiniTest has always been a pain. It would\nbe great if both of them provided sensible extension points for the kind\nof things that both Rails and Mocha want to do, but in the meantime\nhopefully this is of some help.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1c2a5fff725fde524bb84503528bd1e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6525', 'title': 'Exceptions like Interrupt & NoMemoryError should not be rescued in tests.'}, {'body': "This is for #5261.\n\nThis pull request fixes the issue outlined in https://github.com/rails/rails/commit/302c912.\n\nIt takes the approach that bi-directional associations need to be kept in sync by the developer, not the framework. Also, if the database is modified via SQL or a method that is a fancy wrapper for SQL (like increment_counter), it is the developer's responsibility to re-synchronize the models. I believe that this is an acceptable approach and it is one that is commonly implemented by other ORMs such as Hibernate.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4d4c378e3a10e2d01a636a33c359734c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6524', 'title': 'Identity map master'}, {'body': 'Commits:\n\n- remove unnecessary require\n\n AS::Multibyte are no longer required by access and filters string\n core extensions.\n\n- make AS::Multibyte::Chars work w/o multibyte core ext\n\n Use ActiveSupport::Multibyte::Chars.new instead of String#mb_chars.\n It allows to use ActiveSupport::Multibyte::Chars without requiring\n String multibyte core extension.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6522', 'title': 'ActiveSupport require and dependencies'}, {'body': "FinderMethods#construct_limited_ids_condition will raise ThrowResult if the limited reflection comes back empty. The other callers of #construct_limited_ids_condition handle this exception (more specifically, the callers of construct_relation_for*), but #exists? didn't until now.\n\nThe included test hits this condition, and after the tests runs green.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b4493ae064e6e2841f376fd1dc12b7ba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6521', 'title': 'Fix that #exists? can blow up with ThrowResult exception'}, {'body': 'Cherry picked as discussed [here](https://github.com/rails/rails/commit/dd8c6f05562ff37060bf102c6ab80dd4f0b4cdbd#-P0)\n\ncc @carlosantoniodasilva\n\nP.S. was not able to run the test suite, trying to figure it out.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6519', 'title': 'Display annotations in coffee files'}, {'body': "Previous my fix was reverted (See https://github.com/rails/rails/commit/0a8aec2c97ab93721d5671555f22975da0a20422 ).\nAnd on master, the AR::Base is already loaded durring initialization.\n\nTo resolve original issues and AR::Base loading problem, I added 3 commits.\n\nFirst: I added a testcase for original issue.\nSecond: I changed the timing of AR::Base loading (some tests weren't success).\nThird: I fixed original issues.\n\n/cc @josevalim", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6518', 'title': '(Try again) Fix #5847 and #4045.'}, {'body': 'Passing a falsey option value for a validator currently causes that validator to\nbe enabled, just like "true":\n\n ActiveModel.validates :foo, :presence => false\n\nThis is rather counterintuitive, and makes it inconvenient to wrap `validates` in\nmethods which may conditionally enable different validators.\n\nAs an example, one is currently forced to write:\n\n def has_slug(source_field, options={:unique => true})\n slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? }\n before_validation slugger\n validations = { :presence => true, :slug => true }\n if options[:unique]\n validations[:uniqueness] = true\n end\n validates :slug, validations\n end\n\nbecause the following reasonable-looking alternative fails to work as expected:\n\n def has_slug(source_field, options={:unique => true})\n slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? }\n before_validation slugger\n validates :slug, :presence => true, :slug => true, :uniqueness => options[:unique]\n end\n\n(This commit includes a CHANGELOG entry, a test, and all activemodel and activerecord tests pass as before.)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/04f3babefa4ba85e7904b40e6846e217?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6517', 'title': "Don't enable validations when passing false hash values to ActiveModel.validates"}, {'body': 'Passing a falsey option value for a validator currently causes that validator to\nbe enabled, just like "true":\n\n ActiveModel.validates :foo, :presence => false\n\nThis is rather counterintuitive, and makes it inconvenient to wrap `validates` in\nmethods which may conditionally enable different validators.\n\nAs an example, one is currently forced to write:\n\n def has_slug(source_field, options={:unique => true})\n slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? }\n before_validation slugger\n validations = { :presence => true, :slug => true }\n if options[:unique]\n validations[:uniqueness] = true\n end\n validates :slug, validations\n end\n\nbecause the following reasonable-looking alternative fails to work as expected:\n\n def has_slug(source_field, options={:unique => true})\n slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? }\n before_validation slugger\n validates :slug, :presence => true, :slug => true, :uniqueness => options[:unique]\n end\n\n(This commit includes a test, and all activemodel and activerecord tests pass as before.)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/04f3babefa4ba85e7904b40e6846e217?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6516', 'title': "Don't enable validations when passing false hash values to ActiveModel.validates"}, {'body': '...generator. Closes #6311', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6515', 'title': 'Set X-Frame-Options to SAMEORIGIN and add description to application.rb ...'}, {'body': "Without this patch, `number_to_currency()` treats `-0.0` as if it were a positive number and fails to apply the `:negative_format` option. \n\nI tried to write this to support multiple rubies. In modern rubies, it will invoke `phase()` but looking at the docs for older rubies I couldn't find a satisfactory alternative, and had to settle for slicing the first char off of `to_s()`. Please tell me there's a better way. :-)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/908c9abc72ab86111a153b11cb584f26?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6512', 'title': 'Fix handling of negative zero in number_to_currency'}, {'body': 'I found the next issue between CollectionAssociation `delete`\nand `destroy`.\n\n class Person < ActiveRecord::Base\n has_many :pets\n end\n\n person.pets.destroy(1)\n # => OK, returns the destroyed object\n\n person.pets.destroy("2")\n # => OK, returns the destroyed object\n\n person.pets.delete(1)\n # => ActiveRecord::AssociationTypeMismatch\n\n person.pets.delete("2")\n # => ActiveRecord::AssociationTypeMismatch\n\nAdding support for deleting with a `fixnum` or `string` like\n`destroy` method.\n\nAlso, fixes #6509.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6511', 'title': 'Add support for CollectionAssociation#delete by Fixnum or String'}, {'body': 'I found the next issue between CollectionAssociation `delete` and `destroy`:\n\n class Person < ActiveRecord::Base\n has_many :pets\n end\n\n person.pets.destroy(1)\n # => OK, returns the destroyed object\n\n person.pets.destroy("2")\n # => OK, returns the destroyed object\n\n person.pets.delete(1)\n # => ActiveRecord::AssociationTypeMismatch\n\n person.pets.delete("2")\n # => ActiveRecord::AssociationTypeMismatch\n\nI was not sure about adding support for delete by fixnum or string.\nThat\'s why i prefer to remove destroy by fixnum or string option.\nI sincerely think that is better to delete or destroy passing a record\nor an object.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6509', 'title': 'Remove support for CollectionAssociation#destroy by Fixnum or String'}, {'body': "allow routes like\n\n```ruby\nget :index => 'a#b'\n```\n\nin addition to\n\n```ruby\nget 'index' => 'a#b'\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ba162f227525e37d91a86ef11789cc98?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6508', 'title': 'Allow simple symbols in routes'}, {'body': '- Change hash rocket for new notation', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9105810d4c65850d3f4a98f0ee7ea3ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6504', 'title': 'code cleanup for benchmarkable_test'}, {'body': 'Rake tasks:\n\n* guides:generate (executes generate:html)\n* guides:validate\n* guides:generate:html\n* guides:generate:kindle\n* help (default) - the text is almost the same than in rails_guides/generator.rb', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/40bd727b22d74930f292b63d45a71b07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6502', 'title': '[Guides] refactor rakefile to have a :guides namespace and a task that shows help'}, {'body': 'Rails currently supports this:\nPerson.pluck(:id) # SELECT people.id FROM people\n\nI added two possibilities:\nPerson.pluck(:id) # SELECT people.id FROM people\nPerson.pluck([:id, :name]) # SELECT people.id, people.name FROM people\nPerson.pluck(:id, :name) # SELECT people.id, people.name FROM people\n\nBecause I made some stupid mistakes while updating my own fork of rails/rails this is a new fork and a follow up of the discussion located here: https://github.com/rails/rails/pull/5472', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f2b113a55e42f840085008edd2938d57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6500', 'title': 'ActiveRecord::Calculations#pluck accepts multiple columns'}, {'body': "rails plugin new --full generates a full rails application as an engine, but the --help description suggests that the --full option just adds integration testing... it's much more than that", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0dba10774351090583ce306ef0ca805b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6499', 'title': 'Clarify and correct the description for the --full option of the plugin_...'}, {'body': 'Solve this issue:\n```\ncustomer.address.street # => "Quiet Road"\ncustomer.address_street = "Noisy Road"\ncustomer.address.street # => "Quiet Road"\n```\nWhere:\n```\nclass Customer\n composed_of :address, :mapping => [ %w(address_street street), %w(address_city city) ]\nend\n\n\nclass Address\n attr_reader :street, :city, :country\n\n def initialize(street, city, country)\n @street, @city, @country = street, city, country\n end\nend\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ceb745dc6fd0e274005d8c9637cca631?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6498', 'title': 'Clear aggregation cache after setter method calls.'}, {'body': "sanitize is not always required so we cannot force it by default. let's just\nwhitelist protocols and everybody's happy\n\nMy commit was wrong - I didn't realize how it will impact on `raw` text.\n\n@tenderlove also should I bump gem version of rails_autolink ? It's bugfix so I just pushed it to the 1.0.8", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6495', 'title': "auto_link shouldn't always sanitize"}, {'body': 'Backports 3fbc8f385bfd5e486cdbd4da6c1604f5c312770b to get rid of unneeded memcache require', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dd24adb5a3a430fed83a33ed552fe1b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6494', 'title': 'memcache require not needed for cache store'}, {'body': "One little thing...all the methods in this file are normal method followed by bang....until you get down to the end...this PR just switches the order of `deep_symbolize_keys` and `deep_symbolize_keys!` to follow that convention.\n\nI know it's small...but it's been bugging me.\n\nI think this is last time I touch this file...maybe...hopefully...not sure what else I could do to it. ;)\n\ncc/ @rafaelfranca", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/185fff6d3aa5c70e337fa84b302050b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6493', 'title': 'Reorder deep_symbolize_keys methods'}, {'body': "Third attempt of https://github.com/rails/rails/pull/6488\n\nI apologize for the mess.\n\n@rafaelfranca this is probalby more what you had in mind (I squashed all my commits, and left @yahonda's separate).\n\n@tenderlove could you review this one?\n\nOh, I upgraded to ruby 1.9.3 (was on 1.9.2), and I can run all the sqlite3 and postgresql tests with no errors:\n\n postgresql\n Finished tests in 231.744746s, 14.9475 tests/s, 45.5501 assertions/s.\n 3464 tests, 10556 assertions, 0 failures, 0 errors, 32 skips\n\n sqlite3\n Finished tests in 179.844340s, 18.5438 tests/s, 56.3932 assertions/s.\n 3335 tests, 10142 assertions, 0 failures, 0 errors, 12 skips", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/27598e1b77ce41fb0bd8a6fc4a3715d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6492', 'title': 'Fair connection pool2'}, {'body': 'I added too the result of running `rails generate controller welcome index`:\n\n create app/controllers/welcome_controller.rb\n route get "welcome/index"\n\nI think it\'s important because without it, the user don\'t know which files are generated and that some routes are generated either.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/40bd727b22d74930f292b63d45a71b07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6491', 'title': '[getting started] Update Setting the Application Home Page to show the generated get "welcome/index" route'}, {'body': 'This is a second attempt of https://github.com/rails/rails/pull/6416\n\nIt makes the connection pool "fair" with respect to waiting threads. I\'ve done some more measurements here: http://polycrystal.org/2012/05/24/activerecord_connection_pool_fairness.html The patch is also cleaned up compared to the first attempt; the code is much more readable.\n\nIt includes some test fixes from @yahonda that this patch triggered (though the failures seem unrelated to the code)\n\nI am still getting test failures, but I see the same failures against master: https://gist.github.com/2788538 And none of these seem related to the connection pool.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/27598e1b77ce41fb0bd8a6fc4a3715d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6488', 'title': 'Make connection pool fair'}, {'body': 'At 1bd4d1c67459a91415ee73a8f55d2309c0d62a87 was added Range#sum\noptimized version for arithmetic progressions. This improvment injected\na defect with not integer range boundaries. The defect was fixed by\ne0adfa82c05f9c975005f102b4bcaebfcd17d241. The second commit really\ndisabled optimization at all because in Ruby integer-valued numbers are\ninstances of Fixnum and Bignum classes. We should #use is_a?\n(#kind_of?) method instead #instance_of? to check if value is numerical:\n\n 1.class # => Fixnum\n 1.instance_of?(Integer) # => false\n 1.is_a?(Integer) # => true\n\n -100_000_000_000.class # => Bignum\n -100_000_000_000.instance_of?(Integer) # => false\n -100_000_000_000.is_a?(Integer) # => true\n\nMoreover original implementation of Range#sum has a defect with reverse\nrange boundaries. If the first boundary is less than the second range is\nempty. Current commit fixes and tests this case too.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/54e74983d81fa2fbe4c28e8392532f18?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6487', 'title': 'Fix Range#sum optimized version'}, {'body': 'We should sanitize it to avoid javascript:// xss.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6485', 'title': 'auto_link sanitize output'}, {'body': 'This fixes changes made in railties/lib/rails/paths.rb in\n4001835db00ce44cb75bca33ec02cd76b8ccc790. This also makes sure failures\nin build 4008.1[1] pass.\n\nAlso closes #6482 and #6473\n\n[1] http://travis-ci.org/#!/rails/rails/jobs/1429671/L203', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/910dbaf2f5dabdec5c05dedd5c47193e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6483', 'title': 'Return Pathname from Rails::Paths::Path#paths. Fixes build 4008.1'}, {'body': 'This fixex build 4008.1[1] because of the changes made in\n\n4001835db00ce44cb75bca33ec02cd76b8ccc790\n\n[1] http://travis-ci.org/#!/rails/rails/jobs/1429671', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/910dbaf2f5dabdec5c05dedd5c47193e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6482', 'title': 'Fixes build 4008.1'}, {'body': 'RoutePresenter has been removed, this test is not needed. Related conversation:\n\nhttps://github.com/rails/rails/commit/c3e3102904c98a6e05bee33616288323278692b8#commitcomment-1374990\n\n```shell\n~/documents/projects/rails/railties (schneems/sextant-routes) \n\u2192 bundle exec rake test:regular TEST=test/application/route_inspect_test.rb \n/Users/schneems/.rvm/rubies/ruby-1.9.3-rc1/bin/ruby -w -I"lib:test:/Users/schneems/Documents/projects/rails/railties/../activesupport/lib" -I"/Users/schneems/.rvm/gems/ruby-1.9.3-rc1@railscore/gems/rake-0.9.2.2/lib" "/Users/schneems/.rvm/gems/ruby-1.9.3-rc1@railscore/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb" "test/application/route_inspect_test.rb" \nRun options: --seed 18733\n\n# Running tests:\n\n..............\n\nFinished tests in 0.223237s, 62.7136 tests/s, 85.1113 assertions/s.\n\n14 tests, 19 assertions, 0 failures, 0 errors, 0 skips\n\n```\n\nFixes the tests for route_inspect_test', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6481', 'title': 'Remove Unnecessary Test from route_inspect_test'}, {'body': 'backport PR', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6479', 'title': 'Patch 9, xss in legacy auto_link'}, {'body': "I got feeling that solution for https://github.com/rails/rails/issues/1951 are incorrect by nature. We include path namespacing in partial so even if we define custom resolver or just modify append_view_path we can't avoid namespacing. I am not sure how to fix this, but for my needs (defining one partial template for front/backend of my application using to_partial_path) this simple fix works. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2b92928f3f39951cc97dc02a59fbb117?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6478', 'title': 'Absolute partial paths need to be preserved in namespace'}, {'body': "PQstatus doesn't properly test if future operations will succeed. A\nPQping function is added to libpq in PostgreSQL 9.1, but if we rely\non it, everyone on earlier versions of Postgres is out of luck,\nand the pg gem wouldn't have the 'fix' until the next release.\n\nThanks to @cbrecabarren and @ged for handling all the dirty details.\n\nCloses #3392.\n\n/cc @tenderlove @jonleighton", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6477', 'title': 'Properly discover a connection is closed in postgresql_adapter'}, {'body': "I started implementing a responsive design for the Rails guides. I've only tested it on Apple laptops & portable devices, but I wanted to get feedback before going much further. What further do we need to do to pull this in and get it deployed?\n\n(Note: I originally requested this on lifo/docrails and was asked to send it here instead)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9d778043b9c008cf3f5c6bc52e648c53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6475', 'title': 'Responsive guides'}, {'body': 'commit 4001835db00ce44cb75bca33ec02cd76b8ccc790', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6473', 'title': 'Build fix for pathname removal.'}, {'body': '...15295bb11d', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/37fb5d7247d26fbd3ae3fff62de978c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6472', 'title': 'subsequent commit of use File.join commit:4e5175e9570304a5efd148d11b062f15295bb11d'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6471', 'title': 'Fixes possible backward incompatibility'}, {'body': "This helps to render url's correctly in templates when rendering them in processes where request object is not present.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f7412b373affd1d6db10752cf5d69315?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6468', 'title': 'Adding ability to pass protocol in image_path helper as option'}, {'body': "Fixes #6464\n\nSynchronize the contents of the release method in ConnectionPool due to\nerrors when running in high concurrency environments.\n\n Detected invalid hash contents due to unsynchronized modifications with concurrent users\n org/jruby/RubyHash.java:1356:in `keys'\n /usr/local/rvm/gems/jruby-1.6.7@new_import/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:294:in `release'\n /usr/local/rvm/gems/jruby-1.6.7@new_import/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:282:in `checkin'", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d35d964695abd1bac108370eaf001af3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6467', 'title': 'Synchronize the body of the ConnectionPool#release method to improve thread safety.'}, {'body': '...deep_*_keys to use deep_transform_keys.\n\nGeneralizes the deep_stringify_keys and friends that were added by @lucashungaro.\n\nOpen to suggestions.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/185fff6d3aa5c70e337fa84b302050b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6466', 'title': 'Add Hash#deep_transform_keys and Hash#deep_transform_keys! Also convert ...'}, {'body': '\n\nAn AR ConnectionSpec `wait_timeout` is pre-patch used for three\ndifferent things:\n\n* mysql2 uses it for MySQL\'s own wait_timeout (how long MySQL\n should allow an idle connection before closing it), and\n defaults to 2592000 seconds.\n* ConnectionPool uses it for "number of seconds to block and\n wait for a connection before giving up and raising a timeout error",\n default 5 seconds.\n* ConnectionPool uses it for the Reaper, for deciding if a \'dead\'\n connection can be reaped. Default 5 seconds.\n\nPreviously, if you want to change these from defaults, you need\nto change them all together. This is problematic _especially_\nfor the mysql2/ConnectionPool conflict, you will generally _not_\nwant them to be the same, as evidenced by their wildly different\ndefaults. This has caused real problems for people #6441 #2894\n\nBut as long as we\'re changing this, forcing renaming the\nConnectionPool key to be more specific, it made sense\nto seperate the two ConnectionPool uses too -- these two\ntypes of ConnectionPool timeouts ought to be able to be\nchanged independently, you won\'t neccesarily want them\nto be the same, even though the defaults are (currently)\nthe same.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6a13e655e637138f8d571cec3f9cea76?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6463', 'title': 'ConnectionPool wait_timeout no longer used for different types of timeouts. #6441'}, {'body': 'Rebased version of pull #3393', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/59436ecd4fe6ad7c34f67654d839f05f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6462', 'title': 'Add license field to gemspecs, by Matt Griffin'}, {'body': 'Bring the functionality of [Sextant](http://github.com/schneems/sextant) natively to Rails 4. Rather than having to initialize your Rails application ever time you run `$ rake routes` we can utilize the currently running server to generate routes in much less time. To view routes go to `/rails/info/routes`, the section in `
` will match `$ rake routes`\n\n![](http://f.cl.ly/items/2q2U3l2S340X1Q3i0K2F/Screen%20Shot%202012-05-22%20at%205.36.39%20PM.png)\n\ncc/ @pixeltrix', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/db953d125f5cc49756edb6149f1b813e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6461', 'title': 'View your Routes without waiting on Rake'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5cba606090e5f29f910274796748f20a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6455', 'title': 'Remove unnecessary comment.'}, {'body': 'There were some classes no longer exists, it needs some review, mainly in the Rack::Builder and middlewares part.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/40bd727b22d74930f292b63d45a71b07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6454', 'title': '[guides] Update rails on rack'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6453', 'title': 'Added session.keys and session.values back to ActionDispatch::Request::Session'}, {'body': 'Since all date related helpers share the same behavior, I decided to remove some unnecessary duplication.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb96709a889695c9d0fe3edf4648ab7e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6452', 'title': 'Refactor date related input helpers'}, {'body': "Ruby 1.8 raises a TypeError when trying to modify a frozen Hash, while\nRuby 1.9 raises a RuntimeError instead. Also, Ruby < 1.9.3 uses a\nlowercase 'hash' in the exception message while Ruby >= 1.9.3 uses an\nuppercase 'Hash' instead. This commit normalizes those issues in the\ntest case.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6451', 'title': 'Fixes the build break caused by 9ee8528 in #6445.'}, {'body': "A version of #6449 on the master branch.\n\nCurrently, running rails generate resource admin/blog_post gives the following:\n\n```ruby\nMyApplication::Application.routes.draw do\n  namespace :admin do resources :blog_posts end\nend\n```\n\nThis patch fixes the whitespace, so it's generated as follows:\n\n```ruby\nMyApplication::Application.routes.draw do\n  namespace :admin do\n    resources :blog_posts\n  end\nend\n```\n\nIt's something that's been bugging me for ages, so I figured it was worth fixing. \n\nAll feedback welcome. Thanks guys!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6450', 'title': 'Master branch: Fixed generated whitespace in routes when using namespaced resource.'}, {'body': "Currently, running `rails generate resource admin/blog_post` gives the following:\n\n```ruby\nMyApplication::Application.routes.draw do\n  namespace :admin do resources :blog_posts end\nend\n```\n\nThis patch fixes the whitespace, so it's generated as follows:\n\n```ruby\nMyApplication::Application.routes.draw do\n  namespace :admin do\n    resources :blog_posts\n  end\nend\n```\n\nIt's something that's been bugging me for ages, so I figured it was worth fixing. I haven't checked to see if this is still an issue on master, but I'll add another PR if so.\n\nThanks guys!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6449', 'title': 'Fixed generated whitespace in routes when using namespaced resource.'}, {'body': "I was looking for instructions on backporting changes the other day and\nwasn't able to find it anywhere. I updated the contrib guides based on\nthe disccusion in #6420 and #6215.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6447', 'title': 'Added instructions for backporting changes to guides.'}, {'body': 'this pull request fixes #6328 and it was also discussed on https://github.com/rails/rails/pull/6436', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6446', 'title': 'Mini xml 4'}, {'body': 'This is a 3-2-stable backport for #6420 which was merged into master.\n\nCurrently, when saving a frozen record, an exception would be thrown\nwhich causes a rollback. However, there is a bug in active record that\n"defrost" the record as a side effect:\n\n    >> t = Topic.new\n    => #\n    >> t.freeze\n    => #\n    >> t.save\n    RuntimeError: can\'t modify a frozen Hash\n    >> t.frozen?\n    => false\n    >> t.save\n    => true\n\nThis patch fixes the bug by explictly restoring the frozen state on the\nattributes Hash after every rollback.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6445', 'title': 'Restore the frozen state on rollback. (Backports #6420)'}, {'body': "I didn't know *hstore*, I didn't know that hstore_test.rb was skipped.\nI think that we should create *hstore* when building databases.\n\nor should guides be updated ?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6444', 'title': 'Create hstore extension when building PostgreSQL databases (for rails contributor).'}, {'body': 'Made the change as per the following text in [routing guide](http://edgeguides.rubyonrails.org/routing.html#using-root):-\n*"You should put the root route at the top of the file,\nbecause it is the most popular route and should be matched first."*\n\nHowever, if root is best left at bottom. We will have change text in guide. so both things don\'t contradict', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cb0b42e452cd13d469565a23a8abe441?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6440', 'title': 'Move root method at TOP of routes file'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8853f712852b03ba6646b59b1723f44d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6439', 'title': 'refactor lazy_load_hooks load position, fix #6435'}, {'body': 'The Gemfile of new application uses ruby 1.9 hashes. Gem method of\ngenerators should use them too. It prevents from mixing two kinds of\nsyntax in one file.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/54e74983d81fa2fbe4c28e8392532f18?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6437', 'title': 'Use new hash syntax for generators gem method'}, {'body': 'fixes #6328', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6436', 'title': 'Mini xml'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8853f712852b03ba6646b59b1723f44d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6435', 'title': 'remove useless require'}, {'body': 'Writing some tests discovered noisy bug with delete_if behaviour when trying to compare key with symbol.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/66bb6f8eee55156c9afbc62d178eb342?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6434', 'title': 'Bugfix. delete_if accepts symbols and strings indifferently for key comparsion.'}, {'body': 'Little whitespace fix too.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1d676127a3e4c0531e2d37dabef0a12d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6433', 'title': 'Fixed typo new_defautls -> new_defaults.'}, {'body': "This is an old bug where rake db:schema:dump imported all columns with the type enum as :limit => 0, making schema.rb don't work on with anything that relies on it(db:schema:load).\n\nThis issue were raised here: https://rails.lighthouseapp.com/projects/8994/tickets/997-dbschemadump-saves-enum-columns-as-varchar0-on-mysql\n\nAnd there's other posts on the web about it.\n\nI solved it by setting the limit as the biggest enum value string size. I wonder if shouldn't we just set it as like 255 to only make it work.\n\nI think it's also time that rails supports enum columns. There's plugins that do that, but I would gadly make it work.\n\nFeel free to comment about the code or the regexp, I will also gadly change it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56e905e1e4a9137194df95dce0a73a30?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6432', 'title': 'Fixed bug where enums limit were getting set as 0'}, {'body': 'Got hit by this bug today. Credits should go to Josep M. Bach , see #881.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b06d8e26b92456b228d3c77b66397534?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6429', 'title': 'Fix bug when Rails.application is defined but is nil. See #881'}, {'body': "Re-opening #6425 for further discussion as requested by @josevalim in #6427\n\nThis is a fix for #6404\n\nThe Template cache in the Resolver can be accessed by multiple threads similtaneously in multi-threaded environments. The cache is implemented using a Hash, which isn't threadsafe in all VMs (notably JRuby).\n\nThis includes three commits, the first puts a global lock around the whole process. The second improves this to add a more granular lock. Finally, some readability improvements for the caching logic.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6428', 'title': 'Make the Resolver template cache threadsafe'}, {'body': 'This is a backport of the following for 3-2-stable:\n685192bbcba7f887236ddf43ebb7d7dcf7409bd9 and\n719b008f1dae30c5fb6d09a371ae8d949c867a0c', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6427', 'title': 'Resolver concurrency fix, backport for 3-2-stable'}, {'body': "This was already applied to 3-2 in commit 565c1b0a0772ac6cf91c77e9285806f7b028614c, so here's the 'forward-port'.\n\nThis addresses an issue where in multi-threaded environments\nmultiple threads can attempt to compile a template at the same time,\nwhich occasionally causes particular templates to end up in a bad\nstate.\n\nSo, add synchronization such that only a single thread can attempt to\ncompile a template at one time.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6426', 'title': 'Prevent concurrent compilation of templates - closes #6400'}, {'body': "Replacement for #6412\n\nThis is a fix for #6404\n\nThe Template cache in the Resolver can be accessed by multiple threads\nsimiltaneously in multi-threaded environments. The cache is implemented\nusing a Hash, which isn't threadsafe in all VMs (notably JRuby).\n\nThis includes two commits, the first puts a global lock around the whole process.\nThe second improves this to add a more granular lock.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6425', 'title': 'Resolver concurrency fix'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f16c5c991a2412243d8d00054e5dab2e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6424', 'title': 'Refactoring: just turn unless/else into if/else'}, {'body': 'closes #6310\n\nbackported https://github.com/rails/sprockets-rails/pull/11 to 3-2-stable branch', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6423', 'title': "assets: don't add extension if other given and file exists"}, {'body': "Here's an updated version of #6412 with a more detailed commit message (@drogus)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6422', 'title': 'Resolver concurrency fix'}, {'body': 'My first patch for rails!\n\nWhen saving a frozen? record, active record would raise an exception to complain about the frozen attributes, rollback the transaction. However, it also has the side effect of unfreezing the record after the rollback. This behaviour is undesirable and incorrect (saving a frozen? record twice in a roll would fail for the first time and succeed in the second time). This patch fixes the bug by explicitly restoring the frozen? state after a rollback.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6420', 'title': 'Restore frozen state on rollback, fixes #6417'}, {'body': "When saving a `frozen?` record, active record would raise an exception to complain about the frozen attributes, rollback the transaction. However, it also has the side effect of unfreezing the record after the rollback. This behaviour is undesirable and incorrect (saving a `frozen?` record twice in a roll would fail for the first time and succeed in the second time). This patch fixes the bug by explicitly restoring the `frozen?` state after a rollback.\n\nThis is my first patch for rails, so I apologize in advance if this should go in master instead of 3-2-stable. I can reapply this to master if that's more appropriate.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/22bb3e56828870ee9a0dd93aeadbe04a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6419', 'title': 'Restores frozen state after rollback, fixes #6417 (for 3-2-stable)'}, {'body': "This is the diff in #6238 applied to 3-2-stable.\n\n/cc @tenderlove Thank you for merging #6238. Can you please consider this one as well, so Heroku app devs don't have to wait for Rails 4 to get the fix?\n\nThanks so much!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d7b97642d7aeaf1011ec19e5779144e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6418', 'title': "Postgresql doesn't accept limits on binary (bytea) columns (for 3-2-stable)"}, {'body': 'Introduction: I\'m using JRuby in a Java servlet container to run an application that uses ActiveRecord.  This is a fully multithreaded environment where a thread pool services http requests, possibly in parallel.  I\'ve been having problems with timeouts when obtaining a database connection with only moderate concurrent requests.\n\n(Reducing the size of the thread pool to match that of the connection pool may be one option, but I am running multiple apps in the servlet container all sharing one thread pool...  So for now, the thread pool is 32 and the connection pool is 5).\n\nI\'m putting this patch out there to solicit comments.  I think it needs more testing.  I may have a chance this week to test in a real application, but for now I only have my two benchmark scripts ar_test.rb (for JRuby) and ar_test_mri.rb. Notably, I have not tested the behavior when connections are removed explicitly or removed by the reaper.\n\nI also do not understand the distinction between PoolFullError and ConnectionTimeoutError.  I also introduced an @available array of connections ready to be checked out.  At the time this seemed like a reasonable idea, but I had to make some inelegant additions (essentially everywhere @connections is modified, @available must be also, e.g. #clear_reloadable_connections).\n\nI apologize for the length of this report.\n\ntl;dr **the fairness patch reduces outliers in time to acquire a connection but needs review and testing**\n\nThe test suite passes, tested on Linux/Ruby-1.9.2-p290.\n\n    activerecord$ bundle exec rake test_sqlite3\n    Finished tests in 193.646555s, 17.1859 tests/s, 52.2653 assertions/s.\n    3328 tests, 10121 assertions, 0 failures, 0 errors, 12 skips\n\n----\n\nThis patch makes the connection pool "fair" in the first-come, first-served sense.  It also avoids using the Timeout class (which spawns a dedicated thread for each connection checkout attempt that needs to to wait with a timeout).\n\nI\'ve added two tests that fail before applying this patch.  The first ensures the connection pool is fair by queuing up several waiting threads and ensuring they acquire connections in order as connections are made available.  The connections are trickled in one by one because we don\'t actually care when two connections become available that order is strictly preserved.\n\nThe second queues up two groups of waiting threads, then checks in enough connections for group 1 all at once.  The test ensures that only the group 1 threads acquired connections.\n\nA third test is the money test but was removed because it was unreliable.  It attempted to test latency in a Java-servlet-like environment by setting up a thread pool and having each thread check connections in and out.\n\nInstead, I used ar_test.rb to obtain histograms of the time per simulated request (checkout connection; sleep 0.01s; checkin connection).\n\nTests with ar_test.rb and JRuby 1.6.6\n=====================================\n\nActiveRecord 3.2.3, JRuby 1.6.6\n-------------------------------------\n\n    $ bundle exec jruby --1.9 ar_test.rb\n    10000 reqs in 24.666 = 405.4 req/s\n    min/max/mean 0.01/2.37/0.08\n    histogram\n    [0.00,0.03) ooooooooooooooo\n    [0.03,0.05) o\n    [0.05,0.08) oooooooooooooooooooooooooooooooo\n    [0.08,0.10) ooooo\n    [0.10,0.13) o\n    [0.13,0.15) oooooo\n    [0.15,0.18) o\n    [0.18,0.20) oo\n    [0.20,0.22) o\n    [0.22,0.25) oo\n\nActiveRecord edge without fairness patch JRuby 1.6.6\n----------------------------------------------------\n\n    Gave up after long time.  Many errors like this (notice time much longer than 5 s timeout):\n\n    took 120.067s to acquire and release\n    execution expired /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:106:in `await\'\n\n\nActiveRecord edge with fairness patch, JRuby 1.6.6\n--------------------------------------------------\n\n    $ bundle exec jruby --1.9 ar_test.rb\n    ActiveRecord::VERSION 4.0.0.beta\n    10000 reqs in 24.8 = 403.7 req/s\n    min/max/mean 0.06/1.48/0.08\n    histogram\n    [0.00,0.03) \n    [0.03,0.05) \n    [0.05,0.08) ooooooooooooooooooooooooooooooooooooooooooooooooo\n    [0.08,0.10) ooooooooooo\n    [0.10,0.13) o\n    [0.13,0.15) o\n    [0.15,0.18) o\n    [0.18,0.20) o\n    [0.20,0.22) o\n    [0.22,0.25) o\n\nTests with ar_test_mri.rb and JRuby 1.6.6\n=====================================\n\nActiveRecord 3.2.3, Ruby 1.9.2-p290\n-------------------------------------\n\n    Sometimes errors like this:\n\n    could not obtain a database connection within 5 seconds (waited 5.000125524999999 seconds). The max pool size is currently 5; consider increasing it. /home/pat/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:248:in `block (2 levels) in checkout\'\n\n    $ bundle exec ruby ar_test_mri.rb  # ruby 1.9.2-p290\n    ActiveRecord::VERSION::STRING 3.2.3\n    10000 reqs in 21.0 = 475.7 req/s\n    min/max/mean 0.01/4.74/0.07\n    histogram\n    [0.00,0.03) ooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n    [0.03,0.05) o\n    [0.05,0.08) o\n    [0.08,0.10) \n    [0.10,0.12) o\n    [0.12,0.15) o\n    [0.15,0.17) o\n    [0.17,0.20) o\n    [0.20,0.22) o\n    [0.22,0.25) ooo\n\nActiveRecord edge without fairness patch, Ruby 1.9.2-p290\n---------------------------------------------------------\n\n    Again, many "execution expired" errors.\n\nActiveRecord edge with fairness patch, Ruby 1.9.2-p290\n------------------------------------------------------\n\n    $ bundle exec ruby ar_test_mri.rb   # ruby 1.9.2-p290\n    ActiveRecord::VERSION::STRING 4.0.0.beta\n    10000 reqs in 21.147658059 = 472.86559921202286 req/s\n    min/max/mean 0.01/0.12/0.07\n    histogram\n    [0.00,0.03) o\n    [0.03,0.05) o\n    [0.05,0.08) ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo\n    [0.08,0.10) o\n    [0.10,0.12) o\n    [0.12,0.15) \n    [0.15,0.17) \n    [0.17,0.20) \n    [0.20,0.22) \n    [0.22,0.25) \n\nSo in both Ruby 1.9.2 and JRuby, ActiveRecord 3.2.3 has perhaps a better median but more variation with a few requests taking significantly longer than the others.\n\nI\'m only including ar_test_mri.rb here.  The ar_test.rb script has only had cosmetic changes and is available in this other pull request: https://github.com/rails/rails/pull/6398\n\n    require \'active_record\'\n    require \'thread\'\n\n    SHUTDOWN = Object.new.freeze    # used to shutdown threads in pool\n\n    config = {\n      \'adapter\' => \'sqlite3\',\n      \'database\' => \':memory:\'\n    }\n\n    ActiveRecord::Base.establish_connection(config)\n    ActiveRecord::Base.clear_active_connections!\n\n    times = []\n    times.extend(MonitorMixin)\n\n    work = Queue.new\n\n    thread_pool_size = 32\n    nrequests = 10000\n\n    threads = (1..thread_pool_size).map do |i|\n      Thread.new do\n        while work.pop != SHUTDOWN\n          t0 = Time.now\n          begin\n            ActiveRecord::Base.connection_pool.connection\n            sleep 0.010\n            ActiveRecord::Base.clear_active_connections!\n          rescue => err\n            puts "#{err.message} #{err.backtrace.join("\\n\\t")}"\n          ensure\n            times.synchronize { times << (Time.now - t0) }\n          end\n        end\n      end\n    end\n\n    t0 = Time.now\n\n    nrequests.times { |i| work.push i }\n    thread_pool_size.times { work.push SHUTDOWN }\n    threads.each(&:join)\n\n    elapsed = Time.now - t0\n\n    puts "ActiveRecord::VERSION::STRING #{ActiveRecord::VERSION::STRING}"\n    puts "#{nrequests} reqs in #{elapsed} = #{nrequests/elapsed} req/s"\n    puts "min/max/mean %0.2f/%0.2f/%0.2f" % [times.min, times.max, times.reduce(&:+)/times.size]\n\n    def clamp(n, min, max)\n      [[n, min].max, max].min\n    end\n\n    def hist(values, nbuckets = 10, min = values.min, max = values.max)\n      step = (max - min) / nbuckets.to_f\n      buckets = Array.new(nbuckets, 0)\n      values.each do |v|\n        i = clamp(((v - min) / step).floor, 0, nbuckets-1)\n        buckets[i] += 1\n      end\n\n      start = 0\n      buckets.each do |count|\n        print "[%0.2f,%0.2f) " % [start, start + step]\n        ntics = (count.to_f / values.size * 60).ceil # 60 screen cols\n        puts \'o\' * ntics\n        start += step\n      end\n    end\n\n    puts \'histogram\'\n    hist(times, 10, 0.00, 0.25)\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/27598e1b77ce41fb0bd8a6fc4a3715d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6416', 'title': 'Make connection pool fair with respect to waiting threads.'}, {'body': "I would like to start a discussion about ensuring that every helper is requireable on its own. In my project at work, I have tests that sits outside of Rails. One of my classes uses a helper out of ActionView. I shouldn't have to require all of ActionView or ActionPack just to be able to use one method from one helper. I should be able to just require the file I need and keep going.\n\nUnfortunately, this is not the case for NumberHelper -- if you require it and then try to use one of its methods, you get:\n\n~~~\n~/code/github/forks/rails/actionpack on ruby 1.9.3-p125-falcon (master)\n$ ruby -I actionpack/lib -r action_view/helpers/number_helper -e 'h = Object.new.extend(ActionView::Helpers::NumberHelper); h.number_to_currency(2)'\n/Users/elliot/code/github/forks/rails/actionpack/lib/action_view/helpers/number_helper.rb:131:in `number_to_currency': undefined method `symbolize_keys' for {}:Hash (NoMethodError)\n\tfrom -e:1:in `
'\n~~~\n\nI've quickly patched NumberHelper so that this is possible. However, I imagine that some of the other helpers are this way, too, and if so I'd be happy to fix them and add tests to confirm that this works.\n\nI appreciate how Yehuda Katz tried to keep this in mind when working on Rails 3, but it seems that this mindset has been abandoned since he left, which is a bit of a shame. What's the consensus on this issue?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e9e852b18079792bc5f4ec52b8e37c53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6414', 'title': 'ActionView: Ensure that NumberHelper is requireable on its own'}, {'body': "This is a fix for #6404\n\nThe Template cache in the Resolver can be accessed by multiple threads\nsimiltaneously in multi-threaded environments. The cache is implemented\nusing a Hash, which isn't threadsafe in all VMs (notably JRuby).\n\nThis includes two commits, the first puts a global lock around the whole process.\nThe second improves this to add a more granular lock.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6412', 'title': 'Make the Resolver template cache threadsafe'}, {'body': "Here's an updated fix for #6404, moving the caching into a separate threadsafe class.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6411', 'title': 'Resolver concurrency fix'}, {'body': 'As requested by @rafaelfranca in this thread: https://github.com/rails/rails/pull/2036', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8538bd148e2bc82674009a35eabc8948?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6410', 'title': 'TagHelper creates invalid data attributes when value is a BigDecimal'}, {'body': 'Changed `AbstractController::Callbacks` to use `define_method` when creating `before_filter`, `after_filter`, etc. instead of `class_eval`.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/11591979f29ab9c2bb58868232d07b88?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6409', 'title': 'Refactor Filter Methods'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a8ff938bbf4767e0a2e325f5b6598dd3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6408', 'title': 'Fixed typo in AR test name'}, {'body': 'Updated block style with respect to #6406', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6407', 'title': 'Template concurrency fixes'}, {'body': "This rolls in josevalim's request for a comment for the fix for #6400 in pull request #6401.\n\nAlso two new commits fixing another concurrency issue #6404. First a simplistic implementation, then a more optimal one - but one that probably needs further discussion.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6406', 'title': 'Template concurrency fixes'}, {'body': "This rolls in josevalim's request for a comment for the fix for #6400.\n\nAlso two new commits fixing another concurrency issue #6404. First a simplistic implementation, then a more optimal one - but that probably needs further discussion.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6405', 'title': 'Fix template compilation concurrency issue, and template caching concurrency'}, {'body': "I've added next_quarter of Time same as next_month and next_year.(and also prev_quarter method)\n\nBest regards.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/36061ba990c53f6df458f987c50f4741?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6402', 'title': 'Add prev_quarter and next_quarter method'}, {'body': 'This addresses issue #6400.\n\nI made the change against 3.2.3-rc2, but it also applies almost cleanly against master (just a few whitespace issues) and cleanly against 3.1-stable.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7550f06afec9b1ffffa7687c5e2b93d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6401', 'title': 'Fix template compilation concurrency issue'}, {'body': '- Fixes #5899', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5d38ab152e1e3e219512a9859fcd93af?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6399', 'title': 'Raise Assertion instead of RoutingError for routing assertion failures.'}, {'body': 'I am running JRuby 1.6.7 (1.6.6 locally) on Glassfishv3, OpenJDK. I am running a Rack\napplication that uses ActiveRecord 3.0.12 and/or 3.2.3. Glassfish\nmaintains a thread pool which it uses to service HTTP requests in a\nmultithreaded fashion. I am running into concurrency problems.\n\nI have created a small JRuby-only test script that, at least on my\nmachine, reliably triggers the error. The script sets up active\nrecord and then in a thread pool with 32 threads acquires and releases\nconnections from the connection pool.\n\nWith activerecord 3.2.3 and master (2012-05-19) I see the following error:\n\n Detected invalid hash contents due to unsynchronized modifications with concurrent users org/jruby/RubyHash.java:1356:in `keys\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in `release\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:255:in `checkin\'\n /home/pat/.rbenv/versions/jruby-1.6.6/lib/ruby/1.9/monitor.rb:201:in `mon_synchronize\'\n /home/pat/.rbenv/versions/jruby-1.6.6/lib/ruby/1.9/monitor.rb:200:in `mon_synchronize\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:250:in `checkin\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:158:in `release_connection\'\n /home/pat/.rbenv/versions/jruby-1.6.6/lib/ruby/1.9/monitor.rb:201:in `mon_synchronize\'\n /home/pat/.rbenv/versions/jruby-1.6.6/lib/ruby/1.9/monitor.rb:200:in `mon_synchronize\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:156:in `release_connection\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:373:in `clear_active_connections!\'\n org/jruby/RubyHash.java:1229:in `each_value\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:373:in `clear_active_connections!\'\n /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_handling.rb:93:in `clear_active_connections!\'\n ar_test.rb:85:in `(root)\'\n org/jruby/RubyProc.java:258:in `call\'\n\nAfter applying my patch, I do not get the concurrency error. I am\nalso able to run the test suite for sqlite3 and postgresql.\n\n $ bundle exec rake test_sqlite3\n Finished tests in 189.794817s, 17.5242 tests/s, 53.2839 assertions/s.\n 3326 tests, 10113 assertions, 0 failures, 0 errors, 12 skips\n\n $ bundle exec rake test_postgresql\n Finished tests in 232.008693s, 14.8874 tests/s, 45.3517 assertions/s.\n 3454 tests, 10522 assertions, 0 failures, 0 errors, 32 skips\n\n----\n\nAfter this patch, I do get another error with connection timeouts that\nI am also seeing on my Glassfish system:\n\n took 135.078s to acquire and release\n execution expired /home/pat/dev/ruby/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:106:in `await\'\n ...\n\nI believe it happens because the connection pool queue does not grant\na newly available connection to the first waiter in the queue. But\nI\'ll leave for a future bug report; I\'m yet not sure if ActiveRecord\nor JRuby is at fault.\n\n----\n\nHere is the test script. The expected output is nothing. It prints\nany exceptions that are raised. It runs for a long time, and may or\nmay not be able to reproduce the concurrency error, but on my system\nit does reproduce it reliably. I\'m not sure how to turn this script into a useful unit test,\nmostly since it needs to run for a "long time" to even trigger the bug.\nAny suggestions?\n\nExecuted like this:\n\n bundle exec jruby --1.9 ar_test.rb\n\nThe Gemfile:\n\n source \'http://rubygems.org\'\n\n gem \'activerecord-jdbch2-adapter\'\n\n gem \'activerecord\', :path => \'../rails/activerecord\'\n gem \'activesupport\', :path => \'../rails/activesupport\'\n gem \'activemodel\', :path => \'../rails/activemodel\'\n gem \'active_record_deprecated_finders\', :path => \'../active_record_deprecated_finders\'\n\nThe script itself:\n\n require \'java\'\n\n require \'active_record\'\n require \'thread\'\n\n config = {\n \'adapter\' => \'jdbch2\',\n \'database\' => \'mem:db\'\n }\n\n ActiveRecord::Base.establish_connection(config)\n ActiveRecord::Base.clear_active_connections!\n\n executor = Java::java.util.concurrent.Executors.newFixedThreadPool(32)\n\n task = proc do\n t0 = Time.now\n begin\n ActiveRecord::Base.connection_pool.connection\n sleep (rand(50) / 1000.0)\n ActiveRecord::Base.clear_active_connections!\n rescue => e\n [Time.now - t0, e]\n else\n [Time.now, nil]\n end\n end\n\n n = 100000\n (1..n).map do\n executor.submit(task)\n end.map do |future|\n time, err = future.get\n if err\n puts "took #{time}s to acquire and release"\n puts "#{err.message} #{err.backtrace.join("\\n\\t")}"\n end\n end\n\n executor.shutdown\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/27598e1b77ce41fb0bd8a6fc4a3715d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6398', 'title': 'Synchronize read and modification of @reserved_connections '}, {'body': 'When I executed rake command in activerecord directory, I had 2 failures.\nI realize the cause of this problem - exception.message method returns localized messesage string.\n\n```\n$ ARCONN=postgresql ruby -Ilib:test test/cases/adapter_test.rb\n\n 1) Failure:\ntest_foreign_key_violations_are_translated_to_specific_exception(ActiveRecord::AdapterTest) [test/cases/adapter_test.rb:134]:\n[ActiveRecord::InvalidForeignKey] exception expected, not\nClass: \nMessage: <"PG::Error: ERROR: \u30c6\u30fc\u30d6\u30eb\\"fk_test_has_fk\\"\u3078\u306e\u633f\u5165\u3001\u66f4\u65b0\u306f\u5916\u90e8\u30ad\u30fc\u5236\u7d04\\"fk_name\\"\u306b\u9055\u53cd\u3057\u3066\u3044\u307e\u3059\\nDETAIL: \u30c6\u30fc\u30d6\u30eb\\"fk_test_has_pk\\"\u306b\u30ad\u30fc(fk_id)=(0)\u304c\u3042\u308a\u307e\u305b\u3093\\n: INSERT INTO fk_test_has_fk (fk_id) VALUES (0)">\n---Backtrace---\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:790:in `async_exec\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:790:in `block in execute\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:288:in `block in log\'\n/home/kennyj/rails/activesupport/lib/active_support/notifications/instrumenter.rb:18:in `instrument\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:283:in `log\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:789:in `execute\'\ntest/cases/adapter_test.rb:140:in `block in test_foreign_key_violations_are_translated_to_specific_exception\'\n---------------\n\n 2) Failure:\ntest_uniqueness_violations_are_translated_to_specific_exception(ActiveRecord::AdapterTest) [test/cases/adapter_test.rb:127]:\n[ActiveRecord::RecordNotUnique] exception expected, not\nClass: \nMessage: <"PG::Error: ERROR: \u91cd\u8907\u30ad\u30fc\u304c\u4e00\u610f\u6027\u5236\u7d04\\"index_subscribers_on_nick\\"\u306b\u9055\u53cd\u3057\u3066\u3044\u307e\u3059\\nDETAIL: \u30ad\u30fc (nick)=(me) \u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\\n: INSERT INTO subscribers(nick) VALUES(\'me\')">\n---Backtrace---\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:790:in `async_exec\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:790:in `block in execute\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:288:in `block in log\'\n/home/kennyj/rails/activesupport/lib/active_support/notifications/instrumenter.rb:18:in `instrument\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:283:in `log\'\n/home/kennyj/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:789:in `execute\'\ntest/cases/adapter_test.rb:128:in `block in test_uniqueness_violations_are_translated_to_specific_exception\'\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6397', 'title': 'Fix a problem of translate_exception method in a Japanese (non English) environment.'}, {'body': "I found the following output in the Travis CI.\n\n```\n...\n.NOTE: MiniTest::Unit::TestCase#assert_block is deprecated, use assert. It will be removed on or after 2012-06-01. Called from /home/vagrant/builds/rails/rails/activesupport/test/ts_isolated.rb:13:in `block (2 levels) in '\n...\n```\n\nI can reproduct this problem by the following command.\n\n```\n$ bundle exec rake test:isolated\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6396', 'title': "Don't use assert_block method. It will be removed."}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6395', 'title': 'Fix warning: shadowing outer local variable - constant.'}, {'body': 'I noticed that rails http authentication currently always returns a string like "HTTP Basic: Access denied." regardless of the request Accept header. \n\nWe got reports of this causing some clients problems (I guess they are expecting json, and always attempting to parse the body as json). \n\nI thought I\'d experiment with modifying rails to respond with some valid json when accept is for json, and likewise for xml.\n\nIs this a good idea?\n\nfor json it will now return something like:\n\n```json\n{"error":"HTTP Basic: Access denied."}\n```\n\nor xml\n```xml\nHTTP Basic: Access denied.\n```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c68d7d0679939320c3c17b6b318cd1e2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6394', 'title': 'http basic auth failures respect request.accept for json/xml'}, {'body': "Example:\n\n```ruby\n# Having a class with a collection:\nclass Person < ActiveRecord::Base\n has_many :pets\nend\n\nperson.pets.size # => 2\nperson.pets.empty? # => false\n\n# defining a criteria inside a block\nperson.pets.empty? { |pet| pet.name.nil? } # => true\n```\n\nIf it's accepted, i will update CollectionProxy#empty? documentation.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6392', 'title': 'CollectionAssociation#empty? can take a block to define a criteria'}, {'body': 'This pull request fixes route inspection for routes that are redirection.\n\nroutes.rb:\n\n```ruby\nFooBar::Application.routes.draw do\n match "/foo" => redirect("/bar")\nend\n```\n\n`rake routes` now:\n\n```\nfoo /foo(.:format) :controller#:action"\n```\n\nafter patch, fixed:\n\n```\nfoo /foo(.:format) Redirect (301)\n```\n\n\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e28434223c9c5d2ee0d7f7b7c887b36a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6391', 'title': 'Redirect route inspect'}, {'body': '@jonleighton I feel guilty even submitting a pull request this small, but it looks like a 1.8-incompatible syntax change made it into a backport from 4.0. :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2274a7476f6d2ac7aedcdec0651d0542?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6390', 'title': 'Invalid ruby18 syntax in habtm'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6388', 'title': 'Fix warning: possibly useless use of % in void context'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6387', 'title': "Fix test: can't convert Regexp to String"}, {'body': 'It seems that we didn\'t have consistency of *logs name* ("SCHEMA"), and I fixed it.\nIn addition, *name* arguments usually weren\'t used, and I also fixed it. \n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6386', 'title': 'Fix logs name consistency.'}, {'body': 'Extended from https://github.com/lifo/docrails/commit/3c91c8127050c7abbe091c19052f9813a62b1af7#commitcomment-1346945', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6385', 'title': 'add docs to CollectionProxy'}, {'body': "I've just made various small changes to the text_helpers file to make it more readable and standardise it a little. The only tiny functionality change is a `===` vs `==` which I've annotated inline.\n\nI've symbolised the keys of the options hash and used `options.fetch(:foobar, x)` instead of `options[:foobar] ||= x` as per discussion at https://groups.google.com/forum/?hl=en&fromgroups#!topic/rubyonrails-core/jjIDHOhqT9E\n\nI'm happy to revert or change any bits that people don't like, but I'm also happy to implement the changes that people do like more widely, just to try and standardise the style as much as possible. It just takes less brain cycles if the code all looks the same.\n\nI hope it's helpful.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6384', 'title': 'Tidied and standardised text_helper implementations.'}, {'body': '\\cc @vijaydev @fxn', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6383', 'title': 'Add oscardelben to authors'}, {'body': 'In the `up`, `down` methods the migration action can never be `add`, as that is handled in the `change` method,', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6382', 'title': 'Refactor migration generator'}, {'body': 'related to #6352', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6380', 'title': "doesn't modify params in SafeBuffer#%"}, {'body': 'Deprecation messages to go with #6371 (cc @rafaelfranca)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6377', 'title': 'Deprecate old APIs for highlight, excerpt and word_wrap'}, {'body': "The current implementation of numeric timestamps is to only include up\nto the second. Unfortunately, when running tests, many things can (and\nshould) happen within a single second and precision of a full second\nisn't enough. Milliseconds may be good here, but with fast-enough\nCPUs, a single test example may execute within that one-millisecond\nboundary, which may include multiple calls.\n\nMore importantly, in a production environment, precision of one second can\nbe far too much for cache invalidation (`AR::Base#cache_key` uses\n`Time#to_s(:numeric)`), as when two clients update the same record\nsimultaneously, the first update will be cached. Since the second update\nassigns the same value to `updated_at`, the first cached value is not\ninvalidated unless done so manually.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/76de16cb97b382f990c4798277e37bab?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6376', 'title': 'Increase numeric-timestamp precision to \xb5seconds'}, {'body': "# Bug Description:\n\nIf the `:controller` option in an url_for call contains a leading slash it\nwill be removed, which causes side-effects:\n\n```ruby\nmy_controller = '/Example'\nurl_for(:controller => my_controller)\nputs my_controller # => 'Example'\n```\n\nThe side-effects then affect plugins like will_paginate, which store the options to pass to `url_for` in an instance_variable. The functionality then breaks after the first call to `url_for`.\n\n# Resolution:\n\nThe route-set does not directly manipulate the string passed into `#url_for`.\nIt creates a copy without the leading slash if necessary.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3d698e2872c07061a455d9e250861235?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6375', 'title': 'remove side effects on :controller option in #url_for'}, {'body': 'Ragrding #6331 issue. Two methods, find_by_sql and count_by_sql are moved into Relation class. This should allow to easily manipulate the connection. Tests are passing.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a3e5e19a0d90edfd4eb094385f6617a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6374', 'title': 'Relocating find_by_sql into Relation'}, {'body': 'cc @josevalim @spastorino', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6373', 'title': 'AS::Callbacks: fix run_callbacks for objects with negative id'}, {'body': "The docs suggest that the middleware stack is an Array, and yet some\ncommon Array methods do not work (#unshift #shift #pop and #push) are\nthe most common array operations that are not implemented that I can\nthink of.\n\nTo this end, I have implemented them simply by delegating to the\nmiddlewares Array directly\n\n( This commit also fixes two whitespace issues, I will rebase them out if they shouldn't get to piggyback)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f39a093535874d323647c1cb64a6e36b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6372', 'title': 'Add some common Array methods to the middleware stack'}, {'body': 'A (hopefully) working pull request as per #6370 (cc @rafaelfranca)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6371', 'title': 'Removed old text_helper apis for highlight, excerpt and word_wrap'}, {'body': 'I have removed the old API functionality from text helpers as per https://groups.google.com/forum/#!msg/rubyonrails-core/Ta4JrLykxYA/t-pm4DyW_AMJ (cc @rafaelfranca)\n\nI will follow up with depreciation warnings in another pull request on the stable branch.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/955103d80e386882143a78875fb727bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6370', 'title': 'Removed old API functionality from actionpack text helpers'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/66bb6f8eee55156c9afbc62d178eb342?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6368', 'title': 'Support migrating from Hash to HashWithIndifferentAccess for accessing attributes.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6367', 'title': 'Fix validators docs [3-2-stable]'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6366', 'title': 'Fix validators docs'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6365', 'title': 'Fix warning: ambiguous first argument.'}, {'body': 'All klass.connection and @klass.connection are now just connection, which is delegated to klass. Tests are passing', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a3e5e19a0d90edfd4eb094385f6617a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6364', 'title': 'ActiveRecord::Relation select problem'}, {'body': 'Missed this line of documentation in #6361. Sorry for the extra PR. :/', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/185fff6d3aa5c70e337fa84b302050b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6363', 'title': 'Fix documentation around duplicable regarding Class and Module.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6362', 'title': 'AS::Callbacks: simplify logical statement'}, {'body': 'One approach to resolve #6265.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/185fff6d3aa5c70e337fa84b302050b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6361', 'title': 'Remove special cases for duplicable? on Class and Module'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6360', 'title': 'Fixed logger bug introduced by #2237'}, {'body': 'I started working on this since there were some other pull requests that were too old for a merge and the guys who created the pull requests didn\'t have time to update. Here they are: #5789 and #3826.\n\nI didn\'t add `input[type="time"]` because #5715 is handling this.\n\nComments are welcome.\n\nThanks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb96709a889695c9d0fe3edf4648ab7e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6359', 'title': 'Add HTML5 inputs'}, {'body': 'Now that migrations support instance methods, we should use the same instance\nrather than relying on delegation to a global instance. This allows\nsubclassing AR::Schema.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a82409021ddf415a8027872b889c5f74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6358', 'title': 'Call methods on the correct instance in AR::Schema.define'}, {'body': "Currently, it's hard to find where the mass-assignment error is because of poor logging.\n```\nWARNING: Can't mass-assign protected attributes: title, taken_on, url\n```\n\nso, this patch improves logging such as:\n```\nWARNING: Can't mass-assign protected attributes for Photo: title, taken_on, url\n test/unit/photos_test.rb:5:in `new'\n test/unit/photos_test.rb:5:in `block in '\n```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cf7b553387b247d737c60cfceabb2cea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6357', 'title': 'Improve logging of ActiveModel::MassAssignmentSecurity::Sanitizer'}, {'body': 'A user had an issue with a model name survey_analysis and a controller name survey_analyses while using CanCan.\n\nPlease see [here](https://github.com/ryanb/cancan/issues/595) for full details.\n\nThis trivial change fixes that issue.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7e7bb3bc9e522f86e090f1732adacada?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6356', 'title': 'Fix an issue with inflection'}, {'body': 'Recently, the dependency on safe_join was removed from number_helper. When this happened, delimiters and separators were no longer being html_escaped.\n\nFor example, \n```ruby\nnumber_with_delimiter(1000, :delimiter =>\'\')\n```\nwill produce the string\n```ruby\n"1000" \n```\nmarked as html_safe.\n\nThis pull request makes both delimiters and separators html_escaped, and adds tests for this behavior.\n\nSee https://github.com/rails/rails/commit/ecfb32cd165c0763befb7eed7e348438db928cef for more info\n\nLikely interested parties: @carlosantoniodasilva and @josevalim', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aed424af11b9f92cca6c051f75f013b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6355', 'title': 'NumberHelper.number_with_delimiter should html_escape both delimiters and separators'}, {'body': "- access & filters don't use multibyte ext\n- transliterate requires only AS::Multibyte but not multibyte ext", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18efee6ee5a12946d983169eff2540f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6354', 'title': 'remove unnecessary require'}, {'body': 'closes #6352', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6353', 'title': 'fix safe string interpolation with SafeBuffer#%'}, {'body': 'This patch is yet another small step to make `Callbacks` a library of my dream.\n\nBenchmark:\nhttps://gist.github.com/2710476\n\n```\nRunning benchmark with current working tree\nCheckout HEAD^\nRunning benchmark with HEAD^\nCheckout to previous HEAD again\n\n user system total real\n-----------------------------------------------set_callback\nAfter patch: 0.010000 0.000000 0.010000 ( 0.014398)\nBefore patch: 0.030000 0.000000 0.030000 ( 0.031771)\n\n-------------------------------------------define_callbacks\nAfter patch: 0.020000 0.000000 0.020000 ( 0.011218)\nBefore patch: 0.010000 0.000000 0.010000 ( 0.011084)\n\n----------------------------------------------run_callbacks\nAfter patch: 0.000000 0.000000 0.000000 ( 0.003216)\nBefore patch: 0.000000 0.000000 0.000000 ( 0.003345)\n\n----------------------------------------------skip_callback\nAfter patch: 0.010000 0.000000 0.010000 ( 0.012708)\nBefore patch: 0.020000 0.000000 0.020000 ( 0.017077)\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/91913f6ab8085bab0f2aa43995ba8ca2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6351', 'title': 'AS::Callbacks remove useless code, improve performance'}, {'body': "As it is if you enter an out of range `:limit` for a migration or new table, the raise is rescued and it defaults to `integer`. Based on `change_schema_test.rb` I guess it must have been because it was expected some people would use `:limit => 11` for MySQL expecting an `int(11)`, which isn't the same thing as an 11 byte int, which is what :limit is for.\n\nI believe this should raise, if it isn't a valid value, rather than silently changing what the user has specified, wrong as it may be.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6349', 'title': 'Integer limit out of range should be allowed to raise. Closes #6272'}, {'body': 'Updated version of #2310', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f11c73a95318bbf85e419c1727434d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6348', 'title': 'Allow ActiveSupport::Deprecation features to be used by rails applications and library authors'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/54e74983d81fa2fbe4c28e8392532f18?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6347', 'title': 'Fix misprint in AR changelog'}, {'body': "No other adapter makes this check, and if we're already here, I'm pretty sure that check is useless.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6346', 'title': 'Remove useless check of adapter'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6345', 'title': 'Remove tab'}, {'body': 'Relates to #6247.\n\nSQLite3 does not support the \'time\' data type. I feel like we shouldn\'t pretend it does.\n\nAs it is now, if you create a new record with time only, the year gets set as the current year in the database. However, as in issue #6247 when you do `Alert.all` it shows the year as being 2000. Subsequently you get this behavior:\n\n``` irb\nirb(main):028:0> Alert.create(start: Time.now)\n (0.1ms) begin transaction\n SQL (0.8ms) INSERT INTO "alerts" ("created_at", "start", "updated_at") VALUES (?, ?, ?) [["created_at", Wed, 16 May 2012 03:54:09 UTC +00:00], ["start", 2012-05-15 22:54:09 -0500], ["updated_at", Wed, 16 May 2012 03:54:09 UTC +00:00]]\n (2.4ms) commit transaction\n=> #\nirb(main):029:0> Alert.all\n Alert Load (0.3ms) SELECT "alerts".* FROM "alerts" \n=> [#]\nirb(main):030:0> Alert.last.start < Time.utc(2000, 1, 1, 3, 55, 0)\n Alert Load (0.2ms) SELECT "alerts".* FROM "alerts" ORDER BY "alerts"."id" DESC LIMIT 1\n=> true\nirb(main):031:0> Alert.where(\'start < ?\', Time.utc(2000, 1, 1, 3, 55, 0))\n Alert Load (0.3ms) SELECT "alerts".* FROM "alerts" WHERE (start < \'2000-01-01 03:55:00.000000\')\n=> []\n\n```\nIt isn\'t very consistent to show `start: "2000-01-01"` and yet not find it. The reason is it really has year 2012 in the database.\n\nI realize the year is just a dummy year since Ruby doesn\'t support any concept of time only. But the difference is MySQL and PostgreSQL don\'t actually store the year in the database, where as SQLite does, and it doesn\'t match what Rails displays.\n\nAs an aside, I had to add:\n\n``` ruby\nActiveRecord::Base.time_zone_aware_attributes = false\nActiveRecord::Base.default_timezone = :local\nTime.zone = nil\n```\nto a couple of the tests, because when I changed line 955 to skip SQLite3 adapter, those lines getting skipped at the end were causing those other two tests to fail. I don\'t see any tests that set those attributes and not set them back, but I guess something funny is going on there.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6344', 'title': "SQLite3 doesn't actually support the 'time' type."}, {'body': 'The reason for this is that the sqlite3 adapter requires 1.3.6\n\nhttps://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6343', 'title': 'Bump sqlite3 gem'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6342', 'title': 'Use try instead of checking for nil object'}, {'body': 'If one wants to use use Sass for application.css.sass the comment block indentation is invalid.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6341', 'title': 'Changing the indentation level of the block comment close for Sass'}, {'body': 'If one wants to use use Sass for application.css.sass the comment block indentation is invalid.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6340', 'title': 'Changing the indentation level of the block comment close for Sass'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ac590f036f709b213aa8a3e446e7b7ae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6339', 'title': 'Change multiple line unless to single line'}, {'body': 'If one wants to use use SASS for application.css.sass the comment block indentation is invalid.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6338', 'title': 'Changing the indentation level of the block comment close for SASS'}, {'body': 'If one wants to use use Sass for application.css.sass the comment block indentation is invalid.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed5f3e2d77dcf44a67efa72e09e9f28f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6337', 'title': 'Changing the indentation level of the block comment close for Sass'}, {'body': "3f352d0 introduced a failing test on PostgreSQL. The column lookup would be 'DISTINCT credit_limit', which isn't a column in the database. As a result, the pluck returns an array of strings, and the test fails. I'm not familiar enough with the guts of AR to know why it doesn't fail for the other databases.\n\nI'm not really sure that my change is the way to go about fixing this. It seems a bit sloppy. I'm sure some of you will have better ideas.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6336', 'title': 'Fixes issue where SQL fragments prevented type casting based on column'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/eb96709a889695c9d0fe3edf4648ab7e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6333', 'title': 'Remove unnecessary calls to primary_key on sqlite3_adapter'}, {'body': 'Travis exports `BUNDLE_GEMFILE`, this overwrites current dir `Gemfile` here: https://github.com/rails/rails/blob/master/railties/lib/rails/generators/app_base.rb#L256.\nIt was changing context and running `install` command on `BUNDLE_GEMFILE` instead of `Gemfile` here https://github.com/rails/rails/blob/master/railties/test/generators/plugin_new_generator_test.rb#L102.\n\nMost important addition here is validating that `#{destination_root}/Gemfile.lock` was created - which assures `bundle install` was run in proper `Gemfile` context.\n\nAs I had to run `ruby install.rb 4.0.0.beta` to make the test pass I assume it might still be failing - unless `rails ~> 4.0.0.beta` is installed ... maybe it already is?\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3ec52ed58eb92026d86e62c39bdb7589?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6332', 'title': 'improve tests for bundle_command'}, {'body': 'add a backport for initialize_dup', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6329', 'title': 'Backport dup validation 3 2'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6327', 'title': 'remove backported string interpolation'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6326', 'title': 'Removing empty lines of inflectors/transliterate'}, {'body': "We should only test the before_seq isn't same to the after_seq when using sequencer.\n\nPlease see this comments on https://github.com/rails/rails/pull/6123 .", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f0b221851379759360d7130dabdfa53?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6325', 'title': 'Remove unnecessary assertions. '}, {'body': "...for 3-2-stable\n\nIt Fixes #5953 the 3-2-stable, it's the same pull request of #6284", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6324', 'title': 'Dup validation 3 2'}, {'body': "Along with this change simply being more concise, I think it's also preferable that we teach people to use the `update_all` method where possible instead of:\n\n Product.all.each do |product|\n product.update_attributes!(:flag => 'false')\n end\n\nThis example above can get *extremely* slow with a lot of records because it first loads all the products into memory before writing to the database.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/420250f8607578bcf27f757d79dc4e5b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6323', 'title': "Documentation: make the 'Using Models in Your Migrations' example code more concise."}, {'body': '@vijaydev', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6322', 'title': 'corrected some misspelling'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6321', 'title': 'Backporting docs'}, {'body': 'the issue can be reproduce with:\n\n printf "source :rubygems\\n\\ngem \'rails\'\\n" > Gemfile\n bundle install\n bundle exec rails new app1\n rails new app2\n ls -l app*/Gemfile.lock\n\nIn the case of `app1` the command `bundle install` was run in context of already loaded Gemfile, which had totally different effect then expected.\n\nThis also fixes #6314.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3ec52ed58eb92026d86e62c39bdb7589?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6318', 'title': 'fix `bundle exec rails new app` not running `bundle install` properly'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4995c7ce9523ce00dea01362cb976196?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6317', 'title': 'add tests and external file backtrace for Routing::Mapper#draw'}, {'body': 'Hi,\n\nIn an earlier pull request I hoped we could decouple ActiveSupport from ActionView:\n\nhttps://github.com/rails/rails/pull/5675\n\nIt was suggested by @josevalim that instead of that approach, we move the number helpers from ActionView to ActiveSupport. In addition to his suggestion, this approach was a feature request in a separate issue:\n\nhttps://github.com/rails/rails/issues/3214\n\nIn this pull request I\'ve moved the functionality from NumberHelper in ActionView to ActiveSupport and added the methods to Numeric. So instead of including NumberHelper and writing "number_to_human(123)", you could just include ActiveSupport and write "123.to_human". The original NumberHelper methods are all left in place and accept the same options and behave the same (and just pass through to the AS implementation in Numeric).\n\nOther interested parties may include: @carlosantoniodasilva, @fxn, and @yfeldblum.\n\nLet me know if you\'d like any changes to this implementation.\n\nThanks,\nAndrew.\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aed424af11b9f92cca6c051f75f013b7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6315', 'title': 'Moving number helper from ActionView to Active Support'}, {'body': "Not sure if is valid but I'm opening this PR to discuss it. I think it could be useful to avoid security issues by default.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/89e57a28dfdb85e07b33f92783dbe349?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6313', 'title': 'Changing gitignore template to ignore files with sensitive data by default'}, {'body': "This addresses the issue brought up in #2394.\n\nI built this based on [@josevalim's suggestion](https://github.com/rails/rails/issues/2394#issuecomment-1920786), which involves creating a raw template and adding a deprecation message for default template handlers.\n\nOne issue with this as it stands is that the tests now throw some warnings; I should probably fix those up, but I wanted to get feedback on my test and this code first. I'm 99% sure that it's all good, but I've never dived into this part of Rails before.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/233c279c012ebac792aaa805f966cbc7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6309', 'title': 'Created a Raw handler for templates.'}, {'body': 'according to this commit 1c481be331f32a7', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6308', 'title': 'remove useless tests for Range#step'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e7f9d52790d6ef7dd61956c65b8117e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6307', 'title': 'Refactor App Generator Test'}, {'body': 'This was changed on master, but not on 3-2. I believe it should be updated on 3-2 as well, as the current documentation is not correct.\n\nRelates to #6291', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d309ddb80e1e28e6f8e3a9685d1f8b29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6306', 'title': '3 2 stable guide fix'}, {'body': 'finally got green build with ruby-prof changes.\n\nsecond commit fixes \n\n```ruby\n\n\n/Users/arunagw/checkouts/rails/actionpack/lib/action_view/helpers/number_helper.rb:257:in `number_with_delimiter\': undefined method `safe_join\' for # (NoMethodError)\n\tfrom /Users/arunagw/checkouts/rails/activesupport/lib/active_support/testing/performance.rb:242:in `format\'\n\tfrom /Users/arunagw/checkouts/rails/activesupport/lib/active_support/testing/performance.rb:105:in `report\'\n\tfrom /Users/arunagw/checkouts/rails/activesupport/lib/active_support/testing/performance.rb:91:in `run_profile\'\n\tfrom /Users/arunagw/checkouts/rails/activesupport/lib/active_support/testing/performance.rb:45:in `block in run\'\n\tfrom /Users/arunagw/checkouts/rails/activesupport/lib/active_support/testing/performance.rb:43:in `each\'\n\tfrom /Users/arunagw/checkouts/rails/activesupport/lib/active_support/testing/performance.rb:43:in `run\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:787:in `block in _run_suite\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:780:in `map\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:780:in `_run_suite\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:770:in `block in _run_suites\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:770:in `map\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:770:in `_run_suites\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:746:in `_run_anything\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:909:in `run_tests\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:896:in `block in _run\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:895:in `each\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:895:in `_run\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:884:in `run\'\n\tfrom /Users/arunagw/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/minitest/unit.rb:664:in `block in autorun\'\n[[:puke, [ApplicationTests::TestTest, "test_performance_test", #body

"} \n```\n\nit\'s definitely not the Rails way. Anyway, it\'s just an option that saves JSON-backend based apps from XSS and lame code either :). ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6287', 'title': 'set escaping HTML in json encoding to +true+'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6285', 'title': 'missplelling error in abstract_mysql_adapter'}, {'body': "If an istance that include validation is duped it keep track of errors of its 'parent', because both errors instances point to the same ActiveModel::Errors instance. This happen when before to call dup, ``` save or valid?``` is called. This Fixes #5953 and it was discussed on the pull request https://github.com/rails/rails/pull/5958", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6284', 'title': 'clean the erros if an object that includes validation is duped.'}, {'body': 'I think it will be more intuitive to have `only` as opposite for `except`. Because everywhere we can find these two methods/keys together.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ceb745dc6fd0e274005d8c9637cca631?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6283', 'title': 'Add Hash#only as alias for Hash#splice.'}, {'body': 'Rename `ActiveRecord::Fixtures` class to `ActiveRecord::FixtureSet`.

Instances of this class normally hold a collection of fixtures (records) loaded either from a single YAML file, or from a file and a folder with the same name.

This change makes the class name singular and makes the class easier to distinguish from modules like `ActiveRecord::TestFixtures`, which operates on multiple fixture sets, or `DelegatingFixtures`, `::Fixtures`, etc., and from the class `ActiveRecord::Fixture`, which corresponds to a single fixture.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/63c72161fba6e27cb05c078651c5e969?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6282', 'title': 'Rename "ActiveRecord::Fixtures" to "ActiveRecord::FixtureSet"'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6281', 'title': 'mispelling errors in render_text_test.rb'}, {'body': 'I think it just wrong to call private methods with `try` method. WDYT?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/608b32640d0fca097b40bc6a28cadc5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6280', 'title': "Object#try can't call private methods"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6279', 'title': 'mispelling error in actionpach changelog'}, {'body': 'It misses two commas in performance tests, the code is commented but we get an error when we use this part of code to configure the performance tests.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f94f8f42364591025aaed622d499f27?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6278', 'title': 'Add commas missing in performance tests'}, {'body': 'A while ago whitelist_attributes was commented and people could un comment it.\nescaping html in json is as well as mass assignment appears to be a security issue(XSS) and IMHO at least comment should presented in application.rb\n\nrelated https://gist.github.com/2655020\n', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6277', 'title': "Comment for active_support's option in application.rb"}, {'body': "Fixes these bugs with rails console:\n\n```term\n$ rails c special-production\nLoading development environment\n\n$ rails c -e test\ninvalid option: -e (OptionParser::InvalidOption)\n\n$ rails c --environment=test\ninvalid option: --environment=test (OptionParser::InvalidOption)\n\n$ rails c RAILS_ENV=test\nLoading development environment\nNo such file or directory - special-test (Errno::ENOENT)\n```\n\nConsole commands that use IRB need the ENV['RAILS_ENV'] to be set before config/application.rb loads and shifts ARGV so IRB doesn't fail.\n\nThe code to set this up was previously executed outside of a class definition in commands/console.rb and commands/dbconsole.rb . I've moved it to a class to remove duplication and add tests.\n\nIt seems that the original intention was that all these methods of setting the environment should be supported. (Plus it makes it consistent with other commands.)\n\n```term\n$ rails c --help\nUsage: console [environment] [options]\n -s, --sandbox Rollback database modifications on exit.\n -e, --environment=name Specifies the environment to run this console under (test/development/production).\n Default: development\n --debugger Enable the debugger.\n```\n\nSee also https://github.com/rails/rails/pull/3949 which this pull request replaces.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a6ad943eee0cec3804b89bc7bf865293?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6276', 'title': 'Fix various bugs with console arguments and improve test coverage'}, {'body': 'Refactored simple_format into another method called `paragraph_split`

With the `paragraph_split` method, you are now able to split paragraphs and wrap those in any tag you may want without confining yourself to the `

` tag.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b7d890bed68fa564c18ff00dfd8207cd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6273', 'title': 'Feature/simple format refactoring'}, {'body': 'Currently, documented "escape_html_entities_in_json" option is not working. As well as use_standard_json_time_format and encode_big_decimal_as_string parameters for JSON Encoder.

Developer should add them to application.rb (because it is an env-independent options). At the moment additions will not impact on JSON encoder settings - the patch fixes it.

Not sure about adding it to the generator of application.rb.
escape_html_entities_in_json is a very important option though, what about only this? / @wycats @josevalim

Bonus question: Why escape_html_entities_in_json is false? It was true a while ago and everything was OK.. thanks', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6271', 'title': 'configuration for active_support and JSON Encoding'}, {'body': 'Currently, documented "escape_html_entities_in_json" is not working. As well as use_standard_json_time_format and encode_big_decimal_as_string parameters for JSON Encoder.

Developer should add them to application.rb (because it is env-independent options). Currently additions will not impact anyhow on ActiveSupport - the patch fixes it.

Not sure about adding it to a generators. escape_html_entities_in_json is very important option though, should be added? / @wycats @josevalim', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6270', 'title': 'configuration for active_support and JSON Encoding'}, {'body': 'The same how it done in Hash#slice test. https://github.com/edtsech/rails/blob/master/activesupport/test/core_ext/hash_ext_test.rb#L414', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ceb745dc6fd0e274005d8c9637cca631?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6269', 'title': 'Add test Hash#except can receive more than one argument.'}, {'body': '.according with http://en.wikipedia.org/wiki/Robots_exclusion_standard', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/84ae9a1597150016abc3d68b39ccd7d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6268', 'title': "In robots.txt User-agent should be all downcase except for the first 'U'"}, {'body': 'First of all, it is false, since Rails 3.0,
* ActiveSupport.escape_html_entities_in_json now defaults to false.
* ActiveSupport.escape_html_entities_in_json from true to false to match previously announced Rails 3 defaults *DHH*
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d2881b5d4c082996a62f23055b61956d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6267', 'title': "No, it's false, by default + It's a not working option. "}, {'body': 'Remove unused private method `yaml_fixtures_key`.

This method was introduced in the initial commit in 2004, and has been removed form `master` in #4254.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/63c72161fba6e27cb05c078651c5e969?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6266', 'title': 'Remove unused private method'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6263', 'title': '3 1 stable'}, {'body': 'Thanks to @carlosantoniodasilva for b7080e767fdf8bf147abe5cc61ec4668f4404ee7', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ee85853909657f47c8a68e8a9bc7d992?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6262', 'title': 'Ruby prof fix'}, {'body': 'Update performance profiler to work with latest ruby-prof changes.

[Failing build](http://travis-ci.org/#!/rails/rails/jobs/1299018/L326)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/77237b97a465ae5a293ad323b7296837?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6261', 'title': 'Fix build 3-1-stable'}, {'body': 'Having been in discussions about the "best" way convert hash keys to a) integers last week and b) camelcase strings this week, I thought this would be helpful.

Also refactored `Hash#stringify_keys`, `Hash#stringify_keys!`, `Hash#symbolize_keys`, `Hash#symbolize_keys!` methods to use the transform_key methods.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/185fff6d3aa5c70e337fa84b302050b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6259', 'title': 'Add Hash#transform_keys and Hash#transform_keys!'}, {'body': 'Plugin generator crashes when using the --dummy-path option

Code was assuming the application name in `config/application.rb`
was module Dummy.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a59cda5de705716cbd18195a4dd68a56?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6258', 'title': 'Fixes issue #6251'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/40bd727b22d74930f292b63d45a71b07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6253', 'title': 'remove duplicate usage of Rack::Utils.status_code in LogSubscriber#process_action'}, {'body': ':unless_exist is already supported in memcachestore, and is very useful for any kind of locking implementation,
e.g. [gem_of_thrones](https://github.com/grosser/gem_of_thrones)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/59436ecd4fe6ad7c34f67654d839f05f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6252', 'title': 'add unless_exist option to memory store'}, {'body': "Rails allows to destroy models marked as read only. This pull request fixes that.

I'm gonna backport this pull request to 3-2-stable, if this one get's accepted.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ebecfa2fcf3adda56063f996b79ca6b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6250', 'title': "Don't allow to destroy readonly models"}, {'body': "When generating an error message, a format lookup is done for the
following keys:
errors.models.MODEL.attributes.ATTRIBUTE.format
errors.models.SUPERCLASS.attributes.ATTRIBUTE.format (if there's a superclass with I18n support)
errors.attributes.ATTRIBUTE.format
errors.format

If none of these keys are associated with an error format, the default
'%{attribute} %{message}' is used.

", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c9a6862c54191c2c9cfc389b354ddb37?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6249', 'title': 'Error message generation now supports more flexible error format lookup'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6244', 'title': 'Remove key argument from run_callbacks to fix build'}, {'body': "Ruby's all about aesthetics, wouldn't it be cool if we could use is_an? for method calls with arguments that start with a vowel.

E.g: ` [].is_an? Array # => true`

Yay or nay?", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ecd20118eccc74fbe790e75a923de7e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6243', 'title': 'Improved readability for object introspection (is_a?)'}, {'body': '@josevalim this fix the build.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6242', 'title': 'Removing key argument from run_callbacks method in abstract_controller'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd9079e8f5b64c6e9b6a3ad2ade0a5e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6241', 'title': 'AS::Callbacks#run_callbacks remove key argument'}, {'body': "PostgreSQL doesn't take a limit for binary columns so developers must choose between removing :limit from their binary column definitions, and not being able to target pgsql.

This change drops :limit specifications, when migrations are applied against a pgsql database. It's not ideal, because the limit information is lost. However, the mysql adapters do something similar to :text columns, so I hope the approach is OK.

This is a pain point for other developers:
http://stackoverflow.com/questions/4976368/heroku-migration-type-modifier-is-not-allowed-for-type-bytea
http://forums.xkcd.com/viewtopic.php?f=11&t=19087

The schema change in my commit makes the AcitiveRecord test suite fail on pgsql. After the adapter change, the tests pass again.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d7b97642d7aeaf1011ec19e5779144e0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6238', 'title': "Postgresql doesn't accept limits on binary (bytea) columns."}, {'body': "I would like to get some feedback before pushing it. Is it safe to return `new_target` from `replace`? I think that it should be fine as this becomes new target anyway, but maybe I'm missing something.

Another way would be to return new collection object, but target seems better as that's what you also get in `replace` in ruby.

/cc @tenderlove @jonleighton", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/582034b63279abeaa8e76acf12f5ee30?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6237', 'title': 'Fix CollectionAssociation#replace to return new target (closes #6231)'}, {'body': 'Simple update to ignore the Gemfile.lock when generating an engine.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1ccb5123d1af92e24b32cec62abcf9a8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6234', 'title': 'ignore Gemfile.lock'}, {'body': "Hi there,

Upgrading Rails 2.3 application to Rails 3 I run into issue where `ActiveResource::TimeoutError` doesn't load when application starts.

This is the vanilla Rails app to reproduce this issue https://github.com/spectator/rails_activeresource_exception

Given this line in a controller
```ruby
rescue_from ActiveResource::TimeoutError, :with => :service_error
```
application fails to start with `uninitialized constant ActiveResource::TimeoutError` unless `ActiveResource::Base` is explicitly called.

For example (rails console):
```shell
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > ActiveResource::TimeoutError
NameError: uninitialized constant ActiveResource::TimeoutError
\tfrom (irb):1
\tfrom /Users/spectator/.rvm/gems/ruby-1.9.3-p194@rails_activeresource_exception/gems/railties-3.2.3/lib/rails/commands/console.rb:47:in `start'
\tfrom /Users/spectator/.rvm/gems/ruby-1.9.3-p194@rails_activeresource_exception/gems/railties-3.2.3/lib/rails/commands/console.rb:8:in `start'
\tfrom /Users/spectator/.rvm/gems/ruby-1.9.3-p194@rails_activeresource_exception/gems/railties-3.2.3/lib/rails/commands.rb:41:in `'
\tfrom script/rails:6:in `require'
\tfrom script/rails:6:in `

'
1.9.3p194 :002 > ActiveResource::Base
=> ActiveResource::Base
1.9.3p194 :003 > ActiveResource::TimeoutError
=> ActiveResource::TimeoutError
```

Autoloading this constant helps to solve this issue.

Submitting to 3-2-stable, because `ActiveResource` is gone in master. All tests pass.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cba03b55d97669f58abd4784f2e6b161?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6230', 'title': 'ActiveResource::TimeoutError is not loaded'}, {'body': 'Cosmetics. Just a bit more consistent :)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c82630c82a3c675d2928804f432fcf17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/rails/rails/pulls/6229', 'title': 'Use single quotes on static strings in app template '}, {'body': 'This is a companion pull request for #6227 updating the CHANGELOG for activesupport to document the addition of #beginning_of_hour and #end_of_hour core extensions as merged to the 3-2-stable branch in #6170.

This pull request contains 2 commits. The first is the inclusion as outlined above. The second brings the 3-2-stable CHANGELOG up-to-date by adding missing entries for previous releases.

/cc @vijaydev

Thanks,

Mark.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/be9f8a7e49b430ac89efe1bc8aa1026d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6228', 'title': 'Updated activesupport CHANGELOG [for 3-2-stable]'}, {'body': 'This pull request consists of 2 commits, pick either/or/none at your pleasure. :)

The first contains an addition to the CHANGELOG for the addition of #beginning_of_hour and #end_of_hour core extensions as merged in #6156.

The second contains a consistency update for CHANGELOG entry indentation.

I will open up a second pull request for a similar change against 3-2-stable shortly.

/cc @vijaydev

Thanks,

Mark.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/be9f8a7e49b430ac89efe1bc8aa1026d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6227', 'title': 'Updated activesupport CHANGELOG'}, {'body': 'The pull request ensures that, when record gets committed to DB, transaction state gets updated from latest values. Without the patch, calling `save` from `after_commit :on => :create` callback will trigger `after_commit :on => :create` again, which I think is wrong. The current behaviour is also not historically consistent with, https://github.com/freelancing-god/after_commit .

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6cb0b3e9e50fe72285047eac56209f49?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6226', 'title': 'Update tranasaction state when record gets commited '}, {'body': 'html5 validation error for options_from_collection_for_select', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0cd98f4e263d306bc455ca750c31443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6225', 'title': 'HTML5 validation error with options_from_collection_for_select, fixes #5...'}, {'body': 'String is Enumerable in 1.8.7, which means that passing a String to remove_column was generating deprecation warnings during tests.

http://travis-ci.org/#!/rails/rails/jobs/1283165', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/77237b97a465ae5a293ad323b7296837?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/rails/rails/pulls/6223', 'title': 'Stop showing deprecations for Ruby 1.8.7 with remove_column'}, {'body': 'For now, when you pass a no value to ```



\xd7

This value should not be blank











```

Picture result:

![form example](http://img694.imageshack.us/img694/7397/capturedcran20120128170.jpg)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/00ad554948cf6a88f6591459e84f987f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1346', 'title': '[2.0 wip] Add alert support span in form'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1339', 'title': '2.0-wip: no debugger'}, {'body': '- Button with dropdown menu.
- Small info button.
- Text alignment for navigation with no icon.
- Text input form with prepended icon.
- Select input form with prepended icon.

TESTED with Google Chrome 17, Internet Explorer 8 and Firefox 9.01 on a Windows 7 machine.

QUICK LOOK to the new examples and descriptions: http://i.imgur.com/UJwmr.png', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e5436a0c87b98c2ec786e99a33660a8c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1320', 'title': '[2.0-wip] New examples to the Docs for Icons'}, {'body': 'Changes index.js to only build files that end in ".mustache".

This keeps it from processing (and erroring on) files like the invisible ".swp" files that vim adds to the directory.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1316', 'title': '[2.0-wip] Fix mustache glob when building'}, {'body': 'Changes index.js to only build files that end in ".mustache".

This keeps it from processing (and erroring on) files like the invisible ".swp" files that vim adds to the directory.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1315', 'title': '[2.0-wip] Fix mustache glob when building'}, {'body': 'Fixes to get IE7 in line for combo buttons and dropdowns. Also fixes some minor rendering around tab borders.

Changes the background of search in the nav to better match what rgba-capable browsers are showing against the default nav background (IE7 and IE8).

Also:
- Brings back the uneditable text input example from 1.x
- Moves the buttonBackground mixin to mixins.less (issue #1292)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1312', 'title': '[2.0-wip] IE7/8 fixes for components.html'}, {'body': 'just created a font based on aristo 2 theme icon set

aristo 2 was released by "madebysofa" under http://creativecommons.org/licenses/by-sa/3.0/us/ for the cappuccino.org framework', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e9684de403d1b6d152d447a795ad760f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1310', 'title': 'glyph font based on aristo 2 theme icon set'}, {'body': 'navbar will now continue to vertically align nav elements no matter what height is specified for the navbar; same idea for colors -- vertical divider and input border colors are themed using the navbar background colors', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a7a7f799e5430584f795c9dc3d50eaa?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1305', 'title': '2.0 wip: respect navbar height and color variables found in variables.less in navbar.less'}, {'body': 'Corrects button sizing and spacing, table borders, and the super-crazy append text form input margin bug.

Makes everything is base CSS look legit in IE7.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1304', 'title': '[2.0-wip] Fix base-css styles for IE7'}, {'body': "This updates the icon sprites and classes to the latest version of Glyphicons Halflings set (v.1.5) along with some icon enhancements like:

- Updated the Gylphicons Halflings set to version 1.5 (30 new icons)
- Optimized the sprite PNG files for minimum filesize without any quality loss
- Renamed the sprite image files to save a few bytes here and there (from glyphicons-halflings-sprite.png to lyphicons-halflings.png and from glyphicons-halflings-sprite-white.png to glyphicons-halflings-white.png)

- Made some fixes for horizontal alignment at the LESS/CSS level (tags, bold, arrow-up, minus, chevron-down)
- Made some fixes for vertical alignment at the LESS/CSS level (chevron-down, resize-vertical, resize-horizontal)

- Renamed the old ``` calendar ``` class as ``` list-alt ``` class (because now we've a real calendar icon)

- Changed the ``` background-position ``` of the icon class to ``` 14px 14px ```, so that a wrong class name will not be showing the glass icon and instead will show a blank icon (which is useful for just positioning the text after the icons in some cases)

- Added new icons (classes) to the base-css Docs (to both HTML file and Mustache template)
- Changed one of the button examples to ``` danger ``` style and used a ``` white ``` icon class

NOTE: I've contacted to the designer of the Glyphicons icons and Jan responded that he has an agreement with the creators of Bootstrap, they are allowed to use Halflings set (including all future updates) as a PNG sprite. (I purchased Glyphicons PRO for my own use, and this is how I'm easily providing a new updated sprite both in black and white colors.)

TESTED with Google Chrome 17, Internet Explorer 8 and Firefox 9.01 on a Windows 7 machine.

QUICK LOOK to the changes (new icons, and updated example): http://i.imgur.com/kGmag.png", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e5436a0c87b98c2ec786e99a33660a8c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1296', 'title': '2.0-wip: Updated to version 1.5 of Glyphicons Halflings set along with some enhancements'}, {'body': 'reponsive => responsive', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e4d51e3d82b9d7ac1d217ea0e5c7db0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1280', 'title': 'Fix typo in docs/scaffolding.html and mustache template in 2.0 wip'}, {'body': 'Look at http://twitter.github.com/bootstrap/#tables. Examine "Example: Bordered table" table, the last cell in the first row has a border radius in the top right that shouldn\'t be there.

In "Example: Zebra-striped" both the first and last cells of the first row have border radii that shouldn\'t be there.

This fixes these problems by applying border radius values only when the tbody is the first child of the the table element. Put another way, only if the table doesn\'t have a header row will the border radius values be applied to the cells in the top row.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fcbce6b52271aee17138ac7432972378?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1279', 'title': 'Fix border-radius problems that appear in tables with a thead element'}, {'body': 'Moved hero unit css from the deprecated patterns.less into hero-unit.less under "Components: Misc"', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d623a5bf1ee8fb8ebaeef26b661101ff?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1274', 'title': '[2.0 wip] Bring back the hero unit css. Fixes #1185.'}, {'body': "Tab and Enter are two basic form navigation keys that weren't working properly with the typeahead plugin, so I made a quick fix.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f48d436aa5cfcd703a1766ef3b14e224?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1272', 'title': 'Support tab and enter in typeahead'}, {'body': 'Icons in large buttons are positioned a little too high. This adds some margin to the top. Sample before/after below.

![before](http://dl.dropbox.com/u/293038/github/before.png)![after](http://dl.dropbox.com/u/293038/github/after.png)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d623a5bf1ee8fb8ebaeef26b661101ff?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1271', 'title': 'Fix icon margins in large buttons.'}, {'body': '(right branch this time)

Changes the typeahead JS plugin to use jQuery.grep rather than the JS filter method, which is not implemented in IE8 or 7.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1269', 'title': '[2.0-wip] Fix typehead plugin for IE7/8'}, {'body': 'Changes the typeahead JS plugin to use jQuery.grep rather than the JS filter method, which is not implemented in IE8 or 7.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1268', 'title': '[wip-2.0] IE 7/8 Typehead JS fix'}, {'body': 'Changes the vertical alignment of inputs and buttons to be middle rather than baseline, which allows for stable alignment across all browsers. (E.g. the search and inline form fields and buttons match exactly.)

Also fixes display of checkboxes in IE9+ by removing round corners, and fixes checkbox labels across all browsers, which were off from the left-aligned field label by 1px.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1258', 'title': 'Form alignment in IE and others'}, {'body': 'This fixes the responsive container class so that the max with with padding is 768px instead of 788px.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/40296c01231616590872a43ebab6512a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1252', 'title': 'Responsive container fix'}, {'body': 'Changes buttons in IE to favor rounded corners and hover/active states over gradients. Removes use of filter.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1251', 'title': 'IE buttons'}, {'body': 'This fixes [issue #1202](https://github.com/twitter/bootstrap/issues/1202).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e1b4fb1960b220515c1673b728b3794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1237', 'title': '2.0 wip - Fix for issue #1202'}, {'body': 'This fixes [issue #1202](https://github.com/twitter/bootstrap/issues/1202).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e1b4fb1960b220515c1673b728b3794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1236', 'title': '2.0 wip - Fix for issue #1202'}, {'body': "This should close: https://github.com/twitter/bootstrap/issues/1203#issuecomment-3653733
I'm afraid I'm not entirely clear how to associate this wil issue: 1203 anyways, here's some documentation for Typeahead's options, and also a sensible default for Typeahead's data. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/65bd9e4c5aebde25ebf16d599339d570?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1231', 'title': '2.0 wip Typeahead Documentation'}, {'body': 'The "Download" button for the alerts section of the javascript docs pointed to the old naming of the boostrap-alert.js file. This corrects the path.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fa09759e2032b165421a4847dfc3fe8f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1228', 'title': 'Fixed incorrect path to download bootstrap-alert.js'}, {'body': 'Took me a while to find it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d99b46b810388ee901bc1da4fc662968?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1226', 'title': 'Describe the data option of the javascript typeahead plugin.'}, {'body': "It seems that Konqueror does not have support for CSS gradients. Testing for CSS gradient support with Modernizr confirms it.

Kubuntu for example comes with rekonq (https://en.wikipedia.org/wiki/Rekonq) installed as default browser, and it supports gradients, but does not use the -khtml prefix.

There are also so few Konqueror users that I don't see the point keeping it if it's not currently supported by the browser.

I've also shortened the old webkit syntax a bit.

## Tested khtml gradients with:
- Kubuntu 11.10: Konqueror 4.7.4, rekonq
- Ubuntu 11.10: Konqueror 4.74

## Tested old webkit syntax with:
- Win XP: Safari 4.0.5
- iOS 4.2.1: Safari
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a8dbe5e246cf844376da5c8e413d16c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1225', 'title': 'Drop khtml gradient, shorten old webkit gradient'}, {'body': "I went ahead and made some changes to fix the z-indexes as described in #1109.
This code automatically sets increased z-index of its parent (if any parent has z-index set at all) to make Tooltips and Popovers visible in `.modal`.

I didn't want to restrict it to a class name so I filter parents by finding the closest one with that CSS attribute set. This way it will work not only in modals but with other elements users might create.

Works fine on Opera/Chrome/Firefox. The only concern might be performance, but in Bootstrap docs even in the worst scenario (Tooltips are not in modals, therefore filter checks parents up to ``) this is only 8 elements to check => no visible slow-downs.

@fat, can you take a look? Demo => http://okonski.org/bootstrap-zindex/docs/javascript.html#modals

EDIT: Seems to work just fine for fixed navbars, too! :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b6be565dc21f521acf0193ee63ab9d0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1221', 'title': "Automatically set Tooltip z-index according to the parent's z-index "}, {'body': 'Screenshot of the issue: http://img337.imageshack.us/img337/9261/bootstrap.png', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8e5978942c151188e6a9116b73e33cb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1220', 'title': '2.0 wip - Removed dotted outline on navbar dropdown menu'}, {'body': 'Screenshot of the issue: http://img337.imageshack.us/img337/9261/bootstrap.png', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8e5978942c151188e6a9116b73e33cb9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1219', 'title': 'Removed dotted outline on navbar dropdown menu'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/540ec17c297c42826455828adfc62bf9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1213', 'title': 'More .icon class updates in examples'}, {'body': "Hey guys, don't undo all my changes! ;-)

p.s. Thanks for using .icon instead of overriding i{}. Much better choice.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1212', 'title': '2.0-wip: s/#fff/@white/'}, {'body': 'The new icon class added to remaining examples', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/540ec17c297c42826455828adfc62bf9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1211', 'title': '[2.0-wip] Missing icon class from examples'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/540ec17c297c42826455828adfc62bf9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1210', 'title': 'Missing icon class from examples'}, {'body': 'Grid has 12 minus 2 columns. Not 16 minus 2. Changed span10 to span6
Changed CSS for span6', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d709fb66c5ec5535608994838007b9da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1196', 'title': 'Fixed span sum to 10 to display properly. Grid has 12 columns.'}, {'body': 'Grid has 12 minus 2 columns. Not 16 minus 2. Changed span10 to span6
Changed CSS for span6', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d709fb66c5ec5535608994838007b9da?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1195', 'title': 'Fixed display of secondary container'}, {'body': 'More 2.0 updates may be needed, but this fixes the problem where the
secondary content is shown below the main content.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1193', 'title': 'Update container-app example to expect to be 14 columns wide'}, {'body': 'This should fix issue #1130', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f40de68f558e8c0ee8687c505bb1811c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1187', 'title': '2.0 bugfixes'}, {'body': 'I just got hit by closed bug #952

This is just a small update in the docs to refer to the current version of less.
Also added a bullet on the upgrading.html ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b389bdc6ea82fd22b7fb09477125f9b8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1181', 'title': 'Minor doc changes about less.js version'}, {'body': "Fixed typo in the documentation (your instead of you're)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6218034e419c9e397fe84dd3ecdbf4ad?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1175', 'title': '2.0 wip'}, {'body': 'Reducing from 230 wide to 228 so that it flows correctly.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cf752878e6487cd585d9131b78517544?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1173', 'title': 'Resizing main image in Docs > Components > Thumbnails '}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cf752878e6487cd585d9131b78517544?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1172', 'title': '2.0 wip'}, {'body': '...hich contain inputs from a form are posted correctly.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7a1054e17f3c41c66b1b28d4d6b09379?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1169', 'title': 'Modal markup no longer moved to the document body. This ensures modals w...'}, {'body': "This way, if the dropdown-toggle element has an href, it can actually be used as a navigation element in the submenu. If it doesn't, then behavior is unchanged by this patch.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2daab22066b1308f4aaa9f27790db6e7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1167', 'title': '$.fn.dropdown propagates click events if the dropdown menu is already displayed'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d623a5bf1ee8fb8ebaeef26b661101ff?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1166', 'title': 'Fixes #1146 - "Recompile" anchor link in docs is broken 2.0 wip'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d623a5bf1ee8fb8ebaeef26b661101ff?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1163', 'title': 'Removed stray html tags'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1380b563b741341fa3f18585f898a494?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1162', 'title': 'Small typo on closing element'}, {'body': "I can feel my copypastin' skill increasing :P", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b6be565dc21f521acf0193ee63ab9d0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1158', 'title': 'Wrap stuff in components.mustache'}, {'body': 'see title', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ab97201abd62673ed21bb286e1b20345?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1157', 'title': 'bootstrap-dropdown.js: Fixed closing dropdown menu when clicking on embedded form'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1002f24df7b46a8dc40e41ae17ef2358?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1156', 'title': 'i18n for index page'}, {'body': 'I wrapped all texts in Base CSS documentation between {{_i}} & {{/i}} tags.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1002f24df7b46a8dc40e41ae17ef2358?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1153', 'title': '#1122 - i18n in Base CSS documentation'}, {'body': 'A really nasty one.

EDIT: I also added the support for jquery.tablesorter.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e18dcb5ecf77b2666303128edab9027b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1149', 'title': '[base-css] Fixed a nasty "mailto" typo and added jquery.tablesorter'}, {'body': "this pull request adds documentation for the 'toggle' method for Popovers.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a3b6222854e90883765f5f30375718bf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1148', 'title': "Documentation for Popovers incomplete - missing 'toggle' method (2.0-wip)"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bab8fefee0f3897f22289ebe50c7fd55?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1140', 'title': 'Fixed typo in Makefile'}, {'body': 'yep.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1138', 'title': '2.0-wip: Fixjs headers'}, {'body': 'Fixes some apostrophe usage, spelling, and typos in WIP 2.0 docs.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30d1327440bc75e4203b301ca0ee3286?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1136', 'title': '2.0-wip: Apostrophes and spelling'}, {'body': 'Fixes [1046](https://github.com/twitter/bootstrap/pull/1046#issuecomment-3620393)!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/48fa294e3cd41680b80d3ed6345c7b4d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1135', 'title': '2.0-wip: Remove specific top value from large btn-dropdown.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b7b2be3cac65822e183e6e1155127d1b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1134', 'title': 'overzealous 2011/2012 search/replace'}, {'body': 'related to: #1129

Just a small typo fix
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd7d9314dab1d1272d1c1ed652a2b5a4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1131', 'title': 'Fix: Code mistake ( #1129 ) '}, {'body': 'Just a small fix to the URLs in the header comment blocks in the JavaScript files; a couple had the wrong URL fragment.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6b17165d23ead15e66854ff882c59e0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1127', 'title': 'Fixed URLs in JavaScript comment blocks'}, {'body': "This fixes the line-height for `.close` inside alerts so it's properly aligned (especially visible in one-line alerts).

It should be 18px just like the rest of the text inside alerts.

**Before**:
![before](http://i.imgur.com/1t3bd.png)

**After**:
![after](http://i.imgur.com/1PWK9.png)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b6be565dc21f521acf0193ee63ab9d0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1120', 'title': 'Fix missing .alert .close line-height'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4137d4e521b829ff3de67910d26e5b5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1118', 'title': '.alert-message no longer exists'}, {'body': "This adds the ability to add a stylized text indicator of the progress bar. This was requested in issue #1076. I've also made updates requested/suggested in #1082.

![Progress bars with pretty font](http://f.cl.ly/items/3K0j0E1I3d2r1F2y3g2h/Screen%20Shot%202012-01-20%20at%2012.14.28%20PM.png)

Tested in:

Firefox 9.0.1 OS X
Safari 5.1.2 OS X
Chrome 16.0.912.75 OS X", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d48aa0bf0b5323075ed4c5ddad1ba315?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1114', 'title': '2.0-wip: Style progress bar text.'}, {'body': 'Using variables rather than numeric values.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4137d4e521b829ff3de67910d26e5b5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1106', 'title': '2.0 wip'}, {'body': 'Fixed a typo.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4137d4e521b829ff3de67910d26e5b5f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1105', 'title': '2.0 wip'}, {'body': 'The ID specified by an `href` or `data-target` attribute should match the `li.dropdown`, not the `ul.dropdown-menu`.

This should solve the confusion from issues like #1093', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45f4fd0f9362451a24742e33bab0c820?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1104', 'title': 'Dropdown docs error in example'}, {'body': "The current behavior of the Dropdown.js closes all Dropdowns when any click event is triggered on the window.
This prevents more complex content inside Dropdowns like forms and such.

To support this i've added an check to the clearMenus function to check if the source of the event originated inside an open Dropdown.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d16a77fc048cf631a3dbf377cb2d0cb8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1103', 'title': 'Changed Dropdown behavior to support forms in Dropdowns'}, {'body': 'This fixes [issue #1102](https://github.com/twitter/bootstrap/issues/1102) and [issue #1100](https://github.com/twitter/bootstrap/issues/1100).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e1b4fb1960b220515c1673b728b3794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1101', 'title': 'Fix for #1102 and #1100'}, {'body': "Add a click listener to elements that have the data-cancel-modal attribute set. This allows for adding in 'Cancel' buttons to modal dialogs without needing to write any JS.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b8df9c2dcd3667586d29c5c67cfb0dc3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1099', 'title': "Modal 'Cancel' buttons via a data-cancel-modal attribute"}, {'body': "This is off of the 2.0-wip branch. Hopefully it will just apply cleanly.

Kind of minor. Mostly just replacing the color with the variable. I did fix one 'bug' where the @ wasn't specified for white. I also added a new color @grayDarker to match the scale of @grayLighter , if you don't like it, I can remove it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1098', 'title': '2.0-wip: clean up variable usage with colors'}, {'body': 'Optimized all PNG files, saved 60.02 KB in total without any quality lost.

- Using PNGOUTWin 1.5.0.100 (http://www.ardfry.com/pngoutwin/)
- Xtreme strategy
- Compability mode on

DETAILS: Here is a detailed overview of the process (shows optimization ratio of each file):
http://i.imgur.com/MpzzW.png', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e5436a0c87b98c2ec786e99a33660a8c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1097', 'title': '2.0-wip: Optimize all PNG files (without any quality loss)'}, {'body': 'Makes for easier usage when you only want certain corners rounded.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5f861ff7bbddb5c7a7a9285b507eb4e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1095', 'title': 'Default `.border-radius-custom` values'}, {'body': 'Fixed typo in scroll spy section
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/938122d12c85a3b9e6600d7e9a568816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1094', 'title': '2.0 wip'}, {'body': 'Forms with the class .form-stacked would add padding above and below form elements when they had the class .error. This spreads the elements out of the page and can be confusing (especially when the error class is being added/removed through JavaScript and moving things up and down).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e80bebdd9032e787f06396bd058cded2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1092', 'title': 'Fixed issue with extra padding being applied with errors on forms with the class .form-stacked.'}, {'body': "This is my first ever bootstrap commit. I've added a option 'stayOnHover' (default = false) which will make the popover stay when mouse hovers over it and automatically hide as soon as mouse moves out of it. This is a very useful feature and many people need it. I've also added an option 'stayTargetClass' which will add a user-provided class to the class names list of popover (so that user can select and manipulate the popover using that unique class). If not given, it internally generates a random class name.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e1bb9d7dc24625f22d2fa57464e9569b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1091', 'title': 'My first commit on bootstrap with a stayOnHover popover feature which is very very much needed !'}, {'body': 'I think there was a typo in the scrollspy section. It read "dropdown" instead of "scrollspy"', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/938122d12c85a3b9e6600d7e9a568816?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1090', 'title': 'Fixed typo'}, {'body': 'Every javascript minificators I have ever found have problem with this file without semicolon
Try http://code.google.com/p/minify/', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/25dbd5e6e7628d4dddb1fc9129965781?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1089', 'title': 'Javascript minificator problem'}, {'body': "This commit removes the partial global reset and uses contextual resets where needed.

As far as I can tell, the outcome is the same as before (but worth checking).

FYI: This commit also includes a correction to the font mixin arguments used on forms (there is a separate issue about it) and the removal of `overflow-y:scroll` from the `html` element - several issues were reported for normalize.css about it causing problems with some modal plugin calculations in Firefox. If you don't want to pull the reset change in, it would still be worth ripping out that overflow property.

Thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/992c9c162c4c62ec0e2621b4f2206533?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1085', 'title': '2.0-wip: Remove CSS reset'}, {'body': 'Makes for easier usage when you only want certain corners rounded.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5f861ff7bbddb5c7a7a9285b507eb4e6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1084', 'title': 'Default `.border-radius-custom` values'}, {'body': 'This adds the ability to add a stylized text indicator of the progress bar. This was requested in issue #1076.

![Progress bars with pretty font](http://f.cl.ly/items/3K0j0E1I3d2r1F2y3g2h/Screen%20Shot%202012-01-20%20at%2012.14.28%20PM.png)

Tested in:

Firefox 9.0.1 OS X
Safari 5.1.2 OS X
Chrome 16.0.912.75 OS X', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d48aa0bf0b5323075ed4c5ddad1ba315?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1082', 'title': '2.0-wip: Style progress bar text.'}, {'body': "Hello,

I'm submitting a patch for an adjustment I needed for a project to allow for the grid elements to have both a padding and a border. I thought it might be worthwhile for the bootstrap community at large.

I found that I needed to add padding to some of the spans in the table for a theme, and that it was throwing off the entire grid. I've made a small adjustment, which shouldn't throw off the rest of the grid, which would allow one to add both a border and padding to the same HTML element. The grid can still have child rows, and these have their widths reset based on their inclusion in an existing span.

Adam", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8b6d240a3a697982a0e77ee7871ac70b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1080', 'title': 'Bordered/Padded Grid Spans'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8b6d240a3a697982a0e77ee7871ac70b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1081', 'title': 'Hello,'}, {'body': 'Added some extensions and files to the `.gitignore` file. Based on what we provide in H5BP.

Deleted some unnecessary properties in the clearfix mixin. There are IE7-targeting hacks that are present within the pseudo-element selectors, but IE7 doesn\'t support the `:before/:after` pseudo-elements so you can safely omit them.

Removed the WebKit-OSX `search[type="search"]` cancel button pseudo-element (port over from recent update to normalize.css).

Hope this is helpful.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/992c9c162c4c62ec0e2621b4f2206533?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1069', 'title': '2.0-wip: Changes to .gitignore, clearfix mixin, and search input reset'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f7e7b837bd06d6193f4ac70f17e6f44b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1064', 'title': 'Typo Fix in tables.less'}, {'body': 'Two of the Glyphicons had the same name, I\'ve renamed the second one from "share" to "share-alt"', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/33a5a5ef3bce8e2775e0077ad4e42c3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1063', 'title': 'Patch share icon'}, {'body': "font-weight and font-size were mixed up for most form elements due to a wrong placement of variables in forms.less.

that's my first pull request. i hope i did everything right. :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/de9ad93018f55e165e35eff3e818b0d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1061', 'title': '2.0-wip: rearranged mixed up variables in forms.less'}, {'body': 'just created an inverted version of the icon file.

class="glass" for black version
class="glass white" for white version', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e9684de403d1b6d152d447a795ad760f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1059', 'title': 'white version of icons'}, {'body': 'just created a white version of the icons



cause black icons doesn\'t play well on dark backgrounds... especially within the nav bar', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e9684de403d1b6d152d447a795ad760f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1057', 'title': '2.0 wip'}, {'body': 'Take 2 - :(

Added missing \'data-dismiss="modal"\' on the first example model source.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f429bbc1ea9c1c7645621b813936ee99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1053', 'title': 'Added missing \'data-dismiss="modal"\' on the first example model source.'}, {'body': 'Added data-dismiss="modal" to the first modal example. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f429bbc1ea9c1c7645621b813936ee99?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1052', 'title': 'Missing data attribute to close modal'}, {'body': "Right now you have to define a specific ````top: value```` for all your dropdowns which isn't optimal. I suggest that we use ````top: 100%```` instead and use a ````margin: value```` for the extra space needed between the navbar and the dropdown for example.

This allows us to use whichever height we want on our elements without having to change the ````top```` value on the dropdown-menu.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/48fa294e3cd41680b80d3ed6345c7b4d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1046', 'title': 'Scalable dropdown menus'}, {'body': 'Small spelling correction in component docs', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6c489f383d216a2c752ab8c4ef1eea89?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1042', 'title': '2.0 wip Small typo fix in docs'}, {'body': "I noticed that the active state for the buttons didnt stand out very much, in fact they were very hard to see. I changed the background image to none for the active state and it looks a lot better.

As a side note, i commented out @keyframes in progress-bars.less because the less compiler produced a syntax error and would halt, someone also did the same with the block above. I'm not sure how to fix that.

This is my first interaction with git, github and less so please excuse the n00bness, i'm doing this to learn.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b925e02c07340fc33195182148d0ac2e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1040', 'title': '2.0 wip buttons'}, {'body': "Only the color of the text is needed to indicate field state.
I needed this. I know I could have just extended my style on my local copy. But I thought I'd add to forms.less and submit it just for fun.
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dfaebc72d48b99e51dc3c821fb831f63?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1039', 'title': 'added styles so that form field states can be displayed in help text only'}, {'body': "I just added a little bit of LESS math to make the layout in the navbar to scale properly if you change the value of the navBarHeight variable. This will affect the vertical position of links, buttons, search fields and brands. It also makes the vertical dividers stretch to the full height.

This is my first pull request so let me know if I've done anything wrong!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b0dacefd2cf3fb299850911d3ce61d9a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1030', 'title': '2.0 wip: Fix vertical layout for navbars with different heights'}, {'body': "Hello!

I was taking a look in the unit tests, and some of them was failing (button stuff), then I noticed that some of them should be asynchronous tests, since it was using an asynchronous functionality, the setTimeout()

I've created asynchronous tests for them, and now all the tests are passing.

Thanks, see ya! :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/05671f27a334fd17b787a88bf3d7d5b8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1024', 'title': 'Buttons Tests'}, {'body': 'Firefox was showing different font color for textarea placeholders.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/637c4bbe3ae3ef4e53899bd41a43b614?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1023', 'title': '2.0 wip'}, {'body': 'Fore color for textarea placeholders was different', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/637c4bbe3ae3ef4e53899bd41a43b614?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1021', 'title': '2.0 wip'}, {'body': 'This is me trying out proper pull requests and actually fixing something small.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1020', 'title': '2.0-wip: fix typo'}, {'body': 'I changed "scale" to "scaled".

Alternatively, "are" could be deleted and "scale" could remain unchanged.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cffbfa6f2975885b376936dd9bd1f782?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1012', 'title': 'Content Typo Fix in Docs'}, {'body': 'Just some small fixes.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1008', 'title': 'fix license copyright year, fix headers, use variables'}, {'body': 'This should resolve issue #1004. Not sure if you guys wish to add this functionality but I figured I would submit it anyways and let you decide.

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15fbca414f199b4300cfa85605d0d508?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1005', 'title': 'Allow For Configurable Top Offset for SpyScroll (Issue #1004)'}, {'body': 'Fix some linking from the navbar to the various sections.

The Javascript dropdown still has an entry for "Transition" however there\'s no Transition section on the page. There\'s also a Transition link in the list of plugins for the builder that points to nothing.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45f4fd0f9362451a24742e33bab0c820?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1003', 'title': 'Docs fixes'}, {'body': 'The top-level CSS files are dynamically generated and should not be managed by git as they can (and will) produce spurious merge conflicts for developers. Generating the files is incredibly simple, so the impact to users who wish to use bootstrap as-is will be negligible.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d09fc36f93c883a20c2ba068c18646fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/1002', 'title': 'Remove bootstrap css files'}, {'body': 'In the current Typeahead plug-in, typing "tex" will not match "Texas" (using the docs page as an example, since it uses states as the data.) I adjusted the `matcher` function to not be case sensitive. If you (@fat) wanted it to be case sensitive, maybe we could allow an option to match case?', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f60d0c093df629cc8208dab7da2ea9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/996', 'title': 'Change typeahead case sensitivity matching'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/52df8f06e6c1ebb6a9bb9ebde2f36bc8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/995', 'title': 'Fix bug on tooltips placement when passed as a function'}, {'body': 'I moved the font-family definitions from mixins.less to variables.less. I thought it would make more sense to have those there.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6b17165d23ead15e66854ff882c59e0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/993', 'title': 'Moved font-family definitions to variables.less'}, {'body': 'This enhances jquery plugin extensability, forwarding all parameters to the plugin method.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0faf6a69f130f0b29197323414ededf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/989', 'title': 'jquery plugin extensability'}, {'body': "I needed to put a sidenav inside a carousel element. The 'nav' class used by carousel for the next and prev links completely messed up my nav. Please restrict the style to the 'a' element.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0faf6a69f130f0b29197323414ededf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/988', 'title': "nav's inside carousel"}, {'body': 'Please evaluate if there is any side-effect to apply inline-block to labels inside horizontal-form and search-form, in addition to inline-form.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0faf6a69f130f0b29197323414ededf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/987', 'title': 'label inside inline-form should also have display:inline-block'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/843844374229f72277c189a7410327cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/986', 'title': 'Fix id anchor javascript'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/843844374229f72277c189a7410327cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/985', 'title': 'Fix id anchor javascript'}, {'body': 'Just noticed a few small things that could be cleaned up.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/984', 'title': '2.0-wip: Small Cleanup'}, {'body': 'I\'ve added support for fixed position popovers and tooltips via an additional "fixed" parameter which may be passed tooltip options object on init. Defaults to false. If true, a "fixed" class is added to the element.

PS this is my first pull request so please let me know if I\'m doing it right :-)

Cheers
Dave
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f5a2a621b6d9f172fae38dd7078aa97f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/982', 'title': 'Fixed position tooltips popovers'}, {'body': 'I\'ve added support for fixed position popovers and tooltips via an additional "fixed" parameter which may be passed tooltip options object on init. Defaults to false. If true, a "fixed" class is added to the element.

PS this is my first pull request so please let me know if I\'m doing it right :-)

Cheers
Dave

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f5a2a621b6d9f172fae38dd7078aa97f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/981', 'title': 'Fixed position tooltips popovers'}, {'body': "I needed to put a sidenav inside a carousel element. The 'nav' class used by carousel for the next and prev links completely messed up my nav. Please restrict the style to the 'a' element.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0faf6a69f130f0b29197323414ededf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/980', 'title': "nav's inside carousel"}, {'body': 'Please evaluate if there is any side-effect to apply inline-block to labels inside horizontal-form and search-form, in addition to inline-form.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0faf6a69f130f0b29197323414ededf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/979', 'title': 'label inside inline-form should also have display:inline-block'}, {'body': 'added CSS3 rotate transform
added CS3 scale transform
added selectable/unselectable for text selection
added inlineBlock and its IE7 hack', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bdd22ad361650cddb58011e5d301e67b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/978', 'title': 'added some more mixins'}, {'body': 'Noticed a section heading of "colors" appears before definition of list element (ul, ol, dl) styles in type.less.

Change the comment for the section to "lists" to better match the content in the section.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/62078292ef0e01419da698efa65af5ec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/975', 'title': 'Comment change: rename the ul, ol, dl section from COLORS to LISTS.'}, {'body': 'Pulled out "hardcoded" color values for items such as the topbar, success, warning, and danger classes into theme.less to simplify the customization of the default Bootstrap theme. Added a comment block above each color variable in theme.less to describe all of the UI elements that are affected by the value.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/18dadd43ad08848fd64b73dc84871858?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/973', 'title': 'Extracted color values out into theme.less'}, {'body': "In javascript docs page some anchors doesn't works", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e8f46a74ec2c705a8db1e92257b5d625?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/972', 'title': 'Fixed broken anchors on js docs page'}, {'body': 'Hello!

The `.progress` `.bar` `margin:` did not have a value. This just sets it to `0` so you can reset it to the value you need.

Noticed it because it broke the assets pre-compile step in my Rails app.

Cheers!

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/41ab183eca0ab92724c08d9b48f7f17e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/940', 'title': 'Set the progress bar margin value'}, {'body': "Hi, I think I've found a tiny typo and fixed it.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f3b632c1afb7a6e1c2d0072e69c4f0ea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/932', 'title': 'Tiny typo fix'}, {'body': 'For example, the demo typeahead input matches "Ca" to "California", but "ca" doesn\'t match anything. Case-insensitive matching is a less surprising default.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/be3698f145a80c1230fd667c87d0f0c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/927', 'title': 'Case insensitive typeahead'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/843844374229f72277c189a7410327cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/926', 'title': 'Added example sidebar navigation with icon in docs'}, {'body': "I'm using bootstrap for my project and I think that this shorthand I use may be useful to others. It's used like this:

.border(1px, 0px, 1px, 0px, #ededed, dahsed)

The first four parameters are the border width of the four borders in clockwise order starting from the top (top, right, bottom, left) the next two are color and type. I hope this will be helpful!
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5759c2979b220bc0df90a925cd806bf4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/925', 'title': 'Add a shorthand for borders'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/843844374229f72277c189a7410327cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/923', 'title': 'Fix line number pretyprint in javascript docs '}, {'body': 'Commit fixes #918 small spelling mistake', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f64dbb7a5f1bb9e1849ebae97e64fd65?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/919', 'title': 'Commit fixes #918'}, {'body': 'Lightweight, I think it fits with your architecture.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f20645b16f3f3a75f2f551bbfd1dffcc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/917', 'title': 'Added an accordion component'}, {'body': "There was a pull request for this in the past, but it conflated lots of other changes and never has been applied afaik.
Also, what platform does DATE work on? It's the first time I've seen it used.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/86e33dee4a89a8879a26487051c216a8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/910', 'title': "Use `date` instead of `DATE`, that's the POS*X way."}, {'body': 'Reopening for merge...', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f0b95ca03d52469baba6376976f8e0c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/909', 'title': 'Remove the margin-bottom of form to not expand the height of navbar'}, {'body': 'Before all custom classes were overwritten by twipsy if you used a template.

This fixes that, twipsy will only remove classes that it adds itself.

This fixes [issue #908](https://github.com/twitter/bootstrap/issues/908).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e1b4fb1960b220515c1673b728b3794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/907', 'title': 'Twipsy now respects custom classes'}, {'body': 'Before all custom classes were overwritten by twipsy if you used a template.

This fixes that, twipsy will only remove classes that it adds itself.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e1b4fb1960b220515c1673b728b3794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/906', 'title': 'Twipsy now respects custom classes'}, {'body': "I started testing 2.0-wip today and noticed that the `.navbar` `.brand` hover state has the styling of pre-1.4 Bootstrap. I've updated the hover styling to be consistent with 1.4 (which I prefer anyways.) I have a feeling this was just because 2.0 was branched before 1.4 came out, so this change never made it in to 2.0. Let me know if you have any questions. Thanks!", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f60d0c093df629cc8208dab7da2ea9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/902', 'title': 'Navbar .brand hover styling'}, {'body': "Before there was no way of applying a style on a per twipsy basis (my need comes from having to nudge a twipsy a bit).

I've now added an extra option called `class` which, if specified, will be added to the twipsy in the `show` method.

I also added a simple test case for this that verifies that the class is actually being added.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e1b4fb1960b220515c1673b728b3794?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/900', 'title': 'Added a way of specifying a custom class for a twipsy'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f0b95ca03d52469baba6376976f8e0c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/894', 'title': 'Remove the margin-bottom of form to not expand the height of navbar'}, {'body': "Hello,
I wrote some shorthands for CSS functions defining transformations.
I use it myself and I'm not sure if it's appropriated for Bootstrap but I just wanted to let you know.
It's my first fork and it's my first pull request, so I hope I'm doing it fine :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e5b676e879de80f1e00658358bb800f1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/892', 'title': 'Add shorthands for transformations'}, {'body': 'Simple text changes to the three example footers in the /examples folder', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4e31ce18e182357dcbae8f5f9a147c1a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/886', 'title': 'Changing copyright year in footer examples from 2011 to 2012'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/36afefa74a05c17758e180fab1112fb6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/883', 'title': "Disabled elements shouldn't visually respond to focus."}, {'body': 'The JavaScript $().button() function replaced the innerHTML, but for form submit buttons, we need to replace the contents of the value-attribute instead.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dfb445c996da29c8bd3856e900a6576a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/882', 'title': 'Make $().button work for input[type=submit]'}, {'body': "This is a resubmit of https://github.com/twitter/bootstrap/pull/868 because it was mistakenly closed and then ignored. I'm trying to help here, grrr...

This is a patch against 2.0-wip", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/876', 'title': 'Put quotes around font-family: "Courier New" since it is TWO WORDS.'}, {'body': 'Before this commit, whenever a dropdown menu is open and you click on the `.dropdown-toggle` link, it would remain open.

This commit will change that so the menu is closed by clicking again on the trigger.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1ce8acdc0df73ee189b29c4499fc2d36?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/874', 'title': 'Always toggle the dropdowns when clicking on the toggle trigger'}, {'body': "Before this patch, clicking an opened dropdown's toggle link would not close it. With this, clicking the dropdown toggle will close the dropdown menu if it's already open.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1ce8acdc0df73ee189b29c4499fc2d36?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/873', 'title': 'Clicking a dropdown will always toggle it'}, {'body': "You can't use HTML entities (i.e. ↓) as values of the `content` property. Changed ↓ to its hex value.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/14902eb1dac66b8458ebbb481d80f0a3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/872', 'title': "You can't use HTML entities as values of the `content` property"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a1e7d051ff8c1b7d2f47f00dbc03733?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/869', 'title': 'cursor: default for disabled in pagination'}, {'body': 'http://www.w3schools.com/cssref/pr_font_font-family.asp

"If a font name contains white-space, it must be quoted."
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/868', 'title': 'Fixfonts'}, {'body': 'This is the first time I fork and send pull request.

Am I doing everything right?

Thx~', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a1e7d051ff8c1b7d2f47f00dbc03733?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/867', 'title': 'cursor: default for disabled
in pagination'}, {'body': 'Event.srcElement property does not work in Firefox. Replaced it with e.target, which is the recommended jQuery way.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/637c4bbe3ae3ef4e53899bd41a43b614?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/864', 'title': '2.0 wip'}, {'body': 'So you can get borders that look like this:

[http://i.minus.com/jba9XPJWv82ysJ.png](http://i.minus.com/jba9XPJWv82ysJ.png)

By using the mixin this way:

```css
.arrow {
#borderArrow > .below(15px, 1px, @color, #f9f9f9);
}
```
You can use .below, .above, .left, .right and the parameters are: width of the arrows, border width, color of the border, color of the inside

Given this HTML:

```html



```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/68721930b6e2d5b125633cc3d28715c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/859', 'title': 'Bordered Arrow Mixin - Updated for 2.0 wip'}, {'body': 'So you can get borders that look like this:

[http://i.minus.com/jba9XPJWv82ysJ.png](http://i.minus.com/jba9XPJWv82ysJ.png)

By using the mixin this way:

```css
.arrow {
#borderArrow > .below(15px, 1px, @color, #f9f9f9);
}
```
You can use .below, .above, .left, .right and the parameters are: width of the arrows, border width, color of the border, color of the inside

Given this HTML:

```html



```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/68721930b6e2d5b125633cc3d28715c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/858', 'title': 'Bordered Arrow Mixin - updated for 2.0'}, {'body': 'This diff adds support for .disabled class on tabs and pills. They are rendered with light gray text and the JS ignores clicks.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/228abe46f6c8e9c7c2e8440cfda66ebd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/853', 'title': 'Support .disabled on tabs and pills'}, {'body': "I'd like to apply error/warning/success styling to my input fields, but I have no particular need to wrap them in a clearfix class. Unless I'm missing something, this should not be necessary. Removing `.clearfix` from the selector should be fully backwards-compatible.

The `make` output is included in a separate commit.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f74b13f1e5c6c69cb5d7fbaabb1e2cb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/851', 'title': 'Styled form fields should not depend on clearfix superclass'}, {'body': "See #849 for details.

I put the output of `make` in a separate commit, in case you don't want to pull that.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1f74b13f1e5c6c69cb5d7fbaabb1e2cb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/850', 'title': 'Make modal windows scrollable'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/843844374229f72277c189a7410327cf?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/846', 'title': 'Fix id tabs on docs component'}, {'body': 'Basically, I have alerts in my app that are contained within a fixed layout - when closing the alert I need a hook so that I can remove a class from my fixed layout to "shift" it up by 30px or so to account for the space created when the alert is no longer there. FYI, the actual listener I use is this:

```js
$(".alert-message").bind("closed", function() {
if ($(this).hasClass("flash")) {
$(".with-flashes").each(function(i, item) {
$(item).removeClass("with-flashes");
});
}
});
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/47a8fe9ed227e9c56cd5dba93c2c9118?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/842', 'title': 'Add close and closed hooks for alert'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c562741f64d596e5c12ec739dd56c3a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/832', 'title': 'Fix thumbnails in Built With Bootstrap'}, {'body': 'Change hardcoded values for span-one-third and span-two-thirds to work with the dynamics of variables.less', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a6e16fabd3b79794814c6f8f562d61ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/831', 'title': 'Make 1/3 and 2/3 columns work dynamically.'}, {'body': 'Just a small typo fix in the JavaScript documentation page.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/113a84d2661b03d8a9181c58d3a6f4b5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/830', 'title': 'Typo fix.'}, {'body': 'Suggestion of a sub navigation bar, which looks like this:

![Sub navbar](http://p.twimg.com/AhDBGaUCEAA56ay.png:large)

Use the bootstrap_tab.js plugin to change the subnav bar when the "header" navbar items are clicked. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f1f3eed9dd9e09c79ebc2495891f958?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/827', 'title': 'Sub navigation bar'}, {'body': 'See comments on issue: https://github.com/twitter/bootstrap/issues/330', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/99862559fa041b50b35bcda9b87d7f6c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/826', 'title': 'Additional fix for form-stacked forms in a modal. Comment on issue 330.'}, {'body': 'Basically, I have alerts in my app that are contained within a fixed layout - when closing the alert I need a hook so that I can remove a class from my fixed layout to "shift" it up by 30px or so to account for the space created when the alert is no longer there. FYI, the actual listener I use is this:

```js
$(".alert-message").bind("closed", function() {
if ($(this).hasClass("flash")) {
$(".with-flashes").each(function(i, item) {
$(item).removeClass("with-flashes");
});
}
});
```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/47a8fe9ed227e9c56cd5dba93c2c9118?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/822', 'title': 'Add close and closed hooks for alert'}, {'body': "Fixes where the documentation doesn't match the css.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/47245ef95fe25122e7785b61a511ea7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/817', 'title': 'Small documention fixes on 2.0-wip'}, {'body': 'Hi there,

I found a small typo in the less paragraph. The npm\xb4s package name is less not lessc only the binary is called "lessc".

Cheers,

Alex', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c344b4c4dd245f4f7d0da39a50b38765?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/808', 'title': 'changed npm package name to less'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6d3514e945147125d4504a8ae5806233?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/806', 'title': 'Tabs dropdown is missing active state'}, {'body': 'https://github.com/twitter/bootstrap/pull/788', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c35b71991703e62a8dfdb6eb404539c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/799', 'title': "Jasny's fix for date on Linux"}, {'body': '* bootstrap-transitions.js was not found since it was bootstrap-transition.js
* in Docs the bootstrap brand was too faint
* in container-app I added a touch of space above the elements within the navbar', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c35b71991703e62a8dfdb6eb404539c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/797', 'title': '2.0 wip - rename a missing js file and minor adjustments'}, {'body': 'This fixes #784.

`select` with a `size` attribute but no `multiple` attribute incorrectly gets a fixed height applied to it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45f4fd0f9362451a24742e33bab0c820?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/792', 'title': 'Fix: Select elements with a size attribute should not have fixed height'}, {'body': 'By using `date` instead of $(shell DATE) make also works on linux.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0bba82e8b2a9d2cf9645cb07ea54766f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/788', 'title': 'make also needs to work on linux'}, {'body': "I've changed the bordering for .bordered-table, so it uses border-top instead of border-bottom. That way, using rowspan will work as expected.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0bba82e8b2a9d2cf9645cb07ea54766f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/786', 'title': '2.0 bordered table fix for rowspan'}, {'body': "I like to suggest this alternative solution for tabbable / vertical tabs for version 2.0. It's based on the vertical tabs implementation I'd written for 1.4 and not based on the tabbable currently in 2.0. (Loving what you're doing with 2.0 by the way :D)

I've rewritten my version, so the HTML syntax it almost the same as the current implementation. I also tried to make to use existing classes as much as possible instead of introducing new ones and in general make tabbable follow the bootstrap logic.

Please have a look at http://jasny.github.com/bootstrap/components.html#navigation

This implementation got some advantages:

- Placing tabs in a tabbable doesn't border it by default, giving you the ability to place the tabs above, below, left of right with the current look for tabs.
- You can optionally put a border around the tabs using .bordered-tabbable
- The borders of a .bordered-tabbable are rounded.
- Vertical tabs (without borders) always look good, no-mater if the content is smaller than the tabs. (A bordered vertical tabbable with little content still looks strange.)
- There is no need to specify .above, .below in .tabbable. Putting the tabs below the content will automatically change the orientation of the tabs.
- Instead of putting .left and .right in .tabbable, you may use .pull-left and .pull-right on .tabs.
- If the text is to long for vertical tabs, it will wrap nicely.
- You may resize vertical tabs using the known .spanX syntax on .tabs.

Please let me know your thoughts about this. Thanks in advance :)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0bba82e8b2a9d2cf9645cb07ea54766f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/783', 'title': 'Alternative tabbable implementation'}, {'body': 'This adds a code block for condensed table example', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/83e1f890153041de190225b5dcb13010?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/778', 'title': 'Add code block for condensed table example'}, {'body': 'The docs for bordered-table appear to have been copied from striped-table, including the HTML example. This corrects the error.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a19f9308334d07d4be19c8f6d11151ff?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/777', 'title': 'incorrect docs for bordered-table'}, {'body': 'This fixes #767.

`.label` inside a `.dropdown-menu` incorrectly get a `text-shadow` applied to them causing them to look blurry.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45f4fd0f9362451a24742e33bab0c820?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/773', 'title': 'Fix: remove text-shadow from labels'}, {'body': 'Also, I updated the transition mixin to allow for transform as a property to be transitioned without the duplication. For example, this was what I wanted to generate:

```css
.myClass {
-webkit-transition-property: -webkit-transform, opacity;
-moz-transition-property: -moz-transform, opacity;
/* and so on */
}
```

Which is now possible thus:

.myClass {
.transition-property(e("transform, opacity"));
}', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/72117d816ba4b1e258d2907a0303a53c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/763', 'title': 'Add transform/transform-origin mixins and fill out transition mixins with non-shorthand methods'}, {'body': 'Fixes gh-759 gh-716', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f00c63fcf2340e6bd261e7310705a23f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/760', 'title': 'Avoid styling input[type="image"] buttons'}, {'body': "I noticed the permissions for forms.less were set to executable. Here's a fix for that.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0e9575a68efc7f15f0b1324efdef828a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/753', 'title': 'change forms.less mode from 755 to 644'}, {'body': "Twipsy was only checking for offsetHeight and offsetWidth to center
the popover. However, SVG elements don't have an offsetHeight or an
offsetWidth. Use getBBox() for their height and width instead.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/97c7cb70d1f6c24b47aa9ad809cb2c25?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/744', 'title': "Fix: Twipsy rollover wasn't centered for SVG elements."}, {'body': "The .form-horizontal class was renamed to horizontal-form in a8e88d14a422c3dfdb79eaf6d6a3a2f1144df150, however, the rules in responsive.less weren't updated. This updates those.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e45c9c1a1c6184d5572859c52ae43bfc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/743', 'title': 'Update remaining .form-horizontal rules to .horizontal-form'}, {'body': "iPad in portrait applies both the 480-768 and 768-940 media queries this results in a half grid/half linear wonky layout. The .row and .span* classes are linearized in the 480-768 block. I'm adding those grid styles back in for the 768-940 block. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/741', 'title': 'reinstate grid row and span* styles for 768-940 removed for 480-768'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/739', 'title': 'adjust modal styles to work better on the max-width: 480 screens'}, {'body': 'This was preventing the iPad (portrait) from applying the 768-940 styles. It was still applying the 480-768 styles', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/738', 'title': 'Media Query fix overlaping sizes'}, {'body': 'A snippet of CSS and an example for putting menus in the footer (like GitHub has...).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7366cd8b0d4b33e7f6e67dd80c41442f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/734', 'title': 'Footer menu'}, {'body': 'Found myself wanting dividers for the top nav bar, \xe1 la those for dropdown menus. They look like this:

http://gyazo.com/37ac2daa4375d2c283f1ff52372aacd8.png

I added an example divider under the Navigation section of the "Components" doc page.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a8171b6c385b865e30bf070cf588329?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/728', 'title': 'Add vertical nav divider'}, {'body': 'Found myself wanting dividers for the top nav bar, \xe1 la those for dropdown menus. They look like this:

http://gyazo.com/37ac2daa4375d2c283f1ff52372aacd8.png', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2a8171b6c385b865e30bf070cf588329?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/727', 'title': 'Add vertical nav divider'}, {'body': "The link within the Javascript table on the main documentation points to #dropdowns, but it's named #dropdown on the actual Javascript documentation.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/45f4fd0f9362451a24742e33bab0c820?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/726', 'title': 'Fix direct link to Dropdown component documentation'}, {'body': "form feedback states of error, warning, and success are improperly scoped to the .clearfix class. I've fixed that to be scoped to .control-group here since clearfix is no longer used in the form markup.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/725', 'title': 'Form feedback states fix'}, {'body': '*Following https://github.com/twitter/bootstrap/pull/690 but on the 2.0-wip branch*

Make it possible to use other tags than `
` on current or disabled pagination items.
So we don\'t have to deal with `href="#"` and `event.preventDefault()`

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed876cd155692c8bf39158dbcbd240cb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/724', 'title': 'Allow usage of static elements in pagination '}, {'body': 'adding the same fix from issue #408 into the 2.0 branch', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/722', 'title': 'Grid input size fix'}, {'body': 'Patch for #339

I just created the package files for all js modules. I did not publish them to npm, if you want me to do it, just give me a hint.

BTW: Great work, thanks.

Best wishes
Stephan

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/816b60f6cdc676beffd2bd8b6a447538?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/719', 'title': 'Ender packages for JS stuff'}, {'body': "i've got lessc exe defined in PATH from rubygems as well as npm.

Now can be overriden using e.g. LESS_COMPRESSOR=$HOME/node_modules/less/bin/lessc make
which previously did't make any difference (test for variable v just running the lessc from the path)
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e86c5d5b142a13248cbbce010fea141a?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/714', 'title': 'tweak to Makefile to use LESS_COMPRESSOR variable rather than just lessc'}, {'body': 'As seen here: http://css-tricks.com/5376-ie-background-rgb-bug/', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7ccbb82335e4b7c1ebf3c31b2843197a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/712', 'title': 'Add background and border color fallback for translucent mixins'}, {'body': 'Minor typo fixes.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/41ab183eca0ab92724c08d9b48f7f17e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/711', 'title': 'Updates to 2.0 docs'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/38ab22159872c47f60362e6447700ba2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/710', 'title': 'forms.less was executable, which looked a bit untidy ;)'}, {'body': "The current wildcard span selector selects any class which contains the word 'span'.
Based on the classes bootstrap uses, it should be enough to just select where the class starts with span.
That way there will be less conflicts with other css classes.

In my particular case, the conflicts are caused by a WYSIWYG editor which adds a class 'Apple-style-span'.

*Yes, I know WYSIWYG editors are flaky, but it's what my client wants ;)
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5c884a0a551a1736215d19a81bbf3cd2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/709', 'title': 'Less greedy span selector using a starts-with pattern rather than a contains.'}, {'body': 'Updates basefont and baseline to baseFontSize and baseLineHeight.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bbeb4f9bbcf804ef07bd69bba4e6adf6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/707', 'title': 'Updated variables'}, {'body': 'Added a set of new variables which control the pixel size of
border-radius for varius box models. The variables are defined as:

@borderRadiusForms: 3px;
@borderRadiusTables: 4px;
@borderRadiusBoxes: 6px;
@borderRadiusLabels: 3px;
@borderRadiusMedia: 4px;
@borderRadiusButtons: 4px;

This is a proof of concept implementation of adjustable border radius. If you like the idea let me know what has to be changed in order to make the merge.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a64319d2344224d2242f11e2c94792a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/703', 'title': 'Makes border radius adjustable from lib/variables.less'}, {'body': "...the twipsy/popover does not close when the mouse leaves. Coder can then choose how/when to close the twipsy/popover explicitly with twipsy('hide').", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9259e4ba313e3ad431ae36cc14af6ee6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/702', 'title': 'Re issue #664, added option "stay" (default = false). When stay = true, ...'}, {'body': 'Initial version of progress bars.

Basic syntax:

```html



```
Also offers modificators (striped, animated and rounded corners at the same time):

```html



```

Example here: http://okonski.org/bootstrap/docs/components.html . At the very end of the page.

Has some issues with Opera, because it does not hide overflow when border-radius is set. **EDIT: Seems this is fixed in Opera 11.60 \\o/**', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b6be565dc21f521acf0193ee63ab9d0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/699', 'title': 'Fix #642. Progress bars'}, {'body': 'Currently there is only a dummy @primaryButtonColor variable in variables.less, however it is not called from patterns.less.
This updates patterns.less to pull from primaryButton Variable color

Sidebar width is currently statically set at 240px;
Added a new variable @sidebarWidth; to allow user to specify sidebar width;
Scaffolding.less has been updated to use @gridGutterWidth variable instead of the 20px static.

I also wanted to make sure the width of the sidebar stayed true to the width set by the variable
So the content div will contract for padding/gutters and not the sidebar (as it is currently set to).

For example, if you set your sidebar width to 300px and place a 300px wide ad in the sidebar, I wanted to make sure the sidebar inner width was actually 300px and not 280px, which it will do now.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/08597e0ecd8b57a9f2a01de6c2d31b9b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/698', 'title': 'FIX: @primaryButton and Sidebar Variable Updates'}, {'body': 'Checks if the element is an input and changes the value instead of the html. Also sets the resetText value to val if the element is an input.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e9cfdaf594b46fd4932db4c31e88a05b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/695', 'title': 'Allows the use of bootstrap-buttons.js on submit buttons.'}, {'body': 'Changed "id\'s" to the grammatically correct "IDs" (without unicode funkiness this time).', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6b17165d23ead15e66854ff882c59e0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/694', 'title': 'Fixed a typo (redux)'}, {'body': 'Checks if the element is an input and changes the value instead of the html.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e9cfdaf594b46fd4932db4c31e88a05b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/691', 'title': 'Allows the use of bootstrap-buttons.js on submit buttons.'}, {'body': 'Would be handy to have this possibility in Boostrap core, rather than copying the styles in your project.
Usage of span\'s might be a better way of dealing with disabled items, especially for integration with CMS and the like. Instead of using `href="#"` or `event.preventDefault()` ...', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed876cd155692c8bf39158dbcbd240cb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/690', 'title': 'Make it possible to use `` in pagination'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ed876cd155692c8bf39158dbcbd240cb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/689', 'title': '`less` instead of `lessc` in makefile'}, {'body': 'Merely changed "id\'s" to the grammatically correct "IDs". Sorry for being a pedant!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6b17165d23ead15e66854ff882c59e0c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/687', 'title': "Fixed a typo. Because I'm a Grammar Nazi."}, {'body': "Having an absolute positioned sidebar means content overflows into footers in some cases.

I've fixed this by having the sidebar float left and use a negative margin to put it into place. This also solves the issue of the sidebar affecting the height of content rows.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4c9304b96e4317f69699d25cfa0a761?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/678', 'title': 'Fix issue #661 - buggy sidebar in fluid container'}, {'body': '...custom title attribute breaks the fallback', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/66e14a3ec74bb47f40b575ae0eb6b67b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/676', 'title': 'Fix for issue https://github.com/twitter/bootstrap/issues/514 - using a ...'}, {'body': 'This an ordering fix that was noted in issue #669', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c468f03c2bc4214664301947483de7c2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/673', 'title': 'Fix issue #669 .sans-serif attribute ordering'}, {'body': '@fat please consider this fix for #655. It is really necessary in order to make using popover easy. It makes it super easy to just randomly create popovers and know that they are going to work without having to add javascript for each popover.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/670', 'title': 'fix for issue #655'}, {'body': 'I have added split buttons like these

![split buttons](https://lh6.googleusercontent.com/-ElZA-kj4p0Y/TsamEZWDBHI/AAAAAAAAAns/pdArTQNp1WQ/s551/Screen%2BShot%2B2011-11-18%2Bat%2B7.36.32%2BPM.PNG)

I\'m not to sure about the color of the "arrow" button when pressed. They match the pressed color of the dropdown buttons. I have [previously](https://github.com/twitter/bootstrap/pull/467#issuecomment-2621429) asked @markdotto about this color.

I think that the color of the pressed dropdown/split buttons should be the same as the color of the regular pressed buttons.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f1f3eed9dd9e09c79ebc2495891f958?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/662', 'title': 'Split buttons'}, {'body': 'When i tried to put an alert-message inside a modal and closed it, the modal closed aswell. I fixed this issue and now its possible to close an alert-message without closing the modal. I also added tests to that situation.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7689875bf59e075a4005c828a7a52b8d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/660', 'title': 'Closing alert-message inside the modal'}, {'body': "Here's the datepicker updated for 2.0-wip. I updated the version of jquery used on the test fixture to 1.7 (since I'm using .on() and .off()), but if supporting old versions of jquery was intentional, I can update the plugin to use older idioms.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e45c9c1a1c6184d5572859c52ae43bfc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/657', 'title': '2.0 datepicker'}, {'body': "In Django templates it's not common to add classes to inputs, so I created classes which can be given to inputs parents.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/4d49d5e1bfd3f663b23652b7a4288e8e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/653', 'title': 'inputs in django forms'}, {'body': 'Use display: inline-block instead of float: left for .pagination ul. Centering the pagination can be done by using .pagination.center. I think this is much easier to understand and therefore preferable above the solution shown on #304.

_This is the same change as https://github.com/twitter/bootstrap/pull/638, but done in 2.0-wip_', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0bba82e8b2a9d2cf9645cb07ea54766f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/652', 'title': 'Center pagination'}, {'body': 'When refreshing fragment of page with Ajax (pjax in my case), the twipsy remains on the page.

By default twipsy are prepend to ```document.body```, refreshing with ajax some fragment of page will not remove the twipsy.

The solution, adding a parameter to explicitely define the tag at which the twipsy is prepend to. (keep document.body as default)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56c449f1a408dba893793094599f7fb5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/651', 'title': 'New Attribute parentContainer for twipsy'}, {'body': "When I run $('.element').twipsy('hide') with more than one element. Only the first twipsy is removed...", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a128ed994fdba3004a713314a840204c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/650', 'title': 'Hide/show twipsy'}, {'body': 'Moved some font-related styles to the right place, and fixed a bad call to sans-serif() mixin where line-height is set as "normal".

', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c74bdcd3fa7c3d3f23290f46430b1463?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/648', 'title': 'Form font styles'}, {'body': 'trying to do my part. ;-)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0797402e2558924b62845d0ac0fddbb3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/647', 'title': 'added condensed table example to documentation'}, {'body': 'http://twitter.github.com/bootstrap/#javascript', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c5b3d989248cad6fea449500c6b0e002?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/645', 'title': 'Docs: fix dropdown anchor'}, {'body': 'I got tired of firing up web inspector / firebug to figure out the dimensions of a grid column so I wrote a quick page to display all the dimensions in one place.

It uses javascript to display the widths so it should work with those that roll their own grids granted the references point to the correct stylesheets. Should be pretty straightforward. Let me know if you have any questions.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/30f957ec3d22f2701b17d212a554fdd7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/643', 'title': 'Grid Dimensions Example Page'}, {'body': 'Use display: inline-block instead of float: left for _.pagination ul_. This allows centering the pagination in a user-defined stylesheet by setting .pagination { text-align: center }. I think this is easier to understand and therefore preferable above the solution shown on https://github.com/twitter/bootstrap/issues/304.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0bba82e8b2a9d2cf9645cb07ea54766f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/638', 'title': 'Center pagination'}, {'body': 'This fix helps avoid situation when changes in content div breaks popover.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cebfabb19814410151c8375b798643df?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/636', 'title': 'More stable popover'}, {'body': "Lots of responsive design updates. First off, converted the grid to be fluid, which is one of the three things needed to qualify as responsive design under Ethan Marcotte's definition. The second is flexible images, which fall outside the scope of Bootstrap, and third is media queries which have been simplified and refactored in this branch.

While not part of the strict definition for responsive design, I've also converted most pixel based measurements to em. If you're like me this may seem repulsive at first. Pixels are easier to visualize and in fixed width layouts the advantages of em are minimal. Yet in every example of using responsive design I've seen Ethan write about, a big part of it involves converting px to em. Once I dove in and gave em a go in responsive designs the strengths became more clear. With em everything is relative to it's parent's font-size. It becomes very easy to just adjust the scale of an entire design in a media query by changing the font-size of the body tag, or of a particular section of the page by adjusting it's container; everything proportionally scales inside.

I used Ethan Marcotte's style of commenting em values. At the end of each line there is a comment with a fraction in it. The format is value/context. So for example, if you have your body tag set to a something equal to 13px (context), and a child heading tag you want to be 16px (the value) the comment would look like // 16/13. This makes it quick and easy to understand what the em value represents in pixel terms. The same commenting style is used on the % values in the grid.

There are a few places I went overboard with em conversions (namely some padding), so I intend to revisit a few areas and see if I just have bad calculations in those places or should have stuck with pixels there.

One goal with all these changes is to make everything look exactly the same when you set the page to the same fixed width the framework started with. A few miscellaneous bugs non-withstanding, it stays true to this goal.

I also added a fractional grid, because they are sexy to to work with when using a fluid grid. The fractional grid is modified version of Nicole Sullivan's OOCSS grid. It's been modified to play nice with Bootstrap's preference of using padding over margins for gutters and other spacing. Curious what you guys will think of it.

There is a new file called grid-test-iframe.html (inside the examples folder) which is handy for getting an overview of how the media queries are playing with the layout.

I wouldn't call this update production ready. There are a few bugs and it hasn't had much browser testing yet (built with Safari). Though I wanted to get it in your hands for feedback and feel its far enough along for the big picture to be apparent.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd282b0351815bc78fa28dd5e17c30ec?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/631', 'title': 'Responsive design'}, {'body': 'This pull request fixes a sample sentence that is used to demonstrate radio buttons on the main docs page. It looks like it was initially copied over from the one used to demonstrate lists of checkboxes, "Option two can also be checked and included in form results", but someone accidentally left in the "can" and pluralized the word "option".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e63b38022956263621de9c55b637ea78?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/629', 'title': 'Fix grammatically incorrect sentence (copy-paste oversight?)'}, {'body': "Two main changes:

1) Added #font.family mixin - provides ability to call #font > #family > .[type] to embed the font-family property for the specified type. Means that the same font-family only needs to be configured once. This also makes it easier to customize the font-family set by overriding just a single mixin. Fully backwards compatible.

2) Changed <pre> and <code> to use #font > #family > .monospace mixin

NB: Also added 'cursive' set to the available font styles.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/9b39c38fb5ef3f558880cc8e20d7e514?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/627', 'title': 'Improvements to #font mixin'}, {'body': 'Modals usually have a cancel button. Adding a .close class gives the button the correct functionality, but messes up the button css. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e66e7e1f2b8a40cd347554a242921a10?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/623', 'title': 'css class .cancel will now do the same as .close'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d6f52da4948a5b46ec0ae8c199620c83?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/621', 'title': 'Fix tab event selector in tabs example'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dcd4472ed5220942c7dfedf502154b64?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/619', 'title': 'Fix for Issue #618'}, {'body': 'allerts -> alerts in mixins.less', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/dd1a815ca3634ab75bd9c92a719005d5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/617', 'title': 'Fix typo'}, {'body': "This is a js date entry widget built expressly for bootstrap. It's fairly thin, at 2.1K min/gz, but still somewhat extensible. It supports keyboard navigation, reverts to iOS native date entry, and a few other little features. It's pretty thoroughly tested in all the browsers that Bootstrap lists support for, although the visual design could probably be improved.

Demo here:
http://dl.dropbox.com/u/143355/datepicker/datepicker.html", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e45c9c1a1c6184d5572859c52ae43bfc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/614', 'title': 'Calendar/Date Input - Refs #445.'}, {'body': 'So you can get borders that look like this:

[http://i.minus.com/ibmuYBGrlkwrTP.png](http://i.minus.com/ibmuYBGrlkwrTP.png)

By using the mixin this way:

```css
.arrow {
#borderArrow > .below(15px, 1px, @color, #f9f9f9);
}
```
You can use .below, .above, .left, .right and the parameters are: width of the arrows, border width, color of the border, color of the inside

Given this HTML:

```html



```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/68721930b6e2d5b125633cc3d28715c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/612', 'title': 'Added mixin for bordered arrows'}, {'body': 'current .border-radius only supports a single radius for all corners. this mixin supports setting a radius for each corner. for eg.

.border-radius(0px, 0px, 8px, 8px)

will create a border radius with bottom corners rounded. defaults each corner to 5px', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6af3381f219bc3eee66d1a28f98021fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/606', 'title': 'add border radius support for varying radii on each corner'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/74c6ea3f2a916c163a2dd9223023ffea?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/604', 'title': 'replace in patterns.less : bt &.active, :active by &:active, .active'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1dadee42172df5042f0c4643f9fbbe6f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/602', 'title': 'BTN active state fix & White Block Message for darker backgrounds'}, {'body': 'Removed a space that prevent button active states', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/1dadee42172df5042f0c4643f9fbbe6f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/601', 'title': 'BTN active state fix'}, {'body': "Modified width of .container and .fixed-container() to fix the issue of not being able to access items on the right side of topbar when the window is resized to a width that's too small", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cecdde241ad45748417ffd976b0793bd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/597', 'title': 'Fixing topbar issue of right side items not being accessible when window is below a certain width.'}, {'body': 'I was in the situation of having a modal with an \'ok\' and \'cancel\' button and needed to figure out which caused the modal to close.

I needed the event info that was passed to the `Modal.hide()` function to be passed to the `hide` and `hidden` events as well. So now I can do this:

$(\'#modal-from-dom\').bind(\'hidden\', function(e, f) {
if ($.inArray("cancel",f.srcElement.classList) < 0) {
// some stuff
}
});

Given these elements:

Ok
Cancel
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/68721930b6e2d5b125633cc3d28715c8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/596', 'title': 'Passing further info to the hide/hidden events to see which object triggered the event'}, {'body': 'Added semicolons to ensure minification doesnt break the dropdown plugin. When I minified my scripts, the dropdown plugin broke everything because there were not semicolons at the end of each line. This fixed it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/3547179be285fedaf4ea10605142a698?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/595', 'title': 'Added semicolons to ensure minification doesnt break the dropdown plugin.'}, {'body': 'Add empty-cells:show attribution for td in table tag', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/49fcf4152ff77de6c863884dbb847b37?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/594', 'title': 'Add empty-cells:show for td in table tag'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/958e2f37f92c6283be95cb0a56574111?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/592', 'title': 'Implemented data-backdrop attribute when opening a modal.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/958e2f37f92c6283be95cb0a56574111?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/591', 'title': 'Implemented data-backdrop attribute when opening a modal.'}, {'body': 'Pills with dropdown. the whole listing gets highlighted if the parent is highlighted - an UX tweak. This change lets parent and active child to be highlighted.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8873ba3dbd192794b4f5b50f33d63a17?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/584', 'title': 'Update lib/patterns.less'}, {'body': 'selects a tab if a hash is available in url and hash matches one of the tab names', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f4f96a08152550e603ee595403f3ba57?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/581', 'title': 'activate tab based on url hash'}, {'body': 'Added the missing viewport meta tags in order for the documentation to be truly responsive', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bd508cb86ee45d370a469dc4f0460f8a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/579', 'title': 'Proper responsiveness in the documentation'}, {'body': 'Tweaks to the documentation on the Scaffolding and Javascript pages.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/41ab183eca0ab92724c08d9b48f7f17e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/577', 'title': 'Updates to 2.0 docs'}, {'body': 'Moved from https://github.com/twitter/bootstrap/pull/467', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f1f3eed9dd9e09c79ebc2495891f958?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/573', 'title': 'Fixed IE7 positioning problem in btn-dropdown'}, {'body': 'It looks like redundant legacy from previous version when error fields were surrounded with red background. Now it looks odd, since the shape of the form changes its size and distort existing layout.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/56c19d0f5d2640d4ddf730e25acf4364?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/570', 'title': 'remove redundant padding for error fields within form-stacked'}, {'body': "adds a twipsy('toggle') function which calls .show/.hide depending on presence of 'in' class. requested in issue #560", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/da0621201453bf5030699c52e4d003f9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/564', 'title': 'twipsy toggle function for issue #560'}, {'body': "I'm hoping this is the smallest diff you've ever received. :)

After you do that, it looks like compilation is successful.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f33db0c419ef910f144ce539ca0240bc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/557', 'title': 'Fixed compilation under dotLess'}, {'body': "since `template` is editable, selectors should be editable too.

for me, the main reason for this is that `

` is too restrictive to put complex content in (like multiple paragraphs for example), old IE's a bit strict about this so passing in a `template` with `
` instead makes sense but then you run in to trouble with the content selector.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/026f5af604a336a38301639027757f29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/554', 'title': 'optionable selectors for title & content elements'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6af3381f219bc3eee66d1a28f98021fd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/544', 'title': 'bump version number in docs'}, {'body': 'I added 3 buttons: purple, brown, and an additional shade of blue. I made some updates to the color variables as well.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a4a2351ad883f4b439895fe8f5c968b2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/543', 'title': '2.0 wip'}, {'body': 'Fix issue #538', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c562741f64d596e5c12ec739dd56c3a0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/540', 'title': 'Fix issue #538'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1db2bce9d74b5ab8594e64589705bfd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/537', 'title': 'Small change to correct the incorrect description for bootstrap-buttons.js in the Javascript section'}, {'body': 'When using bootstrap as a git submodule i get "untracked content" for bootstrap as less.app in os x builds each file in lib/ to a css file.

This pull request fixes that by adding a line to gitignore to ignore css files in the lib directory where only less files should reside. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d132cd1b472750c37ffa4ba5b6bd462a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/536', 'title': 'gitignore css files in lib/'}, {'body': "jQuery 1.7 beta and underscore.js both now use the Asynchronous Module Definition (AMD) API. I thought I'd add it to Bootstrap JS. Bootstrap will now work with Require.js and will work as is if people choose to use Bootstrap JS without Require.js. For more info on AMD: http://requirejs.org/docs/whyamd.html .", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e56fc7faa6df07a518f997daafb9f640?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/534', 'title': 'Added AMD to Bootstrap JS'}, {'body': 'Remove border-radius on the first tbody row, it is likely not something that is desirable.

The border radius is not visible when the table is placed on a white background, but when using a darker background it will be visible and ugly.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0aa514c079b74c6655e6a8bf1073c878?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/529', 'title': 'Remove border-radius on the first tbody row'}, {'body': "In the show class, is necessary append the new element to the document body only if it doesn't already exist. It fix the problem when the modal is used in a web that uses ajax navigation. With the actual code, when the user navigates, several modal duplicates elements are created in the document body. ", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ac2473b22a0b89ae10c524eb424ac3c4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/526', 'title': 'In the show class, is necessary append the new element to the document body'}, {'body': 's/LESS_COMPESSOR/LESS_COMPRESSOR/g', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bab8fefee0f3897f22289ebe50c7fd55?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/525', 'title': 'Fixed typo in Makefile'}, {'body': 'Adding and removing classes when using $().button so you can style each state differently...

Also, giving $().button(\'toggle\') some love if there is "active" text in the element. Might help with the follow/unfollow stuff here: #522

`(\'.btn\').button(\'toggle\');` now performs a text swap.

`$(\'.btn\').button(\'saved\');` adds a class \'state-savedText\'
`$(\'.btn\').button(\'love\');` adds a class \'state-loveText\'
`$(\'.btn\').button(\'hate\');` adds a class \'state-hateText\'
etc...

So you can style each state differently...', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2fdf8dfe329dd7dce510bcf0c32e3ef3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/523', 'title': 'Patch 3'}, {'body': 'this one fixes tabs display if content height is smaller than the tabs height', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f000c9b4dd0656f60de1dc9e75f7386c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/519', 'title': '2.0 vertical tabs margin fix'}, {'body': 'Added semicolons so that the file can easily be compressed by tools such as Asset Packager', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ddf9c98db9ac40c6875fd2a5b2d4fa72?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/515', 'title': 'Simple fix to bootstrap-dropdown.js to allow it to be compressed by Asset Packager and other packaging tools'}, {'body': "hey guys, I thought I'd finish up left and right vertical tabs implementation for 2.0.
feedback much appreciated", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f000c9b4dd0656f60de1dc9e75f7386c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/498', 'title': '2.0 left and right tabs'}, {'body': "Well, this may sound silly, but it's not. Just a little fix to align the close button on alert messages in the center.

Turning this
![img1](http://img18.imageshack.us/img18/6479/screenshot00978.jpg)

Into this
![img2](http://img198.imageshack.us/img198/7086/screenshot00979.jpg)

Tested in all browsers.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d8230f238b72b588b539e4fff174747e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/492', 'title': 'Aligned close buttons to the middle of alert message'}, {'body': "Hello !

I've just added a Sass (scss) version of the bootstrap. It could be useful for the community who uses this CSS preprocessor !

Thank you for attention ;)

Oliv", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/860f2b88ea66acb5e08b9551d7225ab1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/482', 'title': 'Just added a Sass (scss) version of the bootstrap'}, {'body': 'Renamed .clearfix() mixin to .clearfixEx() in order to fix issues with naming conflicts with.clearfix classes in the less (v1.1.4) parser when using node.js (v0.5.8) for windows.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2ea619950f89e0a0a23edd318025dc3d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/477', 'title': 'The naming conflict with clearfix still seems to be present. Lets just rename it!'}, {'body': "Previously you would use `prev` and `next` to round the corners of the
items in the pagination list. I changed it to use the `first-child`
and 'last-child' becuase you want the corners rounded regardless of
whether or not you have a list item marked with the `prev` or `next`
class. For example, I have the following pagination list:

[1][...][12][13][14][15][16][...][23]

I could have added the `prev` and `next` classes to the boundary
items (1 and 23), however it's semantically incorrect, and I think
this solution is more flexible.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/fd40ee16d9d941669f3892efbf48209c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/470', 'title': 'Rounding pagination list boundary items'}, {'body': 'Moved pull request [192](https://github.com/twitter/bootstrap/pull/192) to dev branch', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f1f3eed9dd9e09c79ebc2495891f958?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/467', 'title': 'Dropdown button in dev branch'}, {'body': "I've tried to quarantine all my changes to test out a responsive version of Bootstrap to the [`css`](https://github.com/domain7/bootstrap/blob/responsive/css/) and [`responsive`](https://github.com/domain7/bootstrap/blob/responsive/responsive/) directory and the [`examples/responsive.html`](https://github.com/domain7/bootstrap/blob/responsive/examples/responsive.html) file. It's all very experimental and more of a first kick at a responsive layout using an alternate [grid system](http://markuplibrary.org/templates/html5/grids/), but it might be an interesting alternative approach to the [2.0-wip](https://github.com/twitter/bootstrap/tree/2.0-wip) branch.

View a demo of the responsive version at [domain7.com/mobile/tools/bootstrap/responsive/](http://domain7.com/mobile/tools/bootstrap/responsive/). It has also been developed as a [Symphony CMS ensemble](http://symphony-cms.com/download/ensembles/view/78969/). View the demo of the ensemble at [sym.domain7.com/demo/bootstrap/](http://sym.domain7.com/demo/bootstrap/).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/bac24b344b3f93a2a675c4c0ae6137d1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/466', 'title': 'A Responsive version of Bootstrap'}, {'body': 'The baseline table styles are a bit messed up if you have multiple `s` a `` and `s` in either of those. This is all perfectly valid markup. This commit fixes the styling in those cases.

Here is some example table markup:

``` html


column heading
column heading
column heading


































Row heading data
Row heading data data
Row heading data data
Row heading data data
Row heading data data

```', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/463', 'title': 'fix styles to allow for valid table markup variations'}, {'body': 'Noticed that the hero example layout uses "span6", "span 5", "span 5" instead of the new "span-one-third" class', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aaa6a17e97fc1b96928671476dbaac25?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/462', 'title': 'Use proper span classes for three column layout in hero example'}, {'body': 'In the media queries for the small screens the negative margin on the .row class causes the content to be partially hidden off the left side of the screen. This resets the .row margin to 0 for those mobile screen media queries.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/461', 'title': 'Responsive row fix'}, {'body': "So you intercept an event you can operate on a modal as defined per customer data attributes

e.g.

``` js
$('#ec-modal').bind('show',
function (_,a) {
alert(a.img);
});
```", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a998795c23a775e72ee28643c482a1f4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/457', 'title': 'Propagate data attributes to events'}, {'body': 'Replace the non-semantic span with class divider in the breadcrumb navigation with css generated content.
This should work for any modern browser that supports pseudo element :after. ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cd91cdaad43b6b66694708d75dddc8b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/448', 'title': 'Remove non-semantic markup from breadcrumb navigation'}, {'body': 'The modal window is 560 pixels wide so from the center there should be 280 pixels both left and right instead of just 250 pixels each.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/04ef3f14af2637b109c272d13b15c64c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/434', 'title': 'The modal alignment is a bit off'}, {'body': "Implementing bootstrap into a rails app today, and ran into this issue. When a form is placed inside a modal, the margin-bottom: 18px; causes there to be a white bar at the bottom of the modal if the submit button is inside '.modal-footer'. The attached code should fix this specific case.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/aaa6a17e97fc1b96928671476dbaac25?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/431', 'title': 'Forms inside modals should have margin-bottom 0px'}, {'body': 'This is an easy fix for issue #374 which has been out there for a week or two; figured I would take care of it.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/98f60d0c093df629cc8208dab7da2ea9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/430', 'title': 'Modified the position of the modal per issue #374'}, {'body': 'Hi,

Support for select tags is missing when using a .inline-inputs.

Please review! ', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7d0ec16f7ab8051645124e06ae1b11a4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/425', 'title': 'add support for select in .inline-inputs'}, {'body': 'Added a .delegate for a .cancel class so cancel buttons can be easily added to modals without having the .close CSS applied to the button.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/08e85ea943193de2cef0285cb50c4cba?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/421', 'title': 'Added a .delegate for a .cancel class so cancel buttons can be easily add'}, {'body': 'I noticed a "you\'re" when it should be "your." It bugged me, so I fixed it. Other than that, love the library and the documentation!', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/af20dc6a55a70b601c632c064afedac1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/420', 'title': 'Fixed small grammatical error'}, {'body': "Hello,

Here are some updates to the docs for the 2.0 WIP branch.

It looks like you have opted to use `fluid-container` instead of `container-fluid`. That's what started the ball rolling.

Thanks,

Silumesii
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/41ab183eca0ab92724c08d9b48f7f17e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/414', 'title': 'Docs 2.0 WIP - Updates'}, {'body': "Hi there,

It wasn't clear to me anywhere in the documentation how to get the blue alert messages; I had to view the source and CTRL-F for 'heads up'. This minor modification might clarify that it's `info`?

Cheers,
Lee :beer:

## Before
![Before](http://i.imgur.com/uDlQ7.png)

## After
![After](http://i.imgur.com/0suvF.png)", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/8058c2c00149cbe4104ddc9fa814443f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/413', 'title': 'Developer documentation - alert clarification'}, {'body': "Refactor Twipsy.show()'s popup-box placement logic into a method so that it can be overridden if needed.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/395c6463812f06e3311b1714b5b3f604?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/411', 'title': 'Move popup-box location calculations into a method.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/15431d0a12929d443aabafd698fe520d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/408', 'title': 'adjust width calculations for formColumns to fix issue #404'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/51a224bc83750d654f6d102c2055449b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/395', 'title': 'Use `@baseline` for form input add-ons (e.g. Twitter "@")'}, {'body': 'as i mantioned in the ticket https://github.com/twitter/bootstrap/issues/374#issuecomment-2330729', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0c0e1903ccb1122c6345822fa7c2c27f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/390', 'title': 'centered modal'}, {'body': 'centered modal', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0c0e1903ccb1122c6345822fa7c2c27f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/389', 'title': 'centered modal'}, {'body': 'Hello,
Just small updates using @baseColor from variables.less into forms.less and patterns.less
I hope this the good way to "theme" bootstrap.

Regards.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/ca2f8af83a07d7fb1555a6ea426f9c43?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/384', 'title': 'Using baseColor in bootstrap'}, {'body': "Hello,

Just a few small updates to the docs/index.html page and an update to .gitignore.
Also, this is my first pull request ever. Let me know if I'm doing anything wrong.

Thanks for the great work!

SIlumesii
", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/41ab183eca0ab92724c08d9b48f7f17e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/381', 'title': 'Docs'}, {'body': 'Fixes issue #359 by removing an unnecessary border in a nested table.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f12ed6301268a1a8d40f292135e6bfca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/368', 'title': 'Fix issue #359'}, {'body': 'See https://gist.github.com/1258742 for an example, which results in the error:

"TypeError: Object has no method \'dropdown\' at bootstrap-dropdown.js line 31"

It looks like in these circumstances, the functions hooked into
jquery.ready get run immediately, and so applying the dropdown
behavior to specific elements before defining the \'dropdown\' method
causes breakage.

-Steve', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/04f3babefa4ba85e7904b40e6846e217?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/362', 'title': 'Add jquery.ready hook after defining plugin, to avoid breakage with modernizr/yepnope '}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/35ac4232cac22c0c4524972455bdbe3e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/361', 'title': 'Fixed comment to show appropriate file name. '}, {'body': "Not sure if I did this correctly - I think I interpreted line 91 correctly - but this change allows one to specify the `selector` used for the `.close` link. I require this as the Modal plugin uses the same `.close` selector to delegate closing the modal, and having an alert within a modal will ensure that the alert's `.close` link closes the modal, not the alert.

If there is a better way to do this, I'm all ears.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/b069294dc48acd6c4cfe8b98fc467c89?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/356', 'title': 'allow passing the selector as an option to the Alert class'}, {'body': 'Adding a popover to the `examples/container-app.html` file causes margins to be off.

![Screen shot of problem](https://img.skitch.com/20111001-fr6fqk2my2b18nnhb9e4gnge3g.jpg)

Fixed by making CSS for `.content` more specific.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/6e8dc378247ac1979725613687fc5cf5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/353', 'title': 'Fix problem with `examples/container-app.html` when adding popovers'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0e5662a688c63f0a8926fcd7efd2db59?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/351', 'title': 'Added rounded border support for IE'}, {'body': "Label should not split on two lines when it include more than a word, isn't it? I added white-space: nowrap; in both CSS and LESS files.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/2fe6980e5901d64738961af0549cf911?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/346', 'title': 'Add a white-space: nowrap; for .label elements.'}, {'body': "Think the option is supposed to be 'keyboard' in the docs, not 'closeOnEsc'.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/92dfeb863138a5a9c0453ed80f9c8c75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/332', 'title': 'JS Docs Typo'}, {'body': "I realized you can easily make a cancel button by adding close class to the secondary button. From his tweet to me, I think @mdo is a fan of providing a cancel button in the dialog. If that's a best practice, maybe it should be in the docs? (Or if you think cancel buttons are overkill, then that's cool. Your call).", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/92dfeb863138a5a9c0453ed80f9c8c75?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/331', 'title': 'Cancel button on modal demo'}, {'body': 'tweaked bootstrap-tabs plugin active tab selector to allow for nested tabs', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/275ccd7a099e05a1067f5c484e39b4b2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/329', 'title': 'make tabs plugin play well with nested tabs'}, {'body': 'The mixins.less file should probably have "Mixins.less" at the top of it instead of "Variables.less".', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a8ccdeeec7ed2421293dc94e3e78c383?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/326', 'title': 'Minor documentation typo'}, {'body': 'It includes an edit for the `container-app.html` example in order to show the functionality added.

As a container class for the tabs might be needed to avoid floating elements to slide into the `.tab-content` area a new `.tabs-container` class has been added which simply makes use of the `.clearfix()` mixin.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7c173c10c7211ec5c0521612a4f8ea50?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/323', 'title': 'Add support for vertical tabs/pills to the framework.'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7b1e8dcb03a2c46a3696cca515e9fd4f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/319', 'title': 'Fix file name typo'}, {'body': "Twipsy doesn't currently work with Ender for the following reasons:

`ender.support` isn't defined (as far as I can see anyway, perhaps there is a package that has it?). Seems like something that could go in to bowser though.

`ender.data()` is only bound to the internal chain so can't be called as `$.data(e, k, v)` but as far as I'm aware `$(e).data(k, v)` is fine by both Ender and jQuery. Perhaps `bonzo.data` should be bound to `ender` as well as `boosh`?

`ender.remove()` doesn't clean up like jQuery's does which leaves `transitionEnd` bound so on subsequent `show()`'s you get an immediate fade-out after the fade-in. An explicit `unbind()` seems to do the trick.

`ender.fn` doesn't actually do anything as far as I can tell so it seems appropriate to do an `ender.ender(ender.fn, true)` at the end of Twipsy to install it properly. Or perhaps just `ender.ender({twpsy: ender.fn.twipsy, true)` would be safest?

This pull request added Ender support and adds a little note about the dependencies. Let me know if you want anything adjusted.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/026f5af604a336a38301639027757f29?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/318', 'title': 'bootstrap-twipsy ender support'}, {'body': 'Pull request for issue #303

IE7 is not supported.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e31eeb15e4b9488cc6c50522ce189288?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/317', 'title': 'Icon buttons'}, {'body': 'repair for version number.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/492da7e022786a647bf0a1efb28db3f8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/311', 'title': 'Wip1.4'}, {'body': 'I\'ve added toggles and radio buttons as in [issue #81](https://github.com/twitter/bootstrap/issues/81). There\'s [a fiddle](http://jsfiddle.net/Dqn36/) to play with, and they look like this:

![Radios & Toggles](http://dl.dropbox.com/u/2094533/share/radiotoggle.png)

* The attached buttons are called "button groups". In the OS X interface guidelines they\'re called "segmented controls"; jQuery UI calls them "button sets". Suggestions?

* These rely on some Javascript, and it\'s the first time I\'ve ever written unit test cases (!) so maintainers should scrutinize those probably.
', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/72ed3298f485108e21bfad604a08368c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/308', 'title': 'Button groups, toggle buttons and radio buttons'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f139443025a13bc7db3d3fa8ab05d990?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/301', 'title': 'Fixed typo'}, {'body': 'When form fields appear consecutively with errors, there is no margin between them. This is caused by a negative top margin added to fields with error (to account for padding), but when they appear consecutively it causes the outer div.clearfix.error containers to touch up to one another with no margin. This fix adds back the margin on the subsequent consecutive fields. Similar to common "p + p" css margin fixes.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7d92081717240f3a783b571e2e45a02f?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/300', 'title': 'add margin between consecutive fields with error'}, {'body': "there [seems to be a bug](http://jsfiddle.net/aaronj1335/7hH89/8/) that throws a JS error when `.modal('hide')` is called before `.modal('show')`. this commit is a fix.", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/d7cd2f1a2616bb166c30f43866415cdd?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/296', 'title': 'Bug fix for hide-before-show bug'}, {'body': 'I made this change for my personal use a few days ago but figured it might be something others would want. Not sure if I implemented it correctly (but I tested it, and it works) as I am far from being a Javascript/jQuery expert.

This commit makes it possible to namespace your modal windows.

The use case for this is a page where you allow for clients to have custom html & css, but also have some static html/css of your own. Not namespacing your own css means that it could be overwritten by accident by the custom code.

I still wanted to use the Bootstrap elements so I simply added a class namespace inside the LESS files by wrapping all the css inside a new block:

```css
.my_custom_namespace {
... original bootstrap css here ...
}
```

This is very easy to do yourself and it works great, except that I can\'t use the vanilla JS with this because it places elements directly in the body of the page instead of the namespaced element.

With this commit, if you want a different parent element than the `document.body`, you pass it the `parent` option.

```coffeescript
$("#my_modal").modal
show: true
parent: ".my_custom_namespace"
backdrop: "static"
```

Now the modal will be positioned inside the element with class: `my_custom_namespace` on hiding/showing.

If this is any good, and people are interested, perhaps it would be a good idea to port this functionality to the other JS files as well, but I haven\'t had a chance to check those out yet.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/39fc02d6a812edf6daa8914247e9b4c0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/286', 'title': 'Allow for namespacing of modal (and backdrop) window'}, {'body': 'Fixes a bug where using the [data-tabs] or [data-pills] multiple times in a page causes all tabs to be associated together.

Sample code to trigger bug on a page w/ bootstrap being used:

```
```

If you clicked on "Link2" in "tabgroup1" after loading the page, it will become active and all other tabs (including those in "tabgroup2" would become inactive, even though they are in a different tabgroup.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7413686ba3683e91110f90a8d4a17eca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/284', 'title': 'Fixes a bug when the [data-tabs] or [data-pills] called multiple times'}, {'body': 'Use @blue and @red in the input shadows instead of custom colors.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/e31eeb15e4b9488cc6c50522ce189288?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/279', 'title': 'Use defined variables for form shadows'}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/f1a15d42781516879dab863cc5f46297?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/278', 'title': 'Fixes typos of "bootstrap"'}, {'body': 'This was done so the example more clearly reflects that the content
successfully changes when moving between tabs', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7a5b533e6ff378a418bffea45dc4c2f0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/277', 'title': 'Changed text in tabs example from ellipsis to unique content per tab'}, {'body': 'A few entries in patterns.less had a TAB instead of spaces.
I replaced all TAB entries and re-aligned the text with spaces.

I did NOT recompile with less (I was just reading the source code),
so that should be retested before merging into upstream.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/160992dfd434ff7055465446b9423bd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/274', 'title': 'whitespace: replace some TAB entries by spaces in patterns.less'}, {'body': 'A few entries in mixins.less had a TAB instead of a space.
I replaced all TAB entries and re-aligned the text with spaces.

I did NOT recompile with less (I was just reading the source code),
so that should be retested before merging into upstream.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/160992dfd434ff7055465446b9423bd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/273', 'title': 'whitespace: replace some TAB entries by spaces in mixins.less'}, {'body': "I added some code into the clearMenus method that checks to see if the element that was clicked is inside the open drop down menu, and if it is, checks to see if it has the class 'no-close'. If it has that class, it doesn't close the drop down. This way, a user could have a form in a drop down, and the inputs could gain focus without toggling the drop down.

See it in action: http://jsfiddle.net/pthrasher/uLRtY/", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/786f15d68dc5b6f9565b59a9ee1972d6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/269', 'title': 'Allow inputs in dropdown menus.'}, {'body': 'Massive super-important typo fix that will improve usability and ux and other buzzwords. (thanks for the sweet code!)', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/7413686ba3683e91110f90a8d4a17eca?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/268', 'title': 'Typo fix: "you\'re" to "your".'}, {'body': "When concatenating or naively minifying the existing JS, the lack of semicolons resulted in ambiguous code and resulting breakage in one of my Rails apps. This commit makes the JS pass JSLint's checks, and the result is safer behavior. (Sorry that it necessarily touched so many lines.)
Cheers!
-Steve", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/04f3babefa4ba85e7904b40e6846e217?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/266', 'title': "Make js/*.js pass jslint's checks; the existing JS broke when caching with Rails 3.0"}, {'body': '', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/c963f661f79afe467b6b8ec6db7c9914?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/264', 'title': 'Added radial gradient style with center color and outside color'}, {'body': 'Allow .uneditable-input to also use .spanN classes and size classes for width.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/615492962f3ba2a3d179c1dacf6881a9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/262', 'title': 'Allow .uneditable-input to also use .spanN classes and size classes for width.'}, {'body': 'fixes #258, clicking a tab remove .active class from all elements on the page', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/104d2f95013791875b8b787447e659b6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/259', 'title': 'fixes #258, clicking a tab remove .active class from all elements on the page'}, {'body': 'Fixed a few things I had trouble with on the modals when looking at docs', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0e5662a688c63f0a8926fcd7efd2db59?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/255', 'title': 'Modal javascript fix and doc update'}, {'body': "Edited index.html to add 'Get The Javascript' button in sidebar for tabs and pills", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/a2d8e7c7cdf414c284c141a8ce548b25?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/251', 'title': 'Updated documentation to include sidebar button to the javascript page for tabs and pills'}, {'body': 'Dropdown menu should have a maximum height, or content may be hidden if it goes beyond the height of the page.', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/cdabecea7ffa650838d73ffe2cde807b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'reject', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/249', 'title': 'Dropdown menu should have a maximum height, or content may be hidden if i'}, {'body': 'javascript docs favicon and apple icons were pointing to a 404/non-existing assets
they now point to the same files as the index.html bootstrap documentation', 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/5744235abab8e6c1c6c6034874392d5a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/241', 'title': 'fixing locations of favicon + apple icons'}, {'body': "This allows you to load and change tab content on request. e.g.


$('.tabs').tabs().bind( 'changed', function( e, c ) {
// eventually unhook event handling from $(c.from)

// load content from server and update $(c.to).html
$.get( '/foo/' + c.to, function(data) {
$(c.to).html(data);
});
} );


Is meant to provide a very basic hook which allows you to load tab content with ajax.

", 'user': {'avatar_url': 'https://secure.gravatar.com/avatar/0f1f3eed9dd9e09c79ebc2495891f958?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png'}, 'outcome': 'merge', 'id': 'https://api.github.com/repos/twitter/bootstrap/pulls/237', 'title': 'Added changed event to bootstrap-tabs.js'}, {'body': 'Issue #224 points out a spelling error in the code portion of the dropdown example in the javascript docs. Instead of `