scout 5.3.5 → 5.4.4.alpha

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.
Files changed (66) hide show
  1. data/.gitignore +6 -0
  2. data/CHANGELOG +0 -12
  3. data/Gemfile +4 -0
  4. data/README +8 -0
  5. data/Rakefile +6 -108
  6. data/bin/scout +1 -0
  7. data/lib/scout.rb +5 -4
  8. data/lib/scout/command.rb +11 -12
  9. data/lib/scout/command/install.rb +1 -1
  10. data/lib/scout/command/run.rb +13 -1
  11. data/lib/scout/command/sign.rb +2 -8
  12. data/lib/scout/command/stream.rb +50 -0
  13. data/lib/scout/command/test.rb +1 -1
  14. data/lib/scout/daemon_spawn.rb +215 -0
  15. data/lib/scout/plugin.rb +20 -1
  16. data/lib/scout/server.rb +16 -111
  17. data/lib/scout/server_base.rb +100 -0
  18. data/lib/scout/streamer.rb +162 -0
  19. data/lib/scout/streamer_control.rb +43 -0
  20. data/lib/scout/version.rb +3 -0
  21. data/scout.gemspec +27 -0
  22. data/test/plugins/disk_usage.rb +86 -0
  23. data/test/scout_test.rb +598 -0
  24. data/vendor/pusher-gem/Gemfile +2 -0
  25. data/vendor/pusher-gem/LICENSE +20 -0
  26. data/vendor/pusher-gem/README.md +80 -0
  27. data/vendor/pusher-gem/Rakefile +11 -0
  28. data/vendor/pusher-gem/examples/async_message.rb +28 -0
  29. data/vendor/pusher-gem/lib/pusher.rb +107 -0
  30. data/vendor/pusher-gem/lib/pusher/channel.rb +154 -0
  31. data/vendor/pusher-gem/lib/pusher/request.rb +107 -0
  32. data/vendor/pusher-gem/pusher.gemspec +28 -0
  33. data/vendor/pusher-gem/spec/channel_spec.rb +274 -0
  34. data/vendor/pusher-gem/spec/pusher_spec.rb +87 -0
  35. data/vendor/pusher-gem/spec/spec_helper.rb +13 -0
  36. data/vendor/ruby-hmac/History.txt +15 -0
  37. data/vendor/ruby-hmac/Manifest.txt +11 -0
  38. data/vendor/ruby-hmac/README.md +41 -0
  39. data/vendor/ruby-hmac/Rakefile +23 -0
  40. data/vendor/ruby-hmac/lib/hmac-md5.rb +11 -0
  41. data/vendor/ruby-hmac/lib/hmac-rmd160.rb +11 -0
  42. data/vendor/ruby-hmac/lib/hmac-sha1.rb +11 -0
  43. data/vendor/ruby-hmac/lib/hmac-sha2.rb +25 -0
  44. data/vendor/ruby-hmac/lib/hmac.rb +118 -0
  45. data/vendor/ruby-hmac/lib/ruby_hmac.rb +2 -0
  46. data/vendor/ruby-hmac/ruby-hmac.gemspec +33 -0
  47. data/vendor/ruby-hmac/test/test_hmac.rb +89 -0
  48. data/vendor/signature/.document +5 -0
  49. data/vendor/signature/.gitignore +21 -0
  50. data/vendor/signature/Gemfile +3 -0
  51. data/vendor/signature/Gemfile.lock +29 -0
  52. data/vendor/signature/LICENSE +20 -0
  53. data/vendor/signature/README.md +55 -0
  54. data/vendor/signature/Rakefile +2 -0
  55. data/vendor/signature/VERSION +1 -0
  56. data/vendor/signature/lib/signature.rb +142 -0
  57. data/vendor/signature/lib/signature/version.rb +3 -0
  58. data/vendor/signature/signature.gemspec +22 -0
  59. data/vendor/signature/spec/signature_spec.rb +176 -0
  60. data/vendor/signature/spec/spec_helper.rb +10 -0
  61. data/vendor/util/lib/core_extensions.rb +60 -0
  62. metadata +120 -84
  63. data/AUTHORS +0 -4
  64. data/COPYING +0 -340
  65. data/INSTALL +0 -18
  66. data/TODO +0 -6
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,142 @@
1
+ require 'hmac-sha2'
2
+
3
+ module Signature
4
+ class AuthenticationError < RuntimeError; end
5
+
6
+ class Token
7
+ attr_reader :key, :secret
8
+
9
+ def initialize(key, secret)
10
+ @key, @secret = key, secret
11
+ end
12
+
13
+ def sign(request)
14
+ request.sign(self)
15
+ end
16
+ end
17
+
18
+ class Request
19
+ attr_accessor :path, :query_hash
20
+
21
+ # http://www.w3.org/TR/NOTE-datetime
22
+ ISO8601 = "%Y-%m-%dT%H:%M:%SZ"
23
+
24
+ def initialize(method, path, query)
25
+ raise ArgumentError, "Expected string" unless path.kind_of?(String)
26
+ raise ArgumentError, "Expected hash" unless query.kind_of?(Hash)
27
+
28
+ query_hash = {}
29
+ auth_hash = {}
30
+ query.each do |key, v|
31
+ k = key.to_s.downcase
32
+ k[0..4] == 'auth_' ? auth_hash[k] = v : query_hash[k] = v
33
+ end
34
+
35
+ @method = method.upcase
36
+ @path, @query_hash, @auth_hash = path, query_hash, auth_hash
37
+ end
38
+
39
+ def sign(token)
40
+ @auth_hash = {
41
+ :auth_version => "1.0",
42
+ :auth_key => token.key,
43
+ :auth_timestamp => Time.now.to_i.to_s
44
+ }
45
+
46
+ @auth_hash[:auth_signature] = signature(token)
47
+
48
+ return @auth_hash
49
+ end
50
+
51
+ # Authenticates the request with a token
52
+ #
53
+ # Timestamp check: Unless timestamp_grace is set to nil (which will skip
54
+ # the timestamp check), an exception will be raised if timestamp is not
55
+ # supplied or if the timestamp provided is not within timestamp_grace of
56
+ # the real time (defaults to 10 minutes)
57
+ #
58
+ # Signature check: Raises an exception if the signature does not match the
59
+ # computed value
60
+ #
61
+ def authenticate_by_token!(token, timestamp_grace = 600)
62
+ validate_version!
63
+ validate_timestamp!(timestamp_grace)
64
+ validate_signature!(token)
65
+ true
66
+ end
67
+
68
+ def authenticate_by_token(token, timestamp_grace = 600)
69
+ authenticate_by_token!(token, timestamp_grace)
70
+ rescue AuthenticationError
71
+ false
72
+ end
73
+
74
+ def authenticate(timestamp_grace = 600, &block)
75
+ key = @auth_hash['auth_key']
76
+ raise AuthenticationError, "Authentication key required" unless key
77
+ token = yield key
78
+ unless token && token.secret
79
+ raise AuthenticationError, "Invalid authentication key"
80
+ end
81
+ authenticate_by_token!(token, timestamp_grace)
82
+ return token
83
+ end
84
+
85
+ def auth_hash
86
+ raise "Request not signed" unless @auth_hash && @auth_hash[:auth_signature]
87
+ @auth_hash
88
+ end
89
+
90
+ private
91
+
92
+ def signature(token)
93
+ HMAC::SHA256.hexdigest(token.secret, string_to_sign)
94
+ end
95
+
96
+ def string_to_sign
97
+ [@method, @path, parameter_string].join("\n")
98
+ end
99
+
100
+ def parameter_string
101
+ param_hash = @query_hash.merge(@auth_hash || {})
102
+
103
+ # Convert keys to lowercase strings
104
+ hash = {}; param_hash.each { |k,v| hash[k.to_s.downcase] = v }
105
+
106
+ # Exclude signature from signature generation!
107
+ hash.delete("auth_signature")
108
+
109
+ hash.keys.sort.map { |k| "#{k}=#{hash[k]}" }.join("&")
110
+ end
111
+
112
+ def validate_version!
113
+ version = @auth_hash["auth_version"]
114
+ raise AuthenticationError, "Version required" unless version
115
+ raise AuthenticationError, "Version not supported" unless version == '1.0'
116
+ end
117
+
118
+ def validate_timestamp!(grace)
119
+ return true if grace.nil?
120
+
121
+ timestamp = @auth_hash["auth_timestamp"]
122
+ error = (timestamp.to_i - Time.now.to_i).abs
123
+ raise AuthenticationError, "Timestamp required" unless timestamp
124
+ if error >= grace
125
+ raise AuthenticationError, "Timestamp expired: Given timestamp "\
126
+ "(#{Time.at(timestamp.to_i).utc.strftime(ISO8601)}) "\
127
+ "not within #{grace}s of server time "\
128
+ "(#{Time.now.utc.strftime(ISO8601)})"
129
+ end
130
+ return true
131
+ end
132
+
133
+ def validate_signature!(token)
134
+ unless @auth_hash["auth_signature"] == signature(token)
135
+ raise AuthenticationError, "Invalid signature: you should have "\
136
+ "sent HmacSHA256Hex(#{string_to_sign.inspect}, your_secret_key)"\
137
+ ", but you sent #{@auth_hash["auth_signature"].inspect}"
138
+ end
139
+ return true
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,3 @@
1
+ module Signature
2
+ VERSION = "0.1.2"
3
+ end
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "signature/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "signature"
7
+ s.version = Signature::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Martyn Loughran"]
10
+ s.email = ["me@mloughran.com"]
11
+ s.homepage = "http://github.com/mloughran/signature"
12
+ s.summary = %q{Simple key/secret based authentication for apis}
13
+ s.description = %q{Simple key/secret based authentication for apis}
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ s.add_dependency "ruby-hmac"
21
+ s.add_development_dependency "rspec", "~> 2.0.0"
22
+ end
@@ -0,0 +1,176 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+
3
+ describe Signature do
4
+ before :each do
5
+ Time.stub!(:now).and_return(Time.at(1234))
6
+
7
+ @token = Signature::Token.new('key', 'secret')
8
+
9
+ @request = Signature::Request.new('POST', '/some/path', {
10
+ "query" => "params",
11
+ "go" => "here"
12
+ })
13
+ @signature = @request.sign(@token)[:auth_signature]
14
+ end
15
+
16
+ it "should generate base64 encoded signature from correct key" do
17
+ @request.send(:string_to_sign).should == "POST\n/some/path\nauth_key=key&auth_timestamp=1234&auth_version=1.0&go=here&query=params"
18
+ @signature.should == '3b237953a5ba6619875cbb2a2d43e8da9ef5824e8a2c689f6284ac85bc1ea0db'
19
+ end
20
+
21
+ it "should make auth_hash available after request is signed" do
22
+ request = Signature::Request.new('POST', '/some/path', {
23
+ "query" => "params"
24
+ })
25
+ lambda {
26
+ request.auth_hash
27
+ }.should raise_error('Request not signed')
28
+
29
+ request.sign(@token)
30
+ request.auth_hash.should == {
31
+ :auth_signature => "da078fcedd72941b6c873caa40d0d6b2000ebfc700cee802b128dd20f72e74e9",
32
+ :auth_version => "1.0",
33
+ :auth_key => "key",
34
+ :auth_timestamp => '1234'
35
+ }
36
+ end
37
+
38
+ it "should cope with symbol keys" do
39
+ @request.query_hash = {
40
+ :query => "params",
41
+ :go => "here"
42
+ }
43
+ @request.sign(@token)[:auth_signature].should == @signature
44
+ end
45
+
46
+ it "should cope with upcase keys (keys are lowercased before signing)" do
47
+ @request.query_hash = {
48
+ "Query" => "params",
49
+ "GO" => "here"
50
+ }
51
+ @request.sign(@token)[:auth_signature].should == @signature
52
+ end
53
+
54
+ it "should use the path to generate signature" do
55
+ @request.path = '/some/other/path'
56
+ @request.sign(@token)[:auth_signature].should_not == @signature
57
+ end
58
+
59
+ it "should use the query string keys to generate signature" do
60
+ @request.query_hash = {
61
+ "other" => "query"
62
+ }
63
+ @request.sign(@token)[:auth_signature].should_not == @signature
64
+ end
65
+
66
+ it "should use the query string values to generate signature" do
67
+ @request.query_hash = {
68
+ "key" => "notfoo",
69
+ "other" => 'bar'
70
+ }
71
+ @request.sign(@token)[:signature].should_not == @signature
72
+ end
73
+
74
+ describe "verification" do
75
+ before :each do
76
+ Time.stub!(:now).and_return(Time.at(1234))
77
+ @request.sign(@token)
78
+ @params = @request.query_hash.merge(@request.auth_hash)
79
+ end
80
+
81
+ it "should verify requests" do
82
+ request = Signature::Request.new('POST', '/some/path', @params)
83
+ request.authenticate_by_token(@token).should == true
84
+ end
85
+
86
+ it "should raise error if signature is not correct" do
87
+ @params[:auth_signature] = 'asdf'
88
+ request = Signature::Request.new('POST', '/some/path', @params)
89
+ lambda {
90
+ request.authenticate_by_token!(@token)
91
+ }.should raise_error('Invalid signature: you should have sent HmacSHA256Hex("POST\n/some/path\nauth_key=key&auth_timestamp=1234&auth_version=1.0&go=here&query=params", your_secret_key), but you sent "asdf"')
92
+ end
93
+
94
+ it "should raise error if timestamp not available" do
95
+ @params.delete(:auth_timestamp)
96
+ request = Signature::Request.new('POST', '/some/path', @params)
97
+ lambda {
98
+ request.authenticate_by_token!(@token)
99
+ }.should raise_error('Timestamp required')
100
+ end
101
+
102
+ it "should raise error if timestamp has expired (default of 600s)" do
103
+ request = Signature::Request.new('POST', '/some/path', @params)
104
+ Time.stub!(:now).and_return(Time.at(1234 + 599))
105
+ request.authenticate_by_token!(@token).should == true
106
+ Time.stub!(:now).and_return(Time.at(1234 - 599))
107
+ request.authenticate_by_token!(@token).should == true
108
+ Time.stub!(:now).and_return(Time.at(1234 + 600))
109
+ lambda {
110
+ request.authenticate_by_token!(@token)
111
+ }.should raise_error("Timestamp expired: Given timestamp (1970-01-01T00:20:34Z) not within 600s of server time (1970-01-01T00:30:34Z)")
112
+ Time.stub!(:now).and_return(Time.at(1234 - 600))
113
+ lambda {
114
+ request.authenticate_by_token!(@token)
115
+ }.should raise_error("Timestamp expired: Given timestamp (1970-01-01T00:20:34Z) not within 600s of server time (1970-01-01T00:10:34Z)")
116
+ end
117
+
118
+ it "should be possible to customize the timeout grace period" do
119
+ grace = 10
120
+ request = Signature::Request.new('POST', '/some/path', @params)
121
+ Time.stub!(:now).and_return(Time.at(1234 + grace - 1))
122
+ request.authenticate_by_token!(@token, grace).should == true
123
+ Time.stub!(:now).and_return(Time.at(1234 + grace))
124
+ lambda {
125
+ request.authenticate_by_token!(@token, grace)
126
+ }.should raise_error("Timestamp expired: Given timestamp (1970-01-01T00:20:34Z) not within 10s of server time (1970-01-01T00:20:44Z)")
127
+ end
128
+
129
+ it "should be possible to skip timestamp check by passing nil" do
130
+ request = Signature::Request.new('POST', '/some/path', @params)
131
+ Time.stub!(:now).and_return(Time.at(1234 + 1000))
132
+ request.authenticate_by_token!(@token, nil).should == true
133
+ end
134
+
135
+ it "should check that auth_version is supplied" do
136
+ @params.delete(:auth_version)
137
+ request = Signature::Request.new('POST', '/some/path', @params)
138
+ lambda {
139
+ request.authenticate_by_token!(@token)
140
+ }.should raise_error('Version required')
141
+ end
142
+
143
+ it "should check that auth_version equals 1.0" do
144
+ @params[:auth_version] = '1.1'
145
+ request = Signature::Request.new('POST', '/some/path', @params)
146
+ lambda {
147
+ request.authenticate_by_token!(@token)
148
+ }.should raise_error('Version not supported')
149
+ end
150
+
151
+ describe "when used with optional block" do
152
+ it "should optionally take a block which yields the signature" do
153
+ request = Signature::Request.new('POST', '/some/path', @params)
154
+ request.authenticate do |key|
155
+ key.should == @token.key
156
+ @token
157
+ end.should == @token
158
+ end
159
+
160
+ it "should raise error if no auth_key supplied to request" do
161
+ @params.delete(:auth_key)
162
+ request = Signature::Request.new('POST', '/some/path', @params)
163
+ lambda {
164
+ request.authenticate { |key| nil }
165
+ }.should raise_error('Authentication key required')
166
+ end
167
+
168
+ it "should raise error if block returns nil (i.e. key doesn't exist)" do
169
+ request = Signature::Request.new('POST', '/some/path', @params)
170
+ lambda {
171
+ request.authenticate { |key| nil }
172
+ }.should raise_error('Invalid authentication key')
173
+ end
174
+ end
175
+ end
176
+ end
@@ -0,0 +1,10 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
4
+ require 'rubygems'
5
+ require 'signature'
6
+ require 'rspec'
7
+
8
+ RSpec.configure do |config|
9
+
10
+ end
@@ -0,0 +1,60 @@
1
+ require 'uri'
2
+
3
+ class String #:nodoc:
4
+ def snake_case
5
+ return self.downcase if self =~ /^[A-Z]+$/
6
+ self.gsub(/([A-Z]+)(?=[A-Z][a-z]?)|\B[A-Z]/, '_\&') =~ /_*(.*)/
7
+ return $+.downcase
8
+ end unless method_defined?(:snake_case)
9
+ end # class String
10
+
11
+ class Hash #:nodoc:
12
+ # @return <String> This hash as a query string
13
+ #
14
+ # @example
15
+ # { :name => "Bob",
16
+ # :address => {
17
+ # :street => '111 Ruby Ave.',
18
+ # :city => 'Ruby Central',
19
+ # :phones => ['111-111-1111', '222-222-2222']
20
+ # }
21
+ # }.to_params
22
+ # #=> "name=Bob&address[city]=Ruby Central&address[phones][]=111-111-1111&address[phones][]=222-222-2222&address[street]=111 Ruby Ave."
23
+ def to_params
24
+ params = self.map { |k,v| normalize_param(k,v) }.join
25
+ params.chop! # trailing &
26
+ params
27
+ end
28
+
29
+ # @param key<Object> The key for the param.
30
+ # @param value<Object> The value for the param.
31
+ #
32
+ # @return <String> This key value pair as a param
33
+ #
34
+ # @example normalize_param(:name, "Bob Jones") #=> "name=Bob%20Jones&"
35
+ def normalize_param(key, value)
36
+ param = ''
37
+ stack = []
38
+
39
+ if value.is_a?(Array)
40
+ param << value.map { |element| normalize_param("#{key}[]", element) }.join
41
+ elsif value.is_a?(Hash)
42
+ stack << [key,value]
43
+ else
44
+ param << "#{key}=#{URI.encode(value.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}&"
45
+ end
46
+
47
+ stack.each do |parent, hash|
48
+ hash.each do |key, value|
49
+ if value.is_a?(Hash)
50
+ stack << ["#{parent}[#{key}]", value]
51
+ else
52
+ param << normalize_param("#{parent}[#{key}]", value)
53
+ end
54
+ end
55
+ end
56
+
57
+ param
58
+ end
59
+
60
+ end
metadata CHANGED
@@ -1,59 +1,77 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: scout
3
- version: !ruby/object:Gem::Version
4
- version: 5.3.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.4.4.alpha
5
+ prerelease: 6
5
6
  platform: ruby
6
- authors:
7
- - Scout Monitoring
7
+ authors:
8
+ - Andre Lewis
9
+ - Derek Haynes
10
+ - James Edward Gray II
8
11
  autorequire:
9
12
  bindir: bin
10
13
  cert_chain: []
11
-
12
- date: 2011-12-21 00:00:00 -08:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
14
+ date: 2011-12-09 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
16
17
  name: elif
18
+ requirement: &70156034409200 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '0'
17
24
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
25
- description: |
26
- Scout makes monitoring and reporting on your web applications as flexible and simple as possible.
25
+ prerelease: false
26
+ version_requirements: *70156034409200
27
+ description: ! 'Scout makes monitoring and reporting on your web applications as flexible
28
+ and simple as possible.
27
29
 
30
+ '
28
31
  email: support@scoutapp.com
29
- executables:
32
+ executables:
30
33
  - scout
31
34
  extensions: []
32
-
33
- extra_rdoc_files:
34
- - AUTHORS
35
- - COPYING
36
- - README
37
- - INSTALL
38
- - TODO
35
+ extra_rdoc_files: []
36
+ files:
37
+ - .gitignore
39
38
  - CHANGELOG
39
+ - Gemfile
40
40
  - LICENSE
41
- files:
41
+ - README
42
+ - Rakefile
43
+ - bin/scout
44
+ - data/cacert.pem
45
+ - data/code_id_rsa.pub
46
+ - data/gpl-2.0.txt
47
+ - data/lgpl-2.1.txt
48
+ - lib/scout.rb
49
+ - lib/scout/command.rb
42
50
  - lib/scout/command/install.rb
