minitest-instrument-db 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ nbproject
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in minitest-instrument-db.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,19 @@
1
+
2
+ class CreateTable < ActiveRecord::Migration
3
+
4
+ def self.up
5
+
6
+ create_table "minitest_test_methods", :force => true do |t|
7
+ t.string "project", :null => false
8
+ t.string "machine", :null => false
9
+ t.string "test_id", :null => false
10
+
11
+ t.string "klass", :null => false
12
+ t.string "method", :null => false
13
+ t.boolean "exception", :null => false
14
+ t.time "execution_time", :null => false
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,59 @@
1
+ require 'active_record'
2
+ require 'logger'
3
+
4
+ module Minitest
5
+
6
+ module Instrument
7
+
8
+ module Db
9
+
10
+ class MinitestTestMethod < ActiveRecord::Base
11
+ set_table_name :minitest_test_methods
12
+ end
13
+
14
+ def self.try_configuration_at(*params)
15
+ configuration_at(*params)
16
+ rescue
17
+ puts "Instrumenting test methods is disabled due to exception"
18
+ end
19
+
20
+ def self.configuration_at(database_yml, options = {})
21
+ options[:project] ||= "Unknown"
22
+ options[:machine] ||= begin
23
+ require 'socket'
24
+ Socket.gethostname
25
+ end
26
+
27
+ connection = ActiveRecord::Base.connection rescue nil
28
+ ActiveRecord::Base.configurations.merge! YAML::load( IO.read( database_yml ) )
29
+ ActiveRecord::Base.establish_connection("minitest-instrument-db")
30
+
31
+ ActiveRecord::Migrator.migrate( File.join( File.dirname(__FILE__), 'migrations' ) )
32
+
33
+ MinitestTestMethod.establish_connection("minitest-instrument-db")
34
+
35
+ ActiveSupport::Notifications.subscribe "test.finished" do |name, start, finish, id, payload|
36
+ MinitestTestMethod.create!(
37
+ project: options[:project],
38
+ machine: options[:machine],
39
+ test_id: id,
40
+ klass: payload[:klass],
41
+ method: payload[:test],
42
+ exception: !!payload[:exception],
43
+ execution_time: finish - start
44
+ # created_at !!
45
+ )
46
+ end
47
+ ensure
48
+ if connection
49
+ config = ActiveRecord::Base.connection.instance_variable_get(:@config).stringify_keys
50
+ name, configuration = ActiveRecord::Base.configurations.find{|k,v| v == config}
51
+ ActiveRecord::Base.establish_connection(name)
52
+ end
53
+ end
54
+
55
+ end
56
+
57
+ end
58
+
59
+ end
@@ -0,0 +1,7 @@
1
+ module Minitest
2
+ module Instrument
3
+ module Db
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "minitest-instrument-db/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "minitest-instrument-db"
7
+ s.version = Minitest::Instrument::Db::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Robert Pankowecki"]
10
+ s.email = ["robert.pankowecki@gmail.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{Store information about speed of test execution provided by minitest-instrument in database}
13
+ s.description = %q{Store information about speed of test execution provided by minitest-instrument in database}
14
+
15
+ s.rubyforge_project = "minitest-instrument-db"
16
+
17
+ s.required_rubygems_version = ">= 1.3.6"
18
+ s.add_dependency "activerecord", "~> 3.0"
19
+ s.add_development_dependency "bundler", "~> 1.0.0"
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
24
+ s.require_paths = ["lib"]
25
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: minitest-instrument-db
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Robert Pankowecki
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-02-22 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: activerecord
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 3
30
+ - 0
31
+ version: "3.0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: bundler
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 0
45
+ - 0
46
+ version: 1.0.0
47
+ type: :development
48
+ version_requirements: *id002
49
+ description: Store information about speed of test execution provided by minitest-instrument in database
50
+ email:
51
+ - robert.pankowecki@gmail.com
52
+ executables: []
53
+
54
+ extensions: []
55
+
56
+ extra_rdoc_files: []
57
+
58
+ files:
59
+ - .gitignore
60
+ - Gemfile
61
+ - Rakefile
62
+ - lib/migrations/1_create_table.rb
63
+ - lib/minitest-instrument-db.rb
64
+ - lib/minitest-instrument-db/version.rb
65
+ - minitest-instrument-db.gemspec
66
+ has_rdoc: true
67
+ homepage: ""
68
+ licenses: []
69
+
70
+ post_install_message:
71
+ rdoc_options: []
72
+
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ segments:
81
+ - 0
82
+ version: "0"
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ segments:
89
+ - 1
90
+ - 3
91
+ - 6
92
+ version: 1.3.6
93
+ requirements: []
94
+
95
+ rubyforge_project: minitest-instrument-db
96
+ rubygems_version: 1.3.7
97
+ signing_key:
98
+ specification_version: 3
99
+ summary: Store information about speed of test execution provided by minitest-instrument in database
100
+ test_files: []
101
+