errbit_plugin 0.0.1 → 0.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 +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
|