43
51
  - lib/scout/command/run.rb
44
52
  - lib/scout/command/sign.rb
53
+ - lib/scout/command/stream.rb
45
54
  - lib/scout/command/test.rb
46
55
  - lib/scout/command/troubleshoot.rb
47
- - lib/scout/command.rb
56
+ - lib/scout/daemon_spawn.rb
48
57
  - lib/scout/plugin.rb
49
58
  - lib/scout/plugin_options.rb
50
59
  - lib/scout/scout_logger.rb
51
60
  - lib/scout/server.rb
52
- - lib/scout.rb
53
- - data/cacert.pem
54
- - data/code_id_rsa.pub
55
- - data/gpl-2.0.txt
56
- - data/lgpl-2.1.txt
61
+ - lib/scout/server_base.rb
62
+ - lib/scout/streamer.rb
63
+ - lib/scout/streamer_control.rb
64
+ - lib/scout/version.rb
65
+ - scout.gemspec
66
+ - test/plugins/disk_usage.rb
67
+ - test/scout_test.rb
68
+ - vendor/json_pure/CHANGES
69
+ - vendor/json_pure/COPYING
70
+ - vendor/json_pure/GPL
71
+ - vendor/json_pure/README
72
+ - vendor/json_pure/Rakefile
73
+ - vendor/json_pure/TODO
74
+ - vendor/json_pure/VERSION
57
75
  - vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log
