scout 5.3.5 → 5.4.4.alpha

Sign up to get free protection for your applications and to get access to all the features.
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