errbit_plugin 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/errbit_plugin/issue_tracker.rb +2 -11
- data/lib/errbit_plugin/issue_trackers/fake.rb +23 -12
- data/lib/errbit_plugin/issue_trackers/none.rb +2 -5
- data/lib/errbit_plugin/register_plugin.rb +13 -13
- data/lib/errbit_plugin/validate_issue_tracker.rb +1 -1
- data/lib/errbit_plugin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4044ee01410119ca8ab10ffe1f89415708d2ed9
|
4
|
+
data.tar.gz: faf743c3c52f8e137b9c942dca93abd848e822b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 985d669a9c92db0ac0aea134d4baa62a1147297eae05e15731887f6a40e0e93fade1f139ace6ed8f40bdc901d5d46530ddcc9a7430ec8decb5b9af414c7e4f04
|
7
|
+
data.tar.gz: 3a87f4b41d2ba9135a8200dd639e754d4e9a0f53dd7647e8f3272530982f932e075e89e0289696910310f763470ad2b42d3fd43a8a07929100423791dc52e083
|
@@ -1,19 +1,10 @@
|
|
1
1
|
module ErrbitPlugin
|
2
2
|
class IssueTracker
|
3
|
+
attr_reader :app, :params
|
4
|
+
|
3
5
|
def initialize(app, params)
|
4
6
|
@app = app
|
5
7
|
@params = params
|
6
8
|
end
|
7
|
-
attr_reader :app, :params
|
8
|
-
|
9
|
-
def add_error(key, msg)
|
10
|
-
@errors ||= {}
|
11
|
-
@errors[key] ||= []
|
12
|
-
@errors[key] << msg
|
13
|
-
end
|
14
|
-
|
15
|
-
def issue_title(problem)
|
16
|
-
"[#{ problem.environment }][#{ problem.where }] #{problem.message.to_s.truncate(100)}"
|
17
|
-
end
|
18
9
|
end
|
19
10
|
end
|
@@ -1,27 +1,38 @@
|
|
1
1
|
module ErrbitPlugin
|
2
2
|
class FakeIssueTracker < IssueTracker
|
3
|
-
def self.label
|
4
|
-
|
3
|
+
def self.label
|
4
|
+
'fake'
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.note
|
8
|
+
'A fake issue tracker to help in testing purpose'
|
9
|
+
end
|
10
|
+
|
5
11
|
def self.fields
|
6
12
|
{
|
7
13
|
:foo => {:label => 'foo'},
|
8
14
|
:bar => {:label => 'bar'}
|
9
15
|
}
|
10
16
|
end
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
def configured?; check_params; end
|
15
|
-
def check_params
|
16
|
-
params[:foo] && params[:bar]
|
17
|
+
|
18
|
+
def configured?
|
19
|
+
errors.any?
|
17
20
|
end
|
21
|
+
|
22
|
+
def errors
|
23
|
+
errors = {}
|
24
|
+
errors[:foo] = 'foo is required' unless params[:foo]
|
25
|
+
errors[:bar] = 'bar is required' unless params[:bar]
|
26
|
+
|
27
|
+
errors
|
28
|
+
end
|
29
|
+
|
18
30
|
def create_issue; true; end
|
31
|
+
|
19
32
|
def url; ''; end
|
33
|
+
|
20
34
|
def comments_allowed?; false; end
|
21
35
|
end
|
22
36
|
end
|
23
37
|
|
24
|
-
ErrbitPlugin::
|
25
|
-
'fake',
|
26
|
-
ErrbitPlugin::FakeIssueTracker
|
27
|
-
)
|
38
|
+
ErrbitPlugin::Registry.add_issue_tracker(ErrbitPlugin::FakeIssueTracker)
|
@@ -10,14 +10,11 @@ module ErrbitPlugin
|
|
10
10
|
# The NoneIssueTracker is mark like configured? false because it not valid
|
11
11
|
# like a real IssueTracker
|
12
12
|
def configured?; false; end
|
13
|
-
def
|
13
|
+
def errors; {}; end
|
14
14
|
def create_issue; true; end
|
15
15
|
def url; ''; end
|
16
16
|
def comments_allowed?; true; end
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
ErrbitPlugin::
|
21
|
-
'IssueTracker::None',
|
22
|
-
ErrbitPlugin::NoneIssueTracker
|
23
|
-
)
|
20
|
+
ErrbitPlugin::Registry.add_issue_tracker(ErrbitPlugin::NoneIssueTracker)
|
@@ -1,10 +1,18 @@
|
|
1
1
|
module ErrbitPlugin
|
2
|
-
class IncompatibilityError <
|
2
|
+
class IncompatibilityError < StandardError; end
|
3
|
+
class AlreadyRegisteredError < StandardError; end
|
4
|
+
|
5
|
+
module Registry
|
6
|
+
@issue_trackers = {}
|
7
|
+
|
8
|
+
def self.add_issue_tracker(klass)
|
9
|
+
key = klass.label
|
10
|
+
|
11
|
+
if issue_trackers.has_key?(key)
|
12
|
+
raise AlreadyRegisteredError,
|
13
|
+
"issue_tracker '#{key}' already registered"
|
14
|
+
end
|
3
15
|
|
4
|
-
module Register
|
5
|
-
def self.add_issue_tracker(key, klass)
|
6
|
-
@issue_trackers ||= {}
|
7
|
-
raise IncompatibilityError.new('issue_tracker already registered') if @issue_trackers.key?(key)
|
8
16
|
validate = ValidateIssueTracker.new(klass)
|
9
17
|
|
10
18
|
if validate.valid?
|
@@ -17,13 +25,5 @@ module ErrbitPlugin
|
|
17
25
|
def self.issue_trackers
|
18
26
|
@issue_trackers
|
19
27
|
end
|
20
|
-
|
21
|
-
def self.issue_tracker(key)
|
22
|
-
@issue_trackers[key]
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.clear
|
26
|
-
@issue_trackers = {}
|
27
|
-
end
|
28
28
|
end
|
29
29
|
end
|
@@ -24,7 +24,7 @@ module ErrbitPlugin
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def implements_instance_methods?
|
27
|
-
[:comments_allowed?, :configured?, :
|
27
|
+
[:comments_allowed?, :configured?, :errors, :create_issue, :url].all? do |method|
|
28
28
|
if instance.respond_to?(method)
|
29
29
|
true
|
30
30
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: errbit_plugin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Crosby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|