58
76
  - vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat
59
77
  - vendor/json_pure/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat
@@ -93,8 +111,6 @@ files:
93
111
  - vendor/json_pure/benchmarks/parser_benchmark.rb
94
112
  - vendor/json_pure/bin/edit_json.rb
95
113
  - vendor/json_pure/bin/prettify_json.rb
96
- - vendor/json_pure/CHANGES
97
- - vendor/json_pure/COPYING
98
114
  - vendor/json_pure/data/example.json
99
115
  - vendor/json_pure/data/index.html
100
116
  - vendor/json_pure/data/prototype.js
@@ -105,29 +121,26 @@ files:
105
121
  - vendor/json_pure/ext/json/ext/parser/parser.c
106
122
  - vendor/json_pure/ext/json/ext/parser/parser.h
107
123
  - vendor/json_pure/ext/json/ext/parser/parser.rl
108
- - vendor/json_pure/GPL
109
124
  - vendor/json_pure/install.rb
110
- - vendor/json_pure/lib/json/add/core.rb
111
- - vendor/json_pure/lib/json/add/rails.rb
125
+ - vendor/json_pure/lib/json.rb
112
126
  - vendor/json_pure/lib/json/Array.xpm
113
- - vendor/json_pure/lib/json/common.rb
114
- - vendor/json_pure/lib/json/editor.rb
115
- - vendor/json_pure/lib/json/ext.rb
116
127
  - vendor/json_pure/lib/json/FalseClass.xpm
117
128
  - vendor/json_pure/lib/json/Hash.xpm
118
- - vendor/json_pure/lib/json/json.xpm
119
129
  - vendor/json_pure/lib/json/Key.xpm
120
130
  - vendor/json_pure/lib/json/NilClass.xpm
121
131
  - vendor/json_pure/lib/json/Numeric.xpm
122
- - vendor/json_pure/lib/json/pure/generator.rb
123
- - vendor/json_pure/lib/json/pure/parser.rb
124
- - vendor/json_pure/lib/json/pure.rb
125
132
  - vendor/json_pure/lib/json/String.xpm
126
133
  - vendor/json_pure/lib/json/TrueClass.xpm
134
+ - vendor/json_pure/lib/json/add/core.rb
135
+ - vendor/json_pure/lib/json/add/rails.rb
136
+ - vendor/json_pure/lib/json/common.rb
137
+ - vendor/json_pure/lib/json/editor.rb
138
+ - vendor/json_pure/lib/json/ext.rb
139
+ - vendor/json_pure/lib/json/json.xpm
140
+ - vendor/json_pure/lib/json/pure.rb
141
+ - vendor/json_pure/lib/json/pure/generator.rb
142
+ - vendor/json_pure/lib/json/pure/parser.rb
127
143
  - vendor/json_pure/lib/json/version.rb
