getting_dumped 0.0.3.0 → 0.0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8907f7260acec6952560517808d3eac832551859422d1bb1a6c568a7ab7c7fdb
4
+ data.tar.gz: 1be79164d5b68af3431fe24432ea0c7b9e52746ce488bcd4424320f8281795b6
5
+ SHA512:
6
+ metadata.gz: c2485c4bd6f83a5ef0d8995a1610db16cfa6d901eb707eaf4490ff61a78801d8b5e2533904a62fcec98bcf991038abdffee247ca67b1be399d2c07763f2e3789
7
+ data.tar.gz: 8d462d6506e101a32aa2cc92571d19749a24d358ed11eae06f1c1b974cb9adf87d9e4b7c7aa40e5f9762934c69ac40ef6950286a7556a339297621daf76b83a3
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'getting_dumped'
4
5
  require 'getting_dumped/app'
@@ -1,73 +1,68 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec'
2
- require 'rspec/core/formatters/base_formatter'
3
4
  require 'getting_dumped/migrations/create_tables'
4
5
 
6
+ class GettingDumped
7
+ RSpec::Core::Formatters.register self, :example_passed, :example_pending, :example_failed
5
8
 
6
- class GettingDumped < RSpec::Core::Formatters::BaseFormatter
7
- def initialize(options)
8
- super(options)
9
- @run_started_at = Time.now
10
- @run = DB[:runs]
9
+ def initialize(output)
10
+ @output = output
11
+ @run = create_run
11
12
  @example_db = DB[:examples]
12
- @success = true
13
- @run_id = @run.insert(:started_at => Time.now)
14
- end
15
-
16
- def start(count)
17
- super(count)
18
- end
19
-
20
- def example_started(example)
21
- super(example)
22
13
  end
23
14
 
24
15
  def example_pending(example)
25
- super(example)
26
16
  save_example(example)
27
17
  end
28
18
 
29
19
  def example_passed(example)
30
- super(example)
31
20
  save_example(example)
32
21
  end
33
22
 
34
23
  def example_failed(example)
35
- super(example)
36
24
  save_example(example)
37
- @success = false
38
25
  end
39
26
 
40
- def start_dump
41
- super
42
- time = Time.now
43
- @run.where('id = ?', @run_id).update(
44
- :ended_at => time,
45
- :success => @success,
46
- :run_time => time - @run_started_at
47
- )
27
+ private
28
+
29
+ attr_reader :run
30
+
31
+ def create_run
32
+ run = DB[:runs]
33
+ run.insert(started_at: Time.now)
48
34
  end
49
35
 
50
- private
36
+ def extract_exception(metadata)
37
+ return [nil, nil] if metadata.status != :failed
38
+
39
+ exception = metadata[:exception]
40
+ backtrace = exception.backtrace
41
+
42
+ [exception, backtrace]
43
+ end
51
44
 
52
- def save_example(example)
53
- metadata = example.metadata[:execution_result]
54
- exception = nil
55
- backtrace = nil
56
- exception = nil
57
- if metadata[:status] == "failed"
58
- exception = metadata[:exception_encountered] || metadata[:exception] # rspec 2.0 || rspec 2.2
59
- backtrace = exception.backtrace
60
- exception = read_failed_line(exception, example)
61
- end
62
- @example_db.insert(:name => example.full_description,
63
- :status => metadata[:status],
64
- :run_id => @run_id,
65
- :run_time => metadata[:run_time],
66
- :started_at => DateTime.parse(metadata[:started_at].to_s),
67
- :finished_at => DateTime.parse(metadata[:finished_at].to_s),
68
- :exception => exception.to_s,
69
- :backtrace => backtrace.to_s
70
- )
45
+ def write_to_db(metadata, description, exception, backtrace)
46
+ @example_db.insert(
47
+ name: description,
48
+ status: metadata[:status],
49
+ run_id: run,
50
+ run_time: metadata[:run_time],
51
+ started_at: DateTime.parse(metadata[:started_at].to_s),
52
+ finished_at: DateTime.parse(metadata[:finished_at].to_s),
53
+ exception: exception.to_s,
54
+ backtrace: backtrace.to_s
55
+ )
71
56
  end
