From d546ccbc366edb1ed763b7fafe49736f9f57cb7b Mon Sep 17 00:00:00 2001 From: bmarkons Date: Tue, 16 May 2017 12:20:34 +0000 Subject: [PATCH] Add sequel scope all with default scope bench --- .../bm_sequel_scope_all_with_default_scope.rb | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 sequel/benchmarks/bm_sequel_scope_all_with_default_scope.rb diff --git a/sequel/benchmarks/bm_sequel_scope_all_with_default_scope.rb b/sequel/benchmarks/bm_sequel_scope_all_with_default_scope.rb new file mode 100644 index 0000000..51e6a10 --- /dev/null +++ b/sequel/benchmarks/bm_sequel_scope_all_with_default_scope.rb @@ -0,0 +1,46 @@ +require 'bundler/setup' +require 'sequel' + +require_relative 'support/benchmark_sequel' + +DB = Sequel.connect(ENV.fetch('DATABASE_URL')) + +DB.create_table!(:users) do + primary_key :id + String :name, size: 255 + String :email, size: 255 + TrueClass :admin, null: false + DateTime :created_at, null: true + DateTime :updated_at, null: true +end + +class User < Sequel::Model + dataset_module do + def only_admins + where(:admin => true) + end + end + + set_dataset(self.only_admins) +end + +admin = true + +1000.times do + attributes = { + name: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + email: "foobar@email.com", + admin: admin + } + + User.create(attributes) + + admin = !admin +end + +Benchmark.sequel("sequel/#{db_adapter}_scope_all_with_default_scope", time: 5) do + str = "" + User.all.each do |user| + str << "name: #{user.name} email: #{user.email}\n" + end +end