128
- - vendor/json_pure/lib/json.rb
129
- - vendor/json_pure/Rakefile
130
- - vendor/json_pure/README
131
144
  - vendor/json_pure/tests/fixtures/fail1.json
132
145
  - vendor/json_pure/tests/fixtures/fail10.json
133
146
  - vendor/json_pure/tests/fixtures/fail11.json
@@ -166,48 +179,71 @@ files:
166
179
  - vendor/json_pure/tests/test_json_generate.rb
167
180
  - vendor/json_pure/tests/test_json_rails.rb
168
181
  - vendor/json_pure/tests/test_json_unicode.rb
169
- - vendor/json_pure/TODO
170
182
  - vendor/json_pure/tools/fuzz.rb
171
183
  - vendor/json_pure/tools/server.rb
172
- - vendor/json_pure/VERSION
173
- - Rakefile
174
- - AUTHORS
175
- - COPYING
176
- - README
177
- - INSTALL
178
- - TODO
179
- - CHANGELOG
180
- - LICENSE
181
- has_rdoc: true
184
+ - vendor/pusher-gem/Gemfile
185
+ - vendor/pusher-gem/LICENSE
186
+ - vendor/pusher-gem/README.md
187
+ - vendor/pusher-gem/Rakefile
188
+ - vendor/pusher-gem/examples/async_message.rb
189
+ - vendor/pusher-gem/lib/pusher.rb
190
+ - vendor/pusher-gem/lib/pusher/channel.rb
191
+ - vendor/pusher-gem/lib/pusher/request.rb
192
+ - vendor/pusher-gem/pusher.gemspec
193
+ - vendor/pusher-gem/spec/channel_spec.rb
194
+ - vendor/pusher-gem/spec/pusher_spec.rb
195
+ - vendor/pusher-gem/spec/spec_helper.rb
196
+ - vendor/ruby-hmac/History.txt
197
+ - vendor/ruby-hmac/Manifest.txt
198
+ - vendor/ruby-hmac/README.md
199
+ - vendor/ruby-hmac/Rakefile
200
+ - vendor/ruby-hmac/lib/hmac-md5.rb
201
+ - vendor/ruby-hmac/lib/hmac-rmd160.rb
202
+ - vendor/ruby-hmac/lib/hmac-sha1.rb
203
+ - vendor/ruby-hmac/lib/hmac-sha2.rb
204
+ - vendor/ruby-hmac/lib/hmac.rb
205
+ - vendor/ruby-hmac/lib/ruby_hmac.rb
206
+ - vendor/ruby-hmac/ruby-hmac.gemspec
207
+ - vendor/ruby-hmac/test/test_hmac.rb
208
+ - vendor/signature/.document
209
+ - vendor/signature/.gitignore
210
+ - vendor/signature/Gemfile
211
+ - vendor/signature/Gemfile.lock
212
+ - vendor/signature/LICENSE
213
+ - vendor/signature/README.md
214
+ - vendor/signature/Rakefile
215
+ - vendor/signature/VERSION
216
+ - vendor/signature/lib/signature.rb
217
+ - vendor/signature/lib/signature/version.rb
218
+ - vendor/signature/signature.gemspec
219
+ - vendor/signature/spec/signature_spec.rb
220
+ - vendor/signature/spec/spec_helper.rb
221
+ - vendor/util/lib/core_extensions.rb
182
222
  homepage: http://scoutapp.com
183
223
  licenses: []
184
-
185
224
  post_install_message:
186
- rdoc_options:
187
- - --title
188
- - Scout Client Documentation
189
- - --main
190
- - README
191
- require_paths:
225
+ rdoc_options: []
226
+ require_paths:
192
227
  - lib
193
- required_ruby_version: !ruby/object:Gem::Requirement
194
- requirements:
195
- - - ">="
196
- - !ruby/object:Gem::Version
197
- version: "0"
198
- version:
199
- required_rubygems_version: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - ">="
202
- - !ruby/object:Gem::Version
203
- version: "0"
204
- version:
228
+ required_ruby_version: !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ required_rubygems_version: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ! '>'
238
+ - !ruby/object:Gem::Version
239
+ version: 1.3.1
205
240
  requirements: []
206
-
207
241
  rubyforge_project: scout
208
- rubygems_version: 1.3.5
242
+ rubygems_version: 1.8.10
209
243
  signing_key:
210
244
  specification_version: 3
211
- summary: Scout makes monitoring and reporting on your web applications as flexible and simple as possible.
212
- test_files: []
213
-
245
+ summary: Web-based monitoring, reporting, and alerting for your servers, clusters,
246
+ and applications.
247
+ test_files:
248
+ - test/plugins/disk_usage.rb
249
+ - test/scout_test.rb