Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Oct 13, 2012
  1. @rafaelfranca

    Merge pull request #7935 from leereilly/minor-gemfile-twerk

    rafaelfranca authored
    Clean up Gemfile entry (replace double quotes with single quotes) [ci skip]
  2. @leereilly
  3. @jeremy
  4. @jeremy
  5. @jeremy
  6. @jeremy

    Remove the queue container. Premature consolidation. Set up and maint…

    jeremy authored
    …ain queues in the classes that use them instead.
  7. @josevalim

    Merge pull request #7891 from schneems/schneems/rake_command_warning

    josevalim authored
    Prompt to run rake when accidentally typed rails
Commits on Oct 12, 2012
  1. @tenderlove

    performance improvements to joins!

    tenderlove authored
    Before:
    
    Calculating -------------------------------------
                      ar        87 i/100ms
    -------------------------------------------------
                      ar      823.4 (±11.8%) i/s -       4089 in   5.070234s
    
    After:
    
    Calculating -------------------------------------
                      ar        88 i/100ms
    -------------------------------------------------
                      ar      894.1 (±3.9%) i/s -       4488 in   5.028161s
    
    Same test as 3a6dfca
  2. @tenderlove

    Speed up relation merging by reducing calls to Array#-

    tenderlove authored
    before:
    
    Calculating -------------------------------------
                      ar        83 i/100ms
    -------------------------------------------------
                      ar      832.1 (±4.0%) i/s -       4233 in   5.096611s
    
    after:
    
    Calculating -------------------------------------
                      ar        87 i/100ms
    -------------------------------------------------
                      ar      839.0 (±9.3%) i/s -       4176 in   5.032782s
    
    Benchmark:
    
    require 'config/environment'
    require 'benchmark/ips'
    
    GC.disable
    
    unless User.find_by_login('tater')
      u = User.new
      u.login = 'tater'
      u.save!
    end
    
    def active_record
      user = User.find_by_login('tater')
      starred = user.starred_items.count
    end
    
    active_record
    
    Benchmark.ips do |x|
      x.report("ar") { active_record }
    end
  3. @schneems

    Prompt to run rake when accidentally typed rails

    schneems authored
    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) ===================================================
    ```
  4. @rafaelfranca

    Merge pull request #7007 from Mik-die/hash_extract

    rafaelfranca authored
    make Hash#extract! more symmetric with Hash#slice
  5. @rafaelfranca

    Merge pull request #7926 from senny/whitespace_cleanup

    rafaelfranca authored
    trailling whitespace cleanup in query_methods.rb [ci skip]
  6. @senny
  7. @rafaelfranca

    Merge pull request #7923 from josh/seperate-asset-tag-and-url-concerns

    rafaelfranca authored
    Split asset url helpers into seperate AssetUrlHelper
  8. @josh
  9. @rafaelfranca

    ActiveSupport::SynchronousQueue doesn't have the drain method.

    rafaelfranca authored
    Now we are using teh SynchronousQueue in the test environment instead of
    the TestQueue
  10. @rafaelfranca
  11. @rafaelfranca

    Merge pull request #7871 from bjnord/master

    rafaelfranca authored
    Support another file type .rake in `rake notes`
  12. @fxn

    Merge pull request #7913 from mje113/master

    fxn authored
    MemCacheStore's move to dalli as a backend broke :race_condition_ttl support
  13. @rafaelfranca

    Merge pull request #7919 from arunagw/warning_removed_shadowing

    rafaelfranca authored
    warning removed: shadowing outer local variable - value
  14. @jonleighton

    Merge pull request #7765 from insside/clever-order

    jonleighton authored
    learn ActiveReccord::Querying#order work with hash arguments
  15. @bjnord
  16. @timsly
  17. @jeremy

    Immediately run queued jobs in tests. Otherwise you have to explicitl…

    jeremy authored
    …y drain the queue to actually deliver your emails.
  18. @arunagw
  19. @jonleighton

    Don't allocate new strings in compiled attribute methods

    jonleighton authored
    This improves memory and performance without having to use symbols which
    present DoS problems. Thanks @headius and @tenderlove for the
    suggestion.
    
    Benchmark
    ---------
    
    require 'active_record'
    require 'benchmark/ips'
    
    ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database:
    ':memory:')
    
    class Post < ActiveRecord::Base
      connection.create_table :posts, force: true do |t|
        t.string :name
      end
    end
    
    post = Post.create name: 'omg'
    
    Benchmark.ips do |r|
      r.report('Post.new')          { Post.new name: 'omg' }
      r.report('post.name')         { post.name }
      r.report('post.name=')        { post.name = 'omg' }
      r.report('Post.find(1).name') { Post.find(1).name }
    end
    
    Before
    ------
    
    Calculating -------------------------------------
                Post.new      1419 i/100ms
               post.name      7538 i/100ms
              post.name=      3024 i/100ms
       Post.find(1).name       243 i/100ms
    -------------------------------------------------
                Post.new    20637.6 (±12.7%) i/s -     102168 in   5.039578s
               post.name  1167897.7 (±18.2%) i/s -    5186144 in   4.983077s
              post.name=    64305.6 (±9.6%) i/s -     317520 in   4.998720s
       Post.find(1).name     2678.8 (±10.8%) i/s -      13365 in   5.051265s
    
    After
    -----
    
    Calculating -------------------------------------
                Post.new      1431 i/100ms
               post.name      7790 i/100ms
              post.name=      3181 i/100ms
       Post.find(1).name       245 i/100ms
    -------------------------------------------------
                Post.new    21308.8 (±12.2%) i/s -     105894 in   5.053879s
               post.name  1534103.8 (±2.1%) i/s -    7634200 in   4.979405s
              post.name=    67441.0 (±7.5%) i/s -     337186 in   5.037871s
       Post.find(1).name     2681.9 (±10.6%) i/s -      13475 in   5.084511s
  20. @jonleighton

    Revert "Key the attributes hash with symbols"

    jonleighton authored
    This reverts commit 86c3dfb.
    
    Conflicts:
    	activerecord/lib/active_record/attribute_methods/read.rb
    
    Reason: whilst this increased performance, it also presents a DoS risk
    via memory exhaustion if users were allowing user input to dictate the
    arguments of read/write_attribute. I will investigate alternative ways
    to cut down on string allocations here.
  21. @josevalim

    Merge pull request #7917 from dfens/master

    josevalim authored
    Cosmetic changes: remove trailing whitespaces from tests
  22. @dfens

    Cleanup trailing whitespaces

    dfens authored
  23. @rafaelfranca

    Merge pull request #7915 from frodsan/docs_permit

    rafaelfranca authored
    update AC::Parameters#permit documentation [ci skip]
  24. update AC::Parameters#permit documentation [ci skip]

    Francesco Rodriguez authored
    bdd105d changes the behaviour of AC::Parameters#permit.
  25. @spastorino

    When executing permit with just a key that points to a hash, DO NOT a…

    spastorino authored
    …llow all the hash
    
    params.require(:person).permit(:projects_attributes) was returning
    => {"projects_attributes"=>{"0"=>{"name"=>"Project 1"}}}
    
    When should return
    => {}
    
    You should be doing ...
    params.require(:person).permit(projects_attributes: :name)
    to get just the projects attributes you want to allow
  26. @tenderlove

    adding a test for b21f24d

    tenderlove authored
Commits on Oct 11, 2012
  1. @rafaelfranca

    Merge pull request #7912 from mrship/master

    rafaelfranca authored
    CacheDigests: Support templates in directories several levels deep
  2. @mje113

    Padding expires_in by 5 minutes on dalli key write to facilitate :rac…

    mje113 authored
    …e_condition_ttl working correctly.
Something went wrong with that request. Please try again.