dracarys 0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: aab02827a6e944ef5134b32a9ea2171ac9556a67
4
+ data.tar.gz: b4b6f80c0fab42f196156631c5df59454565098b
5
+ SHA512:
6
+ metadata.gz: 2df4fdb3499bf282f2abfbe0565ba25a098eb55861ea8a5154469054af3aeb95c59edcde9288f027c4468ff5e0ec8feb58a8e0caa3b3e853c5b4e36b5f2be3b5
7
+ data.tar.gz: 19549065eab9b7192b9f3ec943435089b3ca9db6843d9331ddd39c574a68853bb13f14221e39957d51c3748f268329626b4cec96e4a6e449af327ada26293b37
data/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore bundler config
8
+ /.bundle
9
+
10
+ # Ignore all logfiles and tempfiles.
11
+ *~
12
+ .#*
13
+ #*
14
+ .DS_Store
15
+ ._.DS_Store
16
+ ._*
17
+ *.fuse_hidden*
18
+ Gemfile.lock
19
+ .yardoc/
20
+ Thumbs.db
21
+ .ruby-version
22
+ *.gem
data/dracarys.gemspec ADDED
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'dracarys/version'
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "dracarys"
7
+ gem.version = Dracarys::VERSION
8
+ gem.authors = ["Shiv Deepak"]
9
+ gem.email = ["shiv@hackerrank.com"]
10
+ gem.description = %q{Rails middleware for reporting breakpoints with timestamps.}
11
+ gem.summary = %q{Rails middleware for reporting breakpoints with timestamps.}
12
+ gem.homepage = "http://github.com/interviewstreet/dracarys"
13
+ gem.files = `git ls-files`.split($/)
14
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.require_paths = ["lib"]
17
+ gem.add_development_dependency "rake"
18
+ gem.add_development_dependency "minitest", "~> 5.0"
19
+ end
data/lib/dracarys.rb ADDED
@@ -0,0 +1,43 @@
1
+ require "dracarys/version"
2
+ require "dracarys/middleware"
3
+ require "dracarys/railtie" if defined?(Rails::Railtie)
4
+
5
+ module Dracarys
6
+ def self.store
7
+ Thread.current[:dracarys] ||= []
8
+ end
9
+
10
+ def self.init!
11
+ teardown!
12
+ end
13
+
14
+ def self.clear!
15
+ Thread.current[:dracarys] = []
16
+ end
17
+
18
+ def self.push(breakpoint)
19
+ store << [breakpoint, Time.now.utc.to_i]
20
+ end
21
+
22
+ def self.get_request_uid
23
+ @request_uid ||= (defined? $request_uid) ? $request_uid : gen_request_uid
24
+ end
25
+
26
+ def self.clear_request_uid
27
+ @request_uid = nil
28
+ end
29
+
30
+ def gen_request_uid
31
+ (rand(100).to_s + Time.now.to_i.to_s).to_i.to_s(30)
32
+ end
33
+
34
+ def self.dump!
35
+ store.dup
36
+ teardown!
37
+ end
38
+
39
+ def self.teardown!
40
+ clear!
41
+ clear_request_uid
42
+ end
43
+ end
@@ -0,0 +1,12 @@
1
+ module Dracarys
2
+ class Middleware
3
+ def initialize(app)
4
+ @app = app
5
+ end
6
+
7
+ def call(env)
8
+ Dracarys.init!
9
+ @app.call(env)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ module Dracarys
2
+ class Railtie < ::Rails::Railtie
3
+ initializer "dracarys.insert_middleware" do |app|
4
+ if ActionDispatch.const_defined? :RequestId
5
+ app.config.middleware.insert_after ActionDispatch::RequestId, Dracarys::Middleware
6
+ else
7
+ app.config.middleware.insert_after Rack::MethodOverride, Dracarys::Middleware
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Dracarys
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dracarys
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Shiv Deepak
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ description: Rails middleware for reporting breakpoints with timestamps.
42
+ email:
43
+ - shiv@hackerrank.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - dracarys.gemspec
50
+ - lib/dracarys.rb
51
+ - lib/dracarys/middleware.rb
52
+ - lib/dracarys/railtie.rb
53
+ - lib/dracarys/version.rb
54
+ homepage: http://github.com/interviewstreet/dracarys
55
+ licenses: []
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.4.3
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Rails middleware for reporting breakpoints with timestamps.
77
+ test_files: []
78
+ has_rdoc: