debugged-ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ require File.expand_path('../lib/debugged-ruby/version', __FILE__)
2
+ Gem::Specification.new do |g|
3
+ g.name = 'debugged-ruby'
4
+ g.version = Debugged::VERSION
5
+ g.authors = ["henkem"]
6
+ g.summary = 'Ruby debugged'
7
+ g.description = 'Ruby debugged'
8
+ g.email = 'mitchh23@gmail.com'
9
+ g.files = Dir['lib/**/*'] + Dir['spec/**/*'] + Dir['spec/**/*'] + Dir['rails/**/*'] + Dir['tasks/**/*'] + Dir['*.rb'] + ["debugged-ruby.gemspec"]
10
+ g.homepage = 'http://www.debugged.io'
11
+ g.require_paths = ["lib"]
12
+ #gem.rubyforge_project = ''
13
+ g.requirements << "json_pure, json-jruby or json gem required"
14
+ #gem.add_dependency 'rack'
15
+ end
@@ -0,0 +1,72 @@
1
+ require 'debugged-ruby/config'
2
+ require 'debugged-ruby/version'
3
+ require 'json'
4
+ require 'digest/sha1'
5
+ require 'httpclient'
6
+ require 'net/http'
7
+
8
+ module Debugged
9
+ @@api_key = nil
10
+
11
+ def self.api_key=(api_key)
12
+ puts 'SOUNDS LEGIT TO ME'
13
+ @@api_key = api_key
14
+ end
15
+
16
+ def self.api_key
17
+ @@api_key
18
+ end
19
+
20
+ def self.report(name, data, e)
21
+
22
+ unless data.is_a? Hash
23
+ #Log this
24
+ raise ArgumentError, 'Data argument is not Hash'
25
+ end
26
+
27
+ unless name.is_a? String
28
+ #Log this
29
+ raise ArgumentError, 'Name argument is not String'
30
+ end
31
+
32
+ name ||= ""
33
+ data ||= ""
34
+
35
+ time = Time.now.utc.to_i
36
+ hash = Digest::SHA1.base64digest @@api_key.to_s+name+"ruby"+time.to_s
37
+
38
+ report =
39
+ {
40
+ "created_at" => time,
41
+ "identifier" => hash,
42
+ "exception_name" => name,
43
+ "sdk_version" => "ruby",
44
+ "stack_trace" => e.backtrace.join("\n"),
45
+ "message" => e.message,
46
+ "line_number" => e.backtrace[0].split(":").last.to_i,
47
+ "character_number" => -1,
48
+ "filename" => e.backtrace[0].split("/").last.split(":").first,
49
+ "user_custom_data" => data,
50
+ "sdk_data" => {"ruby_version" => RUBY_VERSION.to_s,
51
+ "platform" => RUBY_PLATFORM.to_s}
52
+ }
53
+ url = "http://debugged.herokuapp.com/report"
54
+ uri = URI(url)
55
+
56
+ req = Net::HTTP::Post.new(uri.request_uri)
57
+ req.basic_auth @@api_key, 'pass'
58
+ req.body = report.to_json
59
+
60
+ # NOT ASYNC AS OF YET
61
+ begin
62
+ res = Net::HTTP.start(uri.hostname, uri.port) do |http|
63
+ http.request(req)
64
+ end
65
+ rescue
66
+ #do something
67
+ end
68
+ end
69
+ #
70
+ #response = RestClient.post url, :payload => report.to_json, :content_typ=>:json, :user => @@api_key
71
+ #puts response.body
72
+ end
File without changes
@@ -0,0 +1,3 @@
1
+ module Debugged
2
+ VERSION = '0.0.1'
3
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: debugged-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - henkem
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-10 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Ruby debugged
15
+ email: mitchh23@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/debugged-ruby/config.rb
21
+ - lib/debugged-ruby/version.rb
22
+ - lib/debugged-ruby.rb
23
+ - debugged-ruby.gemspec
24
+ homepage: http://www.debugged.io
25
+ licenses: []
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements:
43
+ - json_pure, json-jruby or json gem required
44
+ rubyforge_project:
45
+ rubygems_version: 1.8.24
46
+ signing_key:
47
+ specification_version: 3
48
+ summary: Ruby debugged
49
+ test_files: []