getting_dumped 0.0.3.0 → 0.0.4.0

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.
@@ -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: []