rapporteur 1.0.1 → 1.1.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.
- checksums.yaml +8 -8
- data/CHANGELOG.md +8 -1
- data/README.md +1 -0
- data/lib/rapporteur/checker.rb +27 -0
- data/lib/rapporteur/rspec.rb +16 -0
- data/lib/rapporteur/serializer.rb +11 -1
- data/lib/rapporteur/version.rb +1 -1
- data/spec/requests/messsage_addition_spec.rb +42 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzI4YmEwOWRmNDc4MjQwNjVhNWI3MDNiZGM2MDg3NGZmYjYxODEwYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NzdiMGZhZmFiODMyNTRiZGJmMjYxOWI0MTJhMjRjMzg0NWVhODM4Zg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZGVkMTcyMzZhMWU0OGY3ZjNkZmUyNzI5MDJkYTc3ZWRkNzhlNWUzMzI0ZDdh
|
10
|
+
NDk1MzllN2Y0YWY0YWJjODYxMDFlNGJiYjE3MzczNjdkM2U0ZTUxY2Q1ZmM0
|
11
|
+
NTYyZWFiNzAwMjQ0MGU2MTdmMjhlZDQwM2I2NmY1YmQ5NDNhZDA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2U4Y2IzYzhkYTQ3OTkzYTc0NGFhYmM2NjIwNTRhNjliN2JmMTc2MGUyMGJi
|
14
|
+
M2ViNDU4ZGQ1Y2M5Y2Q5MTI1YTRmNTk1OGIxNWZlOTQ3ZmIxMzFkNDIxM2I5
|
15
|
+
MDExN2YzNDc4NjVhZTZiYjEwN2VjYzk3OGU2ZDgyMzMxODFiODI=
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,12 @@
|
|
4
4
|
|
5
5
|
* No significant changes.
|
6
6
|
|
7
|
+
## [1.1.0][v1.1.0] / 2013-05-30
|
8
|
+
|
9
|
+
* Add the ability to define custom successful response messages via
|
10
|
+
add_message. This allows Check authors to relay automated information forward
|
11
|
+
to other external systems.
|
12
|
+
|
7
13
|
## [1.0.1][v1.0.1] / 2013-05-20
|
8
14
|
|
9
15
|
* Improve the gemspec's minimum runtime- and development-dependency version
|
@@ -14,5 +20,6 @@
|
|
14
20
|
* Initial public release.
|
15
21
|
|
16
22
|
|
17
|
-
[unreleased]: https://github.com/codeschool/rapporteur/compare/v1.0
|
23
|
+
[unreleased]: https://github.com/codeschool/rapporteur/compare/v1.1.0...master
|
24
|
+
[v1.1.0]: https://github.com/codeschool/rapporteur/compare/v1.0.1...v1.1.0
|
18
25
|
[v1.0.1]: https://github.com/codeschool/rapporteur/compare/v1.0.0...v1.0.1
|
data/README.md
CHANGED
@@ -132,6 +132,7 @@ happy with it, add an error to the given `checker` instance:
|
|
132
132
|
|
133
133
|
my_proc_check = lambda { |checker|
|
134
134
|
checker.add_error("You have bad luck!") if rand(10) > 5
|
135
|
+
checker.add_message(:luck, "good")
|
135
136
|
}
|
136
137
|
|
137
138
|
Rapporteur::Checker.add_check(my_proc_check)
|
data/lib/rapporteur/checker.rb
CHANGED
@@ -54,6 +54,7 @@ module Rapporteur
|
|
54
54
|
# Returns a Rapporteur::Checker instance.
|
55
55
|
#
|
56
56
|
def self.run
|
57
|
+
instance.messages.clear
|
57
58
|
instance.errors.clear
|
58
59
|
instance.run
|
59
60
|
end
|
@@ -78,12 +79,38 @@ module Rapporteur
|
|
78
79
|
self
|
79
80
|
end
|
80
81
|
|
82
|
+
##
|
83
|
+
# Public: Adds a status message for inclusion in the success response.
|
84
|
+
#
|
85
|
+
# name - A String containing the name or identifier for your message. This
|
86
|
+
# is unique and may be overriden by other checks using the name
|
87
|
+
# message name key.
|
88
|
+
# message - A String or Numeric for the value of the message.
|
89
|
+
#
|
90
|
+
# Examples
|
91
|
+
#
|
92
|
+
# checker.add_message(:repository, 'git@github.com/user/repo.git')
|
93
|
+
# checker.add_message(:load, 0.934)
|
94
|
+
#
|
95
|
+
# Returns the Rapporteur::Checker instance.
|
96
|
+
#
|
97
|
+
def add_message(name, message)
|
98
|
+
messages[name] = message
|
99
|
+
self
|
100
|
+
end
|
101
|
+
|
81
102
|
# Public: Returns the Set of checks currently configured.
|
82
103
|
#
|
83
104
|
def checks
|
84
105
|
@checks ||= Set.new
|
85
106
|
end
|
86
107
|
|
108
|
+
# Public: Returns the Hash of messages currently configured.
|
109
|
+
#
|
110
|
+
def messages
|
111
|
+
@messages ||= Hash.new
|
112
|
+
end
|
113
|
+
|
87
114
|
# Public: Returns a String containing the current revision of the
|
88
115
|
# application.
|
89
116
|
#
|
data/lib/rapporteur/rspec.rb
CHANGED
@@ -66,3 +66,19 @@ RSpec::Matchers.define :include_status_error_message do |message|
|
|
66
66
|
"expected #{@body.inspect} to not include a #{message.inspect} error message"
|
67
67
|
end
|
68
68
|
end
|
69
|
+
|
70
|
+
RSpec::Matchers.define :include_status_message do |name, message|
|
71
|
+
match do |response|
|
72
|
+
@body = JSON.parse(response.body)
|
73
|
+
messages = @body.fetch('messages', {})
|
74
|
+
messages.has_key?(name) && messages.fetch(name) == message
|
75
|
+
end
|
76
|
+
|
77
|
+
failure_message_for_should do |actual|
|
78
|
+
"expected #{@body.inspect} to include a #{name.inspect}: #{message.inspect} message"
|
79
|
+
end
|
80
|
+
|
81
|
+
failure_message_for_should_not do |actual|
|
82
|
+
"expected #{@body.inspect} to not include a #{name.inspect}: #{message.inspect} message"
|
83
|
+
end
|
84
|
+
end
|
@@ -6,7 +6,8 @@ module Rapporteur
|
|
6
6
|
self.root = false
|
7
7
|
|
8
8
|
attributes :revision,
|
9
|
-
:time
|
9
|
+
:time,
|
10
|
+
:messages
|
10
11
|
|
11
12
|
# Internal: Converts the checker instance time into UTC to provide a
|
12
13
|
# consistent public representation.
|
@@ -16,5 +17,14 @@ module Rapporteur
|
|
16
17
|
def time
|
17
18
|
object.time.utc
|
18
19
|
end
|
20
|
+
|
21
|
+
# Internal: Used by ActiveModel::Serializer to determine whether or not to
|
22
|
+
# include the messages attribute.
|
23
|
+
#
|
24
|
+
# Returns false if the messages are empty.
|
25
|
+
#
|
26
|
+
def include_messages?
|
27
|
+
!object.messages.empty?
|
28
|
+
end
|
19
29
|
end
|
20
30
|
end
|
data/lib/rapporteur/version.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'A status request with a check that modifies messages' do
|
4
|
+
subject { get(status_path) ; response }
|
5
|
+
|
6
|
+
context 'creating a message with a lambda' do
|
7
|
+
before do
|
8
|
+
Rapporteur::Checker.clear
|
9
|
+
Rapporteur::Checker.add_check(Proc.new { |checker| checker.add_message('git_repo', 'git@github.com:organization/repo.git') })
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'with an unerring response' do
|
13
|
+
it_behaves_like 'a successful status response'
|
14
|
+
|
15
|
+
it 'responds with the check\'s messages' do
|
16
|
+
expect(subject).to include_status_message('git_repo', 'git@github.com:organization/repo.git')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with an erring response' do
|
21
|
+
before do
|
22
|
+
Rapporteur::Checker.add_check(Proc.new { |checker| checker.add_error('failed') })
|
23
|
+
end
|
24
|
+
|
25
|
+
it_behaves_like 'an erred status response'
|
26
|
+
|
27
|
+
it 'does not respond with the check\'s messages' do
|
28
|
+
expect(subject).not_to include_status_message('git_repo', 'git@github.com:organization/repo.git')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'with no message-modifying checks' do
|
33
|
+
before { Rapporteur::Checker.clear }
|
34
|
+
|
35
|
+
it_behaves_like 'a successful status response'
|
36
|
+
|
37
|
+
it 'does not respond with a messages list' do
|
38
|
+
expect(JSON.parse(subject.body)).not_to(have_key('messages'))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rapporteur
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Envy Labs
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: active_model_serializers
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- spec/internal/log/.gitignore
|
163
163
|
- spec/internal/public/favicon.ico
|
164
164
|
- spec/requests/active_record_check_spec.rb
|
165
|
+
- spec/requests/messsage_addition_spec.rb
|
165
166
|
- spec/requests/no_checks_spec.rb
|
166
167
|
- spec/routing/routes_spec.rb
|
167
168
|
- spec/spec_helper.rb
|
@@ -196,6 +197,7 @@ test_files:
|
|
196
197
|
- spec/internal/log/.gitignore
|
197
198
|
- spec/internal/public/favicon.ico
|
198
199
|
- spec/requests/active_record_check_spec.rb
|
200
|
+
- spec/requests/messsage_addition_spec.rb
|
199
201
|
- spec/requests/no_checks_spec.rb
|
200
202
|
- spec/routing/routes_spec.rb
|
201
203
|
- spec/spec_helper.rb
|