class RspecProfiling::Collectors::PSQL
Public Class Methods
install()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 7 def self.install new.install end
new()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 19 def initialize RspecProfiling.config.db_path ||= 'rspec_profiling' establish_connection end
reset()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 15 def self.reset new.results.destroy_all end
uninstall()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 11 def self.uninstall new.uninstall end
Public Instance Methods
insert(attributes)
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 49 def insert(attributes) results.create!(attributes.except(:created_at)) end
install()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 24 def install return if prepared? connection.create_table(table) do |t| t.string :branch, index: true t.string :commit_hash, index: true t.datetime :date, index: true t.text :file, index: true t.integer :line_number, index: true t.text :description t.decimal :time, index: true t.string :status, index: true t.text :exception t.integer :query_count, index: true t.decimal :query_time, index:true t.integer :request_count, index: true t.decimal :request_time, index: true t.timestamps null: true end end
results()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 53 def results @results ||= begin establish_connection Result.table_name = table Result.attr_protected if Result.respond_to?(:attr_protected) Result end end
uninstall()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 45 def uninstall connection.drop_table(table) end
Private Instance Methods
active_record5_or_up?()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 73 def active_record5_or_up? ActiveRecord::VERSION::STRING[0].to_i >= 5 end
connection()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 77 def connection @connection ||= results.connection end
database()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 98 def database RspecProfiling.config.db_path end
establish_connection()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 81 def establish_connection begin PG.connect(dbname: 'postgres').exec("CREATE DATABASE #{database}") rescue PG::DuplicateDatabase # no op end Result.establish_connection( :adapter => 'postgresql', :database => database ) end
prepared?()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 65 def prepared? if active_record5_or_up? connection.data_source_exists?(table) else connection.table_exists?(table) end end
table()
click to toggle source
# File lib/rspec_profiling/collectors/psql.rb, line 94 def table RspecProfiling.config.table_name end