redmine-reporting 0.1.0 → 0.1.1

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: ef8bed8213b46cf3bcd9195eb30dee2d5e5f00fc
4
- data.tar.gz: e5950d703f4c767bb09cbc4b432fc58e1b1704ee
3
+ metadata.gz: ac501589d0737e31a91a96268028b61dbc16e021
4
+ data.tar.gz: a14f692beba30c48642f1dbf5a81142cfaa2ed5d
5
5
  SHA512:
6
- metadata.gz: c59cbfaea3345f37012f3f879b452ad4d2dc3349812f523936c0b423fe94bcf40459161eb15f026de6e5f21cf41d7f49273872bc60c4c70af68da2152391138c
7
- data.tar.gz: 79ea1aeadcfa149492f578c3090ce9848563c71eb3e5f9ef034923bdce09c20de33b9f6a6f246241c6f66fd86221395edb71762f07958cdee03c14577984e840
6
+ metadata.gz: 17643533787ea69e2f4fb34752b312eef4ad187c3f9af8d2d0826274987bcd852c3cba13927e1dfc333b74dd8ca20ac13e33828853dd52381389ec14b82da260
7
+ data.tar.gz: d970eba7db83d58045d09840b81f2ef498ce901fcbadead4b8e82406165456b75fd84bb6ddd0a483f58efdbb02378467bfa05c5d9d670cd912ccff9776eafbd8
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # redmine-reporting
2
2
 
3
- TODO: Write a gem description
3
+ A simple gem to use with rails or any ruby project to report exceptions or other messages as issues to the Redmine project management system (http://www.redmine.org).
4
+
4
5
 
5
6
  ## Installation
6
7
 
@@ -16,9 +17,23 @@ Or install it yourself as:
16
17
 
17
18
  $ gem install redmine-reporting
18
19
 
20
+ Add a initializer ```config/initializers/redmine_reporting.rb``` with the following content.
21
+
22
+ ```ruby
23
+ Redmine::Reporting.configure do |config|
24
+ config.base_url = 'https://redmine.example.net/'
25
+ config.api_key = '012345678901234567890123456789012'
26
+ config.project = 'your-project-identifier'
27
+ config.tracker = 1
28
+ config.category = 1
29
+ end
30
+ ```
31
+
32
+
19
33
  ## Usage
20
34
 
21
- TODO: Write usage instructions here
35
+ If you are in a Rails project, the gem will automatically hook itself into the rack middleware and report any uncatched exception.
36
+
22
37
 
23
38
  ## Contributing
24
39
 
@@ -6,6 +6,19 @@ module Redmine
6
6
  attr_accessor :project
7
7
  attr_accessor :tracker
8
8
  attr_accessor :category
9
+ attr_reader :http_options
10
+
11
+ def proxy(hostname, port)
12
+ @http_options ||= {}
13
+ @http_options[:http_proxyaddr] = hostname
14
+ @http_options[:http_proxyport] = port
15
+ end
16
+
17
+ def proxy_auth(username, password)
18
+ @http_options ||= {}
19
+ @http_options[:http_proxyuser] = username
20
+ @http_options[:http_proxypass] = password
21
+ end
9
22
  end
10
23
  end
11
24
  end
@@ -26,20 +26,20 @@ module Redmine
26
26
  def commit
27
27
  config = Redmine::Reporting.configuration
28
28
 
29
- options = {
29
+ options = (config.http_options || {}).merge({
30
30
  headers: {
31
31
  'Content-type' => 'application/json',
32
32
  'X-Redmine-API-Key' => config.api_key
33
33
  }
34
- }
34
+ })
35
35
 
36
36
  if issue_id.nil?
37
37
  resp = HTTParty.post("#{config.base_url}/issues.json", options.merge({
38
38
  body: {
39
39
  issue: {
40
- subject: @subject,
40
+ subject: @subject.strip,
41
41
  project_id: config.project,
42
- description: @description,
42
+ description: @description.strip,
43
43
  tracker_id: config.tracker,
44
44
  category_id: config.category
45
45
  }
@@ -49,7 +49,7 @@ module Redmine
49
49
  issue_id = resp['issue']['id'] rescue nil
50
50
 
51
51
  unless issue_id.nil?
52
- File.open(issue_id_file, File::CREAT|File::TRUNC|File::RDWR, 0600) {|f| f.write(issue_id.to_s) }
52
+ File.open(issue_id_file, File::CREAT|File::TRUNC|File::RDWR, 0600) {|f| f.write(issue_id.to_s)}
53
53
  end
54
54
  end
55
55
 
@@ -60,13 +60,14 @@ module Redmine
60
60
  resp = HTTParty.put("#{config.base_url}/issues/#{issue_id}.json", options.merge({
61
61
  body: {
62
62
  issue: {
63
- notes: "h1. #{reference_id}\n\n#{@notes}"
63
+ notes: "h1. #{reference_id}\n\n#{@notes}".strip
64
64
  }
65
65
  }.to_json
66
66
  }))
67
67
 
68
68
  reference_id
69
- rescue Timeout::Error
69
+ rescue => e
70
+ # TODO ignore
70
71
  nil
71
72
  end
72
73
 
@@ -76,6 +77,7 @@ module Redmine
76
77
  @current_var << "#{type}. #{title}\n\n"
77
78
  data_to_syntax(content) unless content.nil?
78
79
  data_to_syntax(&block) if block_given?
80
+ @current_var << "\n\n"
79
81
  nil
80
82
  end
81
83
 
@@ -88,7 +90,7 @@ module Redmine
88
90
  end
89
91
 
90
92
  def output(content)
91
- @current_var << content
93
+ @current_var << "#{content}\n"
92
94
  nil
93
95
  end
94
96
 
@@ -105,7 +107,7 @@ module Redmine
105
107
  def issue_hash
106
108
  config = Redmine::Reporting.configuration
107
109
 
108
- Digest::SHA1.hexdigest([config.base_url, config.project, @subject, @description].join('//'))
110
+ Digest::SHA1.hexdigest([config.base_url, config.project, @subject.strip, @description.strip].join('//'))
109
111
  end
110
112
 
111
113
  def issue_id_file
@@ -1,5 +1,5 @@
1
1
  module Redmine
2
2
  module Reporting
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redmine-reporting
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Schwab
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-22 00:00:00.000000000 Z
11
+ date: 2013-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler