Class: RspecProfiling::Collectors::SQL

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec_profiling/collectors/sql.rb

Defined Under Namespace

Classes: Result

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSQL

Returns a new instance of SQL.



19
20
21
22
# File 'lib/rspec_profiling/collectors/sql.rb', line 19

def initialize
  RspecProfiling.config.db_path ||= 'tmp/rspec_profiling'
  establish_connection
end

Class Method Details

.installObject



7
8
9
# File 'lib/rspec_profiling/collectors/sql.rb', line 7

def self.install
  new.install
end

.resetObject



15
16
17
# File 'lib/rspec_profiling/collectors/sql.rb', line 15

def self.reset
  new.results.destroy_all
end

.uninstallObject



11
12
13
# File 'lib/rspec_profiling/collectors/sql.rb', line 11

def self.uninstall
  new.uninstall
end

Instance Method Details

#insert(attributes) ⇒ Object



48
49
50
# File 'lib/rspec_profiling/collectors/sql.rb', line 48

def insert(attributes)
  results.create!(attributes.except(:created_at))
end

#installObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rspec_profiling/collectors/sql.rb', line 24

def install
  return if prepared?

  connection.create_table(table) do |t|
    t.string    :commit
    t.datetime  :date
    t.text      :file
    t.integer   :line_number
    t.text      :description
    t.decimal   :time
    t.string    :status
    t.text      :exception
    t.integer   :query_count
    t.decimal   :query_time
    t.integer   :request_count
    t.decimal   :request_time
    t.timestamps null: true
  end
end

#resultsObject



52
53
54
55
56
57
58
59
60
# File 'lib/rspec_profiling/collectors/sql.rb', line 52

def results
  @results ||= begin
    establish_connection

    Result.table_name = table
    Result.attr_protected if Result.respond_to?(:attr_protected)
    Result
  end
end

#uninstallObject



44
45
46
# File 'lib/rspec_profiling/collectors/sql.rb', line 44

def uninstall
  connection.drop_table(table)
end