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 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