stackprof-remote 0.0.3 → 0.0.4

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: 1adb710dcc98464b5073a812b28eeb56a95f8637
4
- data.tar.gz: 4671dc6195123b846e273cb3020fe4cc916d3078
3
+ metadata.gz: 0e025e9b063b4823e5d05bed0ed3aae1d472a871
4
+ data.tar.gz: beb4078dc48598e97b286dede4ab883bb970eeb3
5
5
  SHA512:
6
- metadata.gz: 37e34b29c0a4833156e34de92fbaefd2ba4ba299520b9ca0fa688c6864d92edb4b94f96807e40a31cf2cf50cc19b72a7325834143904b67f9c93133a5da4b330
7
- data.tar.gz: 7e591a46655308923e664c4c87ec9b54c546b6f9ac371634d4b6048f64a5cf0ec26ac03db31763adfcc73a7686a228dc517c55c8856007e7cd6dbc396a73c0dd
6
+ metadata.gz: dcd209a05434b05d042c1ca16aadce354b618ee17617998e0b31e6fb470ebd5d750d1d86a7c35db243cdce4c519864d14d29cf552a25c111c2d55dcb41f1e448
7
+ data.tar.gz: 219ef3134ebf6d54d15626b0d537e59f1dad16447ef4001b2aa99e912b6b7c30e6d75691ef84a90254101d251586fe58ec98b85fc81344403cd76bbafb6587fb
data/Gemfile CHANGED
@@ -2,14 +2,13 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem "rbtrace", "~>0.4.3"
6
- gem "stackprof", "~>0.2.6"
7
- gem "pry"
5
+ gem "rbtrace", "~>0.4.4"
6
+ gem "stackprof", "~>0.2.7"
7
+ gem "pry", "~>0.10.0"
8
8
 
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
- gem "shoulda", ">= 0"
13
12
  gem "rdoc", "~> 3.12"
14
13
  gem "bundler", "~> 1.0"
15
14
  gem "jeweler", "~> 2.0.1"
data/Gemfile.lock CHANGED
@@ -1,12 +1,6 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activesupport (4.1.1)
5
- i18n (~> 0.6, >= 0.6.9)
6
- json (~> 1.7, >= 1.7.7)
7
- minitest (~> 5.1)
8
- thread_safe (~> 0.1)
9
- tzinfo (~> 1.1)
10
4
  addressable (2.3.6)
11
5
  builder (3.2.2)
12
6
  coderay (1.1.0)
@@ -27,7 +21,6 @@ GEM
27
21
  oauth2
28
22
  hashie (3.0.0)
29
23
  highline (1.6.21)
30
- i18n (0.6.9)
31
24
  jeweler (2.0.1)
32
25
  builder
33
26
  bundler (>= 1.0)
@@ -41,7 +34,6 @@ GEM
41
34
  jwt (1.0.0)
42
35
  method_source (0.8.2)
43
36
  mini_portile (0.6.0)
44
- minitest (5.3.4)
45
37
  msgpack (0.5.8)
46
38
  multi_json (1.10.1)
47
39
  multi_xml (0.5.5)
@@ -60,29 +52,21 @@ GEM
60
52
  slop (~> 3.4)
61
53
  rack (1.5.2)
62
54
  rake (10.3.2)
63
- rbtrace (0.4.3)
55
+ rbtrace (0.4.4)
64
56
  ffi (>= 1.0.6)
65
57
  msgpack (>= 0.4.3)
66
58
  trollop (>= 1.16.2)
67
59
  rdoc (3.12.2)
68
60
  json (~> 1.4)
69
- shoulda (3.5.0)
70
- shoulda-context (~> 1.0, >= 1.0.1)
71
- shoulda-matchers (>= 1.4.1, < 3.0)
72
- shoulda-context (1.2.1)
73
- shoulda-matchers (2.6.1)
74
- activesupport (>= 3.0.0)
75
61
  simplecov (0.8.2)
76
62
  docile (~> 1.1.0)
77
63
  multi_json
78
64
  simplecov-html (~> 0.8.0)
79
65
  simplecov-html (0.8.0)
80
66
  slop (3.5.0)
81
- stackprof (0.2.6)
67
+ stackprof (0.2.7)
82
68
  thread_safe (0.3.4)
83
69
  trollop (2.0)
84
- tzinfo (1.2.1)
85
- thread_safe (~> 0.1)
86
70
 
87
71
  PLATFORMS
88
72
  ruby
@@ -90,9 +74,8 @@ PLATFORMS
90
74
  DEPENDENCIES
91
75
  bundler (~> 1.0)
92
76
  jeweler (~> 2.0.1)
93
- pry
94
- rbtrace (~> 0.4.3)
77
+ pry (~> 0.10.0)
78
+ rbtrace (~> 0.4.4)
95
79
  rdoc (~> 3.12)
96
- shoulda
97
80
  simplecov
98
- stackprof (~> 0.2.6)
81
+ stackprof (~> 0.2.7)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -39,10 +39,17 @@ module StackProf
39
39
  end
40
40
 
41
41
  def fetch_results
42
- @results = Net::HTTP.get(host, "/__stackprof__/stop")
43
- puts "[#{host}] Results: #{@results.bytesize / 1024}kb"
44
- if !@results
45
- raise "Could not retreive results"
42
+ response = Net::HTTP.get_response(host, "/__stackprof__/stop")
43
+ if response.code == '200'
44
+ @results = response.body
45
+ if !@results
46
+ raise "Could not retreive results"
47
+ end
48
+ puts "[#{host}] Results: #{@results.bytesize / 1024}kb"
49
+ else
50
+ puts "[#{host}] Returned a #{response.code} response"
51
+ puts response.body
52
+ raise "Bad Response"
46
53
  end
47
54
  end
48
55
 
@@ -24,7 +24,7 @@ module StackProf
24
24
 
25
25
  def initialize(app, options = {})
26
26
  @app = app
27
- self.class.logger = options.delete(:logger) || Logger.new(STDOUT)
27
+ self.class.logger = options[:logger] || Logger.new(STDOUT)
28
28
  self.class.options = options
29
29
  logger.info "[stackprof] Stackprof Middleware enabled"
30
30
  end
@@ -77,11 +77,11 @@ module StackProf
77
77
  if results = marshaled_results
78
78
  FileUtils.mkdir_p(base_path)
79
79
  filename = "stackprof-#{Process.pid}-#{Time.now.to_i}.dump"
80
- path = File.expand_path(File.join(base_path, filename))
80
+ path = File.join(base_path, filename)
81
81
  File.open(path, 'wb') do |f|
82
82
  f.write results
83
83
  end
84
- path
84
+ File.readable?(path) ? path : nil
85
85
  end
86
86
  end
87
87
  end
@@ -46,16 +46,28 @@ module StackProf
46
46
 
47
47
  def marshaled_results
48
48
  if @saved_files
49
+ logger.debug "[stackprof] Saved Files #{@saved_files.inspect}"
49
50
  saved_data = @saved_files.collect {|f|
50
- Marshal.load(File.read(f))
51
- }
51
+ f = f.gsub(/"/,'') # RBTrace returns double quoted strings
52
+ if File.readable?(f)
53
+ Marshal.load(File.read(f))
54
+ else
55
+ logger.error "[stackprof] File #{f} not readable by process #{Process.pid}"
56
+ end
57
+ }.compact
52
58
  Marshal.dump(saved_data)
53
59
  end
54
60
  end
55
61
 
56
62
  def self.report_from_marshaled_results(marshaled_data)
57
63
  data = Marshal.load(marshaled_data)
58
- report = data.inject(nil) {|sum, d| sum ? StackProf::Report.new(d) + sum : StackProf::Report.new(d) }
64
+ if data.is_a?(Array)
65
+ data.compact.inject(nil) do |sum, d|
66
+ sum ? StackProf::Report.new(d) + sum : StackProf::Report.new(d)
67
+ end
68
+ else
69
+ StackProf::Report.new(d)
70
+ end
59
71
  end
60
72
 
61
73
  private
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: stackprof-remote 0.0.3 ruby lib
5
+ # stub: stackprof-remote 0.0.4 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "stackprof-remote"
9
- s.version = "0.0.3"
9
+ s.version = "0.0.4"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Aaron Quint"]
14
- s.date = "2014-06-13"
14
+ s.date = "2014-06-17"
15
15
  s.description = "stackprof-remote consists of a middleware for easy creation and retreival of\n stackprof sampling profiler dumps from a remote machine, and a wrapper around\n pry (stackprof-cli) to create an interactive session for navigating stackprof\n dumps."
16
16
  s.email = "aaron@quirkey.com"
17
17
  s.executables = ["stackprof-cli", "stackprof-remote"]
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
36
36
  "lib/stackprof/remote/process_report_collector.rb",
37
37
  "stackprof-remote.gemspec",
38
38
  "test/helper.rb",
39
+ "test/test.dump",
39
40
  "test/test_stackprof-remote.rb"
40
41
  ]
41
42
  s.homepage = "http://github.com/quirkey/stackprof-remote"
@@ -47,29 +48,26 @@ Gem::Specification.new do |s|
47
48
  s.specification_version = 4
48
49
 
49
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<rbtrace>, ["~> 0.4.3"])
51
- s.add_runtime_dependency(%q<stackprof>, ["~> 0.2.6"])
52
- s.add_runtime_dependency(%q<pry>, [">= 0"])
53
- s.add_development_dependency(%q<shoulda>, [">= 0"])
51
+ s.add_runtime_dependency(%q<rbtrace>, ["~> 0.4.4"])
52
+ s.add_runtime_dependency(%q<stackprof>, ["~> 0.2.7"])
53
+ s.add_runtime_dependency(%q<pry>, ["~> 0.10.0"])
54
54
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
55
55
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
56
56
  s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
57
57
  s.add_development_dependency(%q<simplecov>, [">= 0"])
58
58
  else
59
- s.add_dependency(%q<rbtrace>, ["~> 0.4.3"])
60
- s.add_dependency(%q<stackprof>, ["~> 0.2.6"])
61
- s.add_dependency(%q<pry>, [">= 0"])
62
- s.add_dependency(%q<shoulda>, [">= 0"])
59
+ s.add_dependency(%q<rbtrace>, ["~> 0.4.4"])
60
+ s.add_dependency(%q<stackprof>, ["~> 0.2.7"])
61
+ s.add_dependency(%q<pry>, ["~> 0.10.0"])
63
62
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
64
63
  s.add_dependency(%q<bundler>, ["~> 1.0"])
65
64
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
66
65
  s.add_dependency(%q<simplecov>, [">= 0"])
67
66
  end
68
67
  else
69
- s.add_dependency(%q<rbtrace>, ["~> 0.4.3"])
70
- s.add_dependency(%q<stackprof>, ["~> 0.2.6"])
71
- s.add_dependency(%q<pry>, [">= 0"])
72
- s.add_dependency(%q<shoulda>, [">= 0"])
68
+ s.add_dependency(%q<rbtrace>, ["~> 0.4.4"])
69
+ s.add_dependency(%q<stackprof>, ["~> 0.2.7"])
70
+ s.add_dependency(%q<pry>, ["~> 0.10.0"])
73
71
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
74
72
  s.add_dependency(%q<bundler>, ["~> 1.0"])
75
73
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
data/test/helper.rb CHANGED
@@ -23,12 +23,9 @@ rescue Bundler::BundlerError => e
23
23
  $stderr.puts "Run `bundle install` to install missing gems"
24
24
  exit e.status_code
25
25
  end
26
- require 'test/unit'
27
- require 'shoulda'
26
+
27
+ require 'minitest/autorun'
28
28
 
29
29
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
30
  $LOAD_PATH.unshift(File.dirname(__FILE__))
31
31
  require 'stackprof-remote'
32
-
33
- class Test::Unit::TestCase
34
- end
data/test/test.dump ADDED
Binary file
@@ -1,7 +1,18 @@
1
1
  require 'helper'
2
2
 
3
- class TestStackprofRemote < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
3
+ class TestStackProfRemote < MiniTest::Unit::TestCase
4
+
5
+ def test_should_load_a_marshaled_dump
6
+ report = StackProf::Remote::ProcessReportCollector.report_from_marshaled_results(File.read('./test/test.dump'))
7
+ assert report
8
+ assert_kind_of StackProf::Report, report
9
+ end
10
+
11
+ def test_should_print_text
12
+ report = StackProf::Remote::ProcessReportCollector.report_from_marshaled_results(File.read('./test/test.dump'))
13
+ str = StringIO.new
14
+ assert report.print_text(false, 10, str)
15
+ assert_match(/ActiveSupport/, str.string)
6
16
  end
17
+
7
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackprof-remote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Quint
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-13 00:00:00.000000000 Z
11
+ date: 2014-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbtrace
@@ -16,56 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.3
19
+ version: 0.4.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.3
26
+ version: 0.4.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: stackprof
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.6
33
+ version: 0.2.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.6
40
+ version: 0.2.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.10.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: shoulda
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 0.10.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rdoc
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -152,6 +138,7 @@ files:
152
138
  - lib/stackprof/remote/process_report_collector.rb
153
139
  - stackprof-remote.gemspec
154
140
  - test/helper.rb
141
+ - test/test.dump
155
142
  - test/test_stackprof-remote.rb
156
143
  homepage: http://github.com/quirkey/stackprof-remote
157
144
  licenses: