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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e2cd7db132aa98db005fcd6110d4c7229522a9e
4
- data.tar.gz: 3764d2ebacc1341c2f0ad09631fbd16d74ca2a51
3
+ metadata.gz: e4044ee01410119ca8ab10ffe1f89415708d2ed9
4
+ data.tar.gz: faf743c3c52f8e137b9c942dca93abd848e822b8
5
5
  SHA512:
6
- metadata.gz: 57ae4835d1c758f6a7f124963ead230512e2fe78909bdf89843d49ff60bf8d429f726d373982b26a42ac8fbee79c486ff8e33b5ee81450103b5a8964351ae416
7
- data.tar.gz: da3dd64c99018bc73d7fedbc312be9b10cb1d8ecd89de7116b8f28baec724a709431e1bd57223792d70b518a8ce6d850a4665aca653c61959801b5747c410831
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; 'fake'; end
4
- def self.note; 'A fake issue tracker to help in testing purpose'; end
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
- # The NoneIssueTracker is mark like configured? false because it not valid
13
- # like a real IssueTracker
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::Register.add_issue_tracker(
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 check_params; true; end
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::Register.add_issue_tracker(
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 < Exception; end
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?, :check_params, :create_issue, :url].all? do |method|
27
+ [:comments_allowed?, :configured?, :errors, :create_issue, :url].all? do |method|
28
28
  if instance.respond_to?(method)
29
29
  true
30
30
  else
@@ -1,3 +1,3 @@
1
1
  module ErrbitPlugin
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
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.1
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-07-25 00:00:00.000000000 Z
11
+ date: 2014-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler