This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
These are the 3 places that together caused the nested calls to synchronize: | |
/home/tyler/.rvm/gems/ruby-1.9.3-p125/bundler/gems/capybara-555008c74751/lib/capybara/node/finders.rb:29:in `find' | |
def find(*args) | |
query = query(*args) | |
query.find = true | |
synchronize do | |
results = resolve(query) | |
query.verify!(results) | |
results.first |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
> rake cucumber | |
WARNING: Possible conflict with Rake extension: String#ext already exists | |
WARNING: Possible conflict with Rake extension: String#pathmap already exists | |
/home/tyler/.rvm/rubies/ruby-1.9.3-p125/bin/ruby -S bundle exec cucumber --profile default | |
Using the default profile... | |
Feature: Cucumber step definitions | |
@javascript | |
Scenario: When I do a capybara search that triggers the nested synchronize bug # features/reproduce_bug.feature:3 | |
==================================================================================================== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
> bundle exec rspec --backtrace spec/rspec/core/subject_spec.rb | |
Run options: | |
include {:focus=>true} | |
exclude {:ruby=>#<Proc:./spec/spec_helper.rb:84>} | |
All examples were filtered out; ignoring {:focus=>true} | |
...FF......................... | |
Failures: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module ActiveRecord | |
module NestedAttributes #:nodoc: | |
ClassMethods.class_eval do | |
def accepts_nested_attributes_for(*attr_names) | |
options = { :allow_destroy => false, :update_only => false } | |
options.update(attr_names.extract_options!) | |
options.assert_valid_keys(:allow_destroy, :reject_if, :limit, :update_only) | |
options[:reject_if] = REJECT_ALL_BLANK_PROC if options[:reject_if] == :all_blank | |
attr_names.each do |association_name| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Enumerable | |
# Returns an array of arrays, each inner array containing a cluster of contiguous elements from | |
# self. | |
# | |
# [-1, 0, 1, 3, 4, 7, 8].clusters_of_contiguous | |
# => [[-1, 0, 1], [3, 4], [7, 8]] | |
# | |
# Based off of Enumerable#cluster (from facets gem) | |
# | |
def clusters_of_contiguous |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Example usage: | |
require 'active_record/nonpersisted_attribute_methods' | |
class Node < ActiveRecord::Base | |
include ActiveRecord::NonPersistedAttributeMethods | |
define_nonpersisted_attribute_methods [:bar] | |
# Example of using with ancestry and getting :parent to show up in changes hash. | |
has_ancestry | |
define_nonpersisted_attribute_methods [:parent] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Desktop Entry] | |
Encoding=UTF-8 | |
Name=Vim (Console) | |
Comment=Edit text files in a console using Vim | |
Exec=/usr/local/bin/open_txmt_link_in_vim %U | |
Terminal=false | |
Type=Application | |
Icon=/usr/src/vim/runtime/vim48x48.xpm | |
Categories=Application;Utility;TextEditor; | |
MimeType=text/plain;x-scheme-handler/vim;x-scheme-handler/txmt; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# DelegateToAll. Like delegate.rb from Ruby's std lib but lets you have multiple target/delegate objects. | |
require 'delegate' | |
class DelegatorToAll < Delegator | |
# Pass in the _obj_ to delegate method calls to. All methods supported by | |
# _obj_ will be delegated to. | |
# | |
def initialize(*targets) | |
__setobj__(targets) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Extensions to gems/actionpack-3.2.13/lib/action_view/helpers/form_helper.rb | |
=begin | |
A version of InstanceTag.value_before_type_cast that returns a string in ISO-8601 format for Date columns. | |
The original behavior of value_before_type_cast was to return the Date object itself. But the default to_s on a Date returns a string like "June 5, 2013". | |
However, HTML5 date input fields expect their values to be in ISO-8601 format ("2013-06-05") and won't recognize the value if it is in some other format. | |
This makes it so you can simply do this: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Change all datetime columns to have a precision of 0, to match the default precision of these | |
# columns in MySQL. | |
# | |
# This is useful if you migrate a database from MySQL to PostgreSQL and don't need the extra | |
# microsecond precision (precision: 6) that is the default in PostgreSQL | |
# (see http://www.postgresql.org/docs/9.2/static/datatype-datetime.html). | |
# | |
# Before: | |
# > some_record.created_at.strftime('%Y-%m-%d %H:%M:%S.%N') | |
# => "2013-07-25 11:49:33.270032000" |