Sha256: 20fc8086a351e352201e684bf7613b384969844800dfc41fb81ca271222ac064
Contents?: true
Size: 1.76 KB
Versions: 4
Compression:
Stored size: 1.76 KB
Contents
require File.expand_path("../test/helper", __FILE__) require "ffaker" N = 1000 def transaction ActiveRecord::Base.transaction { yield ; raise ActiveRecord::Rollback } end class Array def rand self[Kernel.rand(length)] end end Book = Class.new ActiveRecord::Base class Journalist < ActiveRecord::Base extend FriendlyId friendly_id :name, :use => :slugged end class Manual < ActiveRecord::Base extend FriendlyId friendly_id :name, :use => :history end class Restaurant < ActiveRecord::Base extend FriendlyId relation.class.send(:include, FriendlyId::FinderMethods) friendly_id :name end BOOKS = [] JOURNALISTS = [] MANUALS = [] RESTAURANTS = [] 100.times do name = Faker::Name.name BOOKS << (Book.create! :name => name).id JOURNALISTS << (Journalist.create! :name => name).friendly_id MANUALS << (Manual.create! :name => name).friendly_id RESTAURANTS << (Restaurant.create! :name => name).friendly_id end ActiveRecord::Base.connection.execute "UPDATE manuals SET slug = NULL" Benchmark.bmbm do |x| x.report 'find (without FriendlyId)' do N.times {Book.find BOOKS.rand} end x.report 'find (in-table slug)' do N.times {Journalist.friendly.find JOURNALISTS.rand} end x.report 'find (in-table slug; included FinderMethods)' do N.times {Restaurant.find RESTAURANTS.rand} end x.report 'find (external slug)' do N.times {Manual.friendly.find MANUALS.rand} end x.report 'insert (without FriendlyId)' do N.times {transaction {Book.create :name => Faker::Name.name}} end x.report 'insert (in-table-slug)' do N.times {transaction {Journalist.create :name => Faker::Name.name}} end x.report 'insert (external slug)' do N.times {transaction {Manual.create :name => Faker::Name.name}} end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
friendly_id-5.0.0.rc1 | bench.rb |
friendly_id-5.0.0.beta4 | bench.rb |
friendly_id-5.0.0.beta3 | bench.rb |
friendly_id-5.0.0.beta2 | bench.rb |