72
57
 
58
+ def save_example(notification)
59
+ metadata = notification.example.execution_result
60
+ exception, backtrace = extract_exception(metadata)
61
+ write_to_db(
62
+ metadata,
63
+ notification.example.full_description,
64
+ exception,
65
+ backtrace
66
+ )
67
+ end
73
68
  end
@@ -1,5 +1,7 @@
1
- require "getting_dumped"
2
- require "sinatra"
1
+ # frozen_string_literal: true
2
+
3
+ require 'getting_dumped'
4
+ require 'sinatra'
3
5
 
4
6
  class GettingDumpedServer < Sinatra::Application
5
7
  get '/runs' do
@@ -8,7 +10,7 @@ class GettingDumpedServer < Sinatra::Application
8
10
  end
9
11
 
10
12
  get '/run/:id' do
11
- @examples = DB[:examples].where("run_id = ?", params[:id]).all
13
+ @examples = DB[:examples].where(run_id: params[:id]).all
12
14
  erb :examples
13
15
  end
14
16
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
  require 'sequel'
3
5
 
4
- DB = Sequel.connect("sqlite://db/examples.db")
6
+ DB = Sequel.connect('sqlite://db/examples.db')
5
7
  DB.create_table? :examples do
6
8
  primary_key :id
7
9
  String :name
@@ -1,5 +1,5 @@
1
- unless File.exists?("db")
2
- Dir.mkdir('db')
3
- end
1
+ # frozen_string_literal: true
2
+
3
+ Dir.mkdir('db') unless File.exist?('db')
4
4
  # Use in-memory database for now.
5
5
  DB = Sequel.sqlite
metadata CHANGED
@@ -1,149 +1,162 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getting_dumped
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3.0
5
- prerelease:
4
+ version: 0.0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Arvind Kunday
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-03 00:00:00.000000000 Z
11
+ date: 2019-06-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rspec
14
+ name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: rake
28
+ name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: sequel
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
- name: sqlite3
56
+ name: sinatra
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
- name: sinatra
70
+ name: sinatra-snap
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
- name: sinatra-snap
84
+ name: sqlite3
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: byebug
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
108
123
  - !ruby/object:Gem::Version
109
124
  version: '0'
110
125
  description: the historical RSpec run formatter
111
126
  email:
112
- - hi@kunday.com
127
+ - arvind@kunday.com
113
128
  executables:
114
129
  - getting_dumped_server
115
130
  extensions: []
116
131
  extra_rdoc_files: []
117
132
  files:
133
+ - bin/getting_dumped_server
118
134
  - lib/getting_dumped.rb
119
135
  - lib/getting_dumped/app.rb
120
136
  - lib/getting_dumped/migrations/create_tables.rb
121
137
  - lib/getting_dumped/models.rb
122
138
  - lib/getting_dumped/views/examples.erb
123
139
  - lib/getting_dumped/views/runs.erb
124
- - bin/getting_dumped_server
125
140
  homepage: https://github.com/kunday/getting_dumped
126
141
  licenses: []
142
+ metadata: {}
127
143
  post_install_message:
128
144
  rdoc_options: []
129
145
  require_paths:
130
146
  - lib
131
147
  required_ruby_version: !ruby/object:Gem::Requirement
132
- none: false
133
148
  requirements:
134
- - - ! '>='
149
+ - - ">="
135
150
  - !ruby/object:Gem::Version
136
151
  version: '0'
137
152
  required_rubygems_version: !ruby/object:Gem::Requirement
138
- none: false
139
153
  requirements:
140
- - - ! '>='
154
+ - - ">="
141
155
  - !ruby/object:Gem::Version
142
156
  version: '0'
143
157
  requirements: []
144
- rubyforge_project: getting_dumped
145
- rubygems_version: 1.8.25
158
+ rubygems_version: 3.0.3
146
159
  signing_key:
147
- specification_version: 3
160
+ specification_version: 4
148
161
  summary: the historical RSpec run formatter
149
162
  test_files: []