zikrash 0.1.1 → 1.0.1
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/zikrash/code_extractor.rb +0 -1
- data/lib/zikrash/exception_info.rb +2 -0
- data/lib/zikrash/send_report.rb +42 -4
- data/lib/zikrash/version.rb +1 -1
- data/lib/zikrash.rb +19 -4
- data/zikrash.gemspec +4 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e257f0cad9d388747cf86751e1fb7f782c25bcf
|
4
|
+
data.tar.gz: 343ccb4f8eab9d7aa372fefff0d0adb311e40aeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84f929a55afa83eb49a9f02fc00c863d01af5e43373c9e1cf68564359c899fe834ee1460fab1e2a1a82e604595ad341fa8715ca7e912652f3d7fb870457d6108
|
7
|
+
data.tar.gz: d1158f703f269f69fd510c23320e1834a8808ff3c5ecc2759388b9389ef4c15e3851a045a29d522ed1bf3c3148fb37314fda6f1b29628f70c9b1a885c5409f70
|
@@ -7,6 +7,8 @@ module Zikrash
|
|
7
7
|
attr_accessor :relevant_code
|
8
8
|
|
9
9
|
def initialize(exception)
|
10
|
+
return false unless (exception.respond_to?(:message) && exception.respond_to?(:backtrace))
|
11
|
+
|
10
12
|
self.exception_class = exception.is_a?(Class) ? exception.to_s : exception.class.to_s
|
11
13
|
self.message = exception.message
|
12
14
|
self.full_backtrace = exception.backtrace
|
data/lib/zikrash/send_report.rb
CHANGED
@@ -1,17 +1,55 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'uri'
|
3
3
|
require 'json'
|
4
|
+
require 'base64'
|
4
5
|
|
5
6
|
module Zikrash
|
6
7
|
class SendReport
|
7
|
-
|
8
|
-
|
8
|
+
attr_accessor :project_key
|
9
|
+
attr_accessor :exception_info_data
|
10
|
+
attr_accessor :session_info
|
11
|
+
attr_accessor :params_info
|
12
|
+
attr_accessor :additional_reports
|
13
|
+
|
14
|
+
def initialize(project_key, exception_info_data, session_info, params_info, additional_reports)
|
15
|
+
self.project_key = project_key
|
16
|
+
self.exception_info_data = exception_info_data
|
17
|
+
self.session_info = session_info
|
18
|
+
self.params_info = params_info
|
19
|
+
self.additional_reports = additional_reports
|
20
|
+
end
|
21
|
+
|
22
|
+
def let_it_go
|
23
|
+
project_url = unwrap_project_url
|
24
|
+
|
25
|
+
begin
|
26
|
+
uri = URI.parse(project_url)
|
27
|
+
uri.kind_of?(URI::HTTP)
|
28
|
+
rescue URI::InvalidURIError
|
29
|
+
return false
|
30
|
+
end
|
31
|
+
|
9
32
|
http = Net::HTTP.new(uri.host, uri.port)
|
10
33
|
|
11
|
-
request = Net::HTTP::Post.new(uri.path, {
|
12
|
-
request.body =
|
34
|
+
request = Net::HTTP::Post.new(uri.path, {'Content-Type' => 'application/json'})
|
35
|
+
request.body = form_request_body
|
13
36
|
|
14
37
|
http.request(request)
|
15
38
|
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def unwrap_project_url
|
43
|
+
Base64.decode64(project_key)
|
44
|
+
end
|
45
|
+
|
46
|
+
def form_request_body
|
47
|
+
{
|
48
|
+
exception_info: exception_info_data,
|
49
|
+
session_info: session_info,
|
50
|
+
params_info: params_info,
|
51
|
+
additional_reports: additional_reports
|
52
|
+
}.to_json
|
53
|
+
end
|
16
54
|
end
|
17
55
|
end
|
data/lib/zikrash/version.rb
CHANGED
data/lib/zikrash.rb
CHANGED
@@ -2,13 +2,28 @@ require 'zikrash/version'
|
|
2
2
|
require 'zikrash/exception_info'
|
3
3
|
require 'zikrash/code_extractor'
|
4
4
|
require 'zikrash/send_report'
|
5
|
+
require 'logger'
|
5
6
|
|
6
7
|
module Zikrash
|
7
|
-
SEND_TO_URL = 'http://127.0.0.1/billing/test/get_report/'
|
8
|
-
|
9
8
|
class << self
|
10
|
-
def report(exception)
|
11
|
-
|
9
|
+
def report(project_key, exception, session_info = {}, params_info = {}, additional_reports = {})
|
10
|
+
return false if project_key.blank? || exception.blank?
|
11
|
+
|
12
|
+
begin
|
13
|
+
exception_info = ExceptionInfo.new(exception)
|
14
|
+
return false unless exception_info
|
15
|
+
|
16
|
+
send_report = SendReport.new(project_key, exception_info.data, session_info, params_info, additional_reports)
|
17
|
+
|
18
|
+
send_report.let_it_go
|
19
|
+
rescue Exception => error
|
20
|
+
# Just in case I messed up badly
|
21
|
+
Rails.logger.fatal("========== Zikrash Gem Crashed ==========")
|
22
|
+
Rails.logger.fatal("Please notify it's developers")
|
23
|
+
Rails.logger.fatal("Exception message: #{error.message}")
|
24
|
+
Rails.logger.fatal("Exception location: #{error.backtrace.first}")
|
25
|
+
Rails.logger.fatal("=========================================\n")
|
26
|
+
end
|
12
27
|
end
|
13
28
|
end
|
14
29
|
end
|
data/zikrash.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
|
12
12
|
spec.summary = %q{Rails Exception reporter}
|
13
13
|
spec.description = %q{Reports Exception data to external server}
|
14
|
-
spec.homepage = '
|
14
|
+
spec.homepage = 'https://github.com/ErGisler/zikrash'
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test)/}) }
|
@@ -21,4 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_development_dependency 'bundler', '~> 1.9'
|
23
23
|
spec.add_development_dependency 'rake', '~> 10.0'
|
24
|
+
spec.add_development_dependency 'railties', '>= 3.0.0'
|
25
|
+
|
26
|
+
spec.required_ruby_version = '>= 2.0'
|
24
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zikrash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ervinas Gisleris
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: railties
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.0.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.0.0
|
41
55
|
description: Reports Exception data to external server
|
42
56
|
email:
|
43
57
|
- er.gisler@gmail.com
|
@@ -59,7 +73,7 @@ files:
|
|
59
73
|
- lib/zikrash/send_report.rb
|
60
74
|
- lib/zikrash/version.rb
|
61
75
|
- zikrash.gemspec
|
62
|
-
homepage:
|
76
|
+
homepage: https://github.com/ErGisler/zikrash
|
63
77
|
licenses:
|
64
78
|
- MIT
|
65
79
|
metadata: {}
|
@@ -71,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
85
|
requirements:
|
72
86
|
- - ">="
|
73
87
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
88
|
+
version: '2.0'
|
75
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
90
|
requirements:
|
77
91
|
- - ">="
|