oboe 2.2.6 → 2.3.2
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.
- data/.gitignore +6 -1
- data/Appraisals +20 -0
- data/Gemfile +16 -20
- data/README.md +280 -10
- data/Rakefile +63 -7
- data/ext/oboe_metal/extconf.rb +2 -1
- data/ext/oboe_metal/tests/test.rb +4 -0
- data/gemfiles/rails2.3.gemfile +18 -0
- data/gemfiles/rails2.3.gemfile.lock +95 -0
- data/gemfiles/rails3.0.gemfile +18 -0
- data/gemfiles/rails3.0.gemfile.lock +142 -0
- data/gemfiles/rails3.1.gemfile +18 -0
- data/gemfiles/rails3.1.gemfile.lock +152 -0
- data/gemfiles/rails3.2.gemfile +18 -0
- data/gemfiles/rails3.2.gemfile.lock +150 -0
- data/init.rb +1 -1
- data/lib/joboe_metal.rb +52 -34
- data/lib/method_profiling.rb +1 -1
- data/lib/oboe.rb +6 -5
- data/lib/oboe/api.rb +1 -1
- data/lib/oboe/api/layerinit.rb +3 -0
- data/lib/oboe/api/logging.rb +1 -1
- data/lib/oboe/api/memcache.rb +2 -2
- data/lib/oboe/api/profiling.rb +6 -4
- data/lib/oboe/api/tracing.rb +1 -1
- data/lib/oboe/api/util.rb +1 -1
- data/lib/oboe/config.rb +29 -10
- data/lib/oboe/frameworks/rails.rb +6 -7
- data/lib/oboe/frameworks/rails/inst/action_controller.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/action_view.rb +3 -3
- data/lib/oboe/frameworks/rails/inst/action_view_2x.rb +3 -3
- data/lib/oboe/frameworks/rails/inst/action_view_30.rb +3 -3
- data/lib/oboe/frameworks/rails/inst/active_record.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/mysql.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/mysql2.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/oracle.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/postgresql.rb +1 -1
- data/lib/oboe/frameworks/rails/inst/connection_adapters/utils.rb +2 -2
- data/lib/oboe/inst/cassandra.rb +2 -2
- data/lib/oboe/inst/dalli.rb +8 -4
- data/lib/oboe/inst/http.rb +38 -34
- data/lib/oboe/inst/memcache.rb +12 -3
- data/lib/oboe/inst/memcached.rb +10 -5
- data/lib/oboe/inst/mongo.rb +19 -15
- data/lib/oboe/inst/moped.rb +120 -51
- data/lib/oboe/inst/rack.rb +14 -7
- data/lib/oboe/inst/resque.rb +2 -2
- data/lib/oboe/instrumentation.rb +3 -0
- data/lib/oboe/loading.rb +2 -6
- data/lib/oboe/logger.rb +3 -1
- data/lib/oboe/ruby.rb +3 -0
- data/lib/oboe/util.rb +2 -0
- data/lib/oboe/version.rb +5 -2
- data/lib/oboe_fu.rb +2 -0
- data/lib/oboe_metal.rb +23 -10
- data/lib/rails/generators/oboe/install_generator.rb +5 -3
- data/lib/rails/generators/oboe/templates/oboe_initializer.rb +24 -2
- data/oboe.gemspec +20 -14
- data/test/instrumentation/cassandra_test.rb +331 -0
- data/test/instrumentation/dalli_test.rb +157 -0
- data/test/instrumentation/http_test.rb +74 -0
- data/test/instrumentation/memcache_test.rb +251 -0
- data/test/instrumentation/memcached_test.rb +218 -0
- data/test/instrumentation/mongo_test.rb +406 -0
- data/test/instrumentation/moped_test.rb +468 -0
- data/test/instrumentation/rack_test.rb +55 -0
- data/test/instrumentation/resque_test.rb +62 -0
- data/test/minitest_helper.rb +113 -0
- data/test/support/config_test.rb +41 -0
- metadata +56 -35
- data/Gemfile.lock +0 -103
- data/Guardfile +0 -24
- data/install.rb +0 -1
- data/spec/instrumentation/cassandra_spec.rb +0 -18
- data/spec/instrumentation/dalli_spec.rb +0 -14
- data/spec/instrumentation/http_spec.rb +0 -14
- data/spec/instrumentation/memcache_spec.rb +0 -19
- data/spec/instrumentation/memcached_spec.rb +0 -22
- data/spec/instrumentation/mongo_spec.rb +0 -29
- data/spec/instrumentation/moped_spec.rb +0 -41
- data/spec/instrumentation/resque_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -15
- data/spec/support/config_spec.rb +0 -27
- data/spec/support/oboe_spec.rb +0 -4
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'minitest_helper'
|
2
|
+
require 'rack/test'
|
3
|
+
require 'rack/lobster'
|
4
|
+
require 'oboe/inst/rack'
|
5
|
+
|
6
|
+
Oboe::Config[:tracing_mode] = 'always'
|
7
|
+
Oboe::Config[:sample_rate] = 1e6
|
8
|
+
|
9
|
+
class RackTestApp < MiniTest::Unit::TestCase
|
10
|
+
include Rack::Test::Methods
|
11
|
+
|
12
|
+
def app
|
13
|
+
@app = Rack::Builder.new {
|
14
|
+
use Rack::CommonLogger
|
15
|
+
use Rack::ShowExceptions
|
16
|
+
use Oboe::Rack
|
17
|
+
map "/lobster" do
|
18
|
+
use Rack::Lint
|
19
|
+
run Rack::Lobster.new
|
20
|
+
end
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_get_the_lobster
|
25
|
+
clear_all_traces
|
26
|
+
|
27
|
+
get "/lobster"
|
28
|
+
|
29
|
+
traces = get_all_traces
|
30
|
+
traces.count.must_equal 3
|
31
|
+
|
32
|
+
validate_outer_layers(traces, 'rack')
|
33
|
+
|
34
|
+
kvs = {}
|
35
|
+
kvs["Label"] = "entry"
|
36
|
+
validate_event_keys(traces[0], kvs)
|
37
|
+
|
38
|
+
kvs.clear
|
39
|
+
kvs["Label"] = "info"
|
40
|
+
kvs["Status"] = "200"
|
41
|
+
kvs["SampleRate"] = "1000000"
|
42
|
+
kvs["SampleSource"] = "1"
|
43
|
+
kvs["HTTP-Host"] = "example.org"
|
44
|
+
kvs["Port"] = "80"
|
45
|
+
kvs["Proto"] = "http"
|
46
|
+
kvs["URL"] = "/lobster"
|
47
|
+
kvs["Method"] = "GET"
|
48
|
+
kvs["ClientIP"] = "127.0.0.1"
|
49
|
+
validate_event_keys(traces[1], kvs)
|
50
|
+
|
51
|
+
assert last_response.ok?
|
52
|
+
assert last_response['X-Trace']
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'minitest_helper'
|
2
|
+
|
3
|
+
describe Oboe::Inst::Resque do
|
4
|
+
before do
|
5
|
+
clear_all_traces
|
6
|
+
|
7
|
+
# These are standard entry/exit KVs that are passed up with all moped operations
|
8
|
+
@entry_kvs = {
|
9
|
+
'Layer' => 'resque',
|
10
|
+
'Label' => 'entry' }
|
11
|
+
|
12
|
+
@exit_kvs = { 'Layer' => 'resque', 'Label' => 'exit' }
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'Stock Resque should be loaded, defined and ready' do
|
16
|
+
defined?(::Resque).wont_match nil
|
17
|
+
defined?(::Resque::Worker).wont_match nil
|
18
|
+
defined?(::Resque::Job).wont_match nil
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'Resque should have oboe methods defined' do
|
22
|
+
[ :enqueue, :enqueue_to, :dequeue ].each do |m|
|
23
|
+
::Resque.method_defined?("#{m}_with_oboe").must_equal true
|
24
|
+
end
|
25
|
+
|
26
|
+
::Resque::Worker.method_defined?("perform_with_oboe").must_equal true
|
27
|
+
::Resque::Job.method_defined?("fail_with_oboe").must_equal true
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should trace enqueue" do
|
31
|
+
skip
|
32
|
+
Oboe::API.start_trace('resque-client_test', '', {}) do
|
33
|
+
Resque.enqueue(OboeResqueJob, { :generate => :activerecord, :delay => rand(5..30).to_f })
|
34
|
+
Resque.enqueue(OboeResqueJobThatFails)
|
35
|
+
Resque.dequeue(OboeResqueJob, { :generate => :moped })
|
36
|
+
end
|
37
|
+
|
38
|
+
traces = get_all_traces
|
39
|
+
|
40
|
+
traces.count.must_equal 4
|
41
|
+
validate_outer_layers(traces, 'resque-client_test')
|
42
|
+
|
43
|
+
validate_event_keys(traces[1], @entry_kvs)
|
44
|
+
validate_event_keys(traces[2], @exit_kvs)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should trace dequeue" do
|
48
|
+
skip
|
49
|
+
Oboe::API.start_trace('resque-client_test', '', {}) do
|
50
|
+
Resque.dequeue(OboeResqueJob, { :generate => :moped })
|
51
|
+
end
|
52
|
+
|
53
|
+
traces = get_all_traces
|
54
|
+
|
55
|
+
traces.count.must_equal 4
|
56
|
+
validate_outer_layers(traces, 'resque-client_test')
|
57
|
+
|
58
|
+
validate_event_keys(traces[1], @entry_kvs)
|
59
|
+
validate_event_keys(traces[2], @exit_kvs)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "minitest/reporters"
|
3
|
+
|
4
|
+
ENV["RACK_ENV"] = "test"
|
5
|
+
MiniTest::Reporters.use!
|
6
|
+
|
7
|
+
require 'rubygems'
|
8
|
+
require 'bundler'
|
9
|
+
|
10
|
+
Bundler.require(:default, :test)
|
11
|
+
|
12
|
+
# Preload memcache-client
|
13
|
+
require 'memcache'
|
14
|
+
|
15
|
+
@trace_dir = File.dirname(__FILE__) + "/../tmp/"
|
16
|
+
$trace_file = @trace_dir + "trace_output.bson"
|
17
|
+
|
18
|
+
# Create a oboe-ruby/tmp dir to store trace output
|
19
|
+
Dir.mkdir @trace_dir unless File.exists?(@trace_dir) and File.directory?(@trace_dir)
|
20
|
+
|
21
|
+
# Configure Oboe
|
22
|
+
Oboe::Config[:tracing_mode] = "always"
|
23
|
+
Oboe::Config[:sample_rate] = 1000000
|
24
|
+
Oboe::Ruby.initialize
|
25
|
+
Oboe.logger.level = Logger::DEBUG
|
26
|
+
|
27
|
+
Oboe.logger.debug "[oboe/test] Debug log output test."
|
28
|
+
|
29
|
+
##
|
30
|
+
# clear_all_traces
|
31
|
+
#
|
32
|
+
# Truncates the trace output file to zero
|
33
|
+
#
|
34
|
+
def clear_all_traces
|
35
|
+
File.truncate($trace_file, 0)
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# get_all_traces
|
40
|
+
#
|
41
|
+
# Retrieves all traces written to the trace file
|
42
|
+
#
|
43
|
+
def get_all_traces
|
44
|
+
traces = []
|
45
|
+
f = File.open($trace_file)
|
46
|
+
until f.eof?
|
47
|
+
traces << BSON.read_bson_document(f)
|
48
|
+
end
|
49
|
+
traces
|
50
|
+
end
|
51
|
+
|
52
|
+
##
|
53
|
+
# validate_outer_layers
|
54
|
+
#
|
55
|
+
# Validates that the KVs in kvs are present
|
56
|
+
# in event
|
57
|
+
#
|
58
|
+
def validate_outer_layers(traces, layer)
|
59
|
+
traces.first['Layer'].must_equal layer
|
60
|
+
traces.first['Label'].must_equal 'entry'
|
61
|
+
traces.last['Layer'].must_equal layer
|
62
|
+
traces.last['Label'].must_equal 'exit'
|
63
|
+
end
|
64
|
+
|
65
|
+
##
|
66
|
+
# validate_event_keys
|
67
|
+
#
|
68
|
+
# Validates that the KVs in kvs are present
|
69
|
+
# in event
|
70
|
+
#
|
71
|
+
def validate_event_keys(event, kvs)
|
72
|
+
kvs.each do |k, v|
|
73
|
+
event.has_key?(k).must_equal true
|
74
|
+
event[k].must_equal v
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
##
|
79
|
+
# layer_has_key
|
80
|
+
#
|
81
|
+
# Checks an array of trace events if a specific layer (regardless of event type)
|
82
|
+
# has he specified key
|
83
|
+
#
|
84
|
+
def layer_has_key(traces, layer, key)
|
85
|
+
has_key = false
|
86
|
+
|
87
|
+
traces.each do |t|
|
88
|
+
if t["Layer"] == layer and t.has_key?(key)
|
89
|
+
has_key = true
|
90
|
+
|
91
|
+
(t["Backtrace"].length > 0).must_equal true
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
has_key.must_equal true
|
96
|
+
end
|
97
|
+
|
98
|
+
##
|
99
|
+
# layer_doesnt_have_key
|
100
|
+
#
|
101
|
+
# Checks an array of trace events to assure that a specific layer
|
102
|
+
# (regardless of event type) doesn't have the specified key
|
103
|
+
#
|
104
|
+
def layer_doesnt_have_key(traces, layer, key)
|
105
|
+
has_key = false
|
106
|
+
|
107
|
+
traces.each do |t|
|
108
|
+
has_key = true if t["Layer"] == layer and t.has_key?(key)
|
109
|
+
end
|
110
|
+
|
111
|
+
has_key.must_equal false
|
112
|
+
end
|
113
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'minitest_helper'
|
2
|
+
|
3
|
+
describe Oboe::Config do
|
4
|
+
after do
|
5
|
+
# Set back to always trace mode
|
6
|
+
Oboe::Config[:tracing_mode] = "always"
|
7
|
+
Oboe::Config[:sample_rate] = 1000000
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should have the correct default values' do
|
11
|
+
# Reset Oboe::Config to defaults
|
12
|
+
Oboe::Config.initialize
|
13
|
+
|
14
|
+
Oboe::Config[:verbose].must_equal false
|
15
|
+
Oboe::Config[:sample_source].must_equal 2
|
16
|
+
Oboe::Config[:sample_rate].must_equal 300000
|
17
|
+
Oboe::Config[:tracing_mode].must_equal "through"
|
18
|
+
Oboe::Config[:reporter_host].must_equal "127.0.0.1"
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should have the correct instrumentation defaults' do
|
22
|
+
# Reset Oboe::Config to defaults
|
23
|
+
Oboe::Config.initialize
|
24
|
+
|
25
|
+
instrumentation = [ :cassandra, :dalli, :nethttp, :memcached, :memcache, :mongo,
|
26
|
+
:moped, :rack, :resque, :action_controller, :action_view,
|
27
|
+
:active_record ]
|
28
|
+
|
29
|
+
# Verify the number of individual instrumentations
|
30
|
+
instrumentation.count.must_equal 12
|
31
|
+
|
32
|
+
instrumentation.each do |k|
|
33
|
+
Oboe::Config[k][:enabled].must_equal true
|
34
|
+
Oboe::Config[k][:log_args].must_equal true
|
35
|
+
end
|
36
|
+
|
37
|
+
Oboe::Config[:resque][:link_workers].must_equal false
|
38
|
+
Oboe::Config[:blacklist].is_a?(Array).must_equal true
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
metadata
CHANGED
@@ -1,21 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oboe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
+
- 3
|
8
9
|
- 2
|
9
|
-
|
10
|
-
version: 2.2.6
|
10
|
+
version: 2.3.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
|
-
-
|
13
|
+
- Peter Giacomo Lombardo
|
14
|
+
- Spiros Eliopoulos
|
14
15
|
autorequire:
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2013-
|
19
|
+
date: 2013-10-22 00:00:00 Z
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rake
|
@@ -32,7 +33,7 @@ dependencies:
|
|
32
33
|
type: :development
|
33
34
|
version_requirements: *id001
|
34
35
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
36
|
+
name: minitest
|
36
37
|
prerelease: false
|
37
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
39
|
none: false
|
@@ -45,8 +46,22 @@ dependencies:
|
|
45
46
|
version: "0"
|
46
47
|
type: :development
|
47
48
|
version_requirements: *id002
|
48
|
-
|
49
|
-
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: bson
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
63
|
+
description: The oboe gem provides TraceView instrumentation for Ruby and Ruby frameworks.
|
64
|
+
email: traceviewsupport@appneta.com
|
50
65
|
executables: []
|
51
66
|
|
52
67
|
extensions:
|
@@ -55,10 +70,9 @@ extra_rdoc_files:
|
|
55
70
|
- LICENSE
|
56
71
|
files:
|
57
72
|
- .gitignore
|
73
|
+
- Appraisals
|
58
74
|
- CHANGELOG
|
59
75
|
- Gemfile
|
60
|
-
- Gemfile.lock
|
61
|
-
- Guardfile
|
62
76
|
- LICENSE
|
63
77
|
- README.md
|
64
78
|
- Rakefile
|
@@ -70,9 +84,16 @@ files:
|
|
70
84
|
- ext/oboe_metal/src/oboe.hpp
|
71
85
|
- ext/oboe_metal/src/oboe_wrap.cxx
|
72
86
|
- ext/oboe_metal/tests/test.rb
|
87
|
+
- gemfiles/rails2.3.gemfile
|
88
|
+
- gemfiles/rails2.3.gemfile.lock
|
89
|
+
- gemfiles/rails3.0.gemfile
|
90
|
+
- gemfiles/rails3.0.gemfile.lock
|
91
|
+
- gemfiles/rails3.1.gemfile
|
92
|
+
- gemfiles/rails3.1.gemfile.lock
|
93
|
+
- gemfiles/rails3.2.gemfile
|
94
|
+
- gemfiles/rails3.2.gemfile.lock
|
73
95
|
- get_version.rb
|
74
96
|
- init.rb
|
75
|
-
- install.rb
|
76
97
|
- lib/joboe_metal.rb
|
77
98
|
- lib/method_profiling.rb
|
78
99
|
- lib/oboe.rb
|
@@ -120,18 +141,18 @@ files:
|
|
120
141
|
- oboe.gemspec
|
121
142
|
- oboe_fu.gemspec
|
122
143
|
- release.sh
|
123
|
-
-
|
124
|
-
-
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
-
|
129
|
-
-
|
130
|
-
-
|
131
|
-
-
|
132
|
-
-
|
133
|
-
-
|
134
|
-
homepage: http://
|
144
|
+
- test/instrumentation/cassandra_test.rb
|
145
|
+
- test/instrumentation/dalli_test.rb
|
146
|
+
- test/instrumentation/http_test.rb
|
147
|
+
- test/instrumentation/memcache_test.rb
|
148
|
+
- test/instrumentation/memcached_test.rb
|
149
|
+
- test/instrumentation/mongo_test.rb
|
150
|
+
- test/instrumentation/moped_test.rb
|
151
|
+
- test/instrumentation/rack_test.rb
|
152
|
+
- test/instrumentation/resque_test.rb
|
153
|
+
- test/minitest_helper.rb
|
154
|
+
- test/support/config_test.rb
|
155
|
+
homepage: http://www.appneta.com/application-performance-management
|
135
156
|
licenses: []
|
136
157
|
|
137
158
|
post_install_message:
|
@@ -163,16 +184,16 @@ rubyforge_project:
|
|
163
184
|
rubygems_version: 1.8.15
|
164
185
|
signing_key:
|
165
186
|
specification_version: 3
|
166
|
-
summary:
|
187
|
+
summary: AppNeta TraceView performance instrumentation gem for Ruby
|
167
188
|
test_files:
|
168
|
-
-
|
169
|
-
-
|
170
|
-
-
|
171
|
-
-
|
172
|
-
-
|
173
|
-
-
|
174
|
-
-
|
175
|
-
-
|
176
|
-
-
|
177
|
-
-
|
178
|
-
-
|
189
|
+
- test/minitest_helper.rb
|
190
|
+
- test/support/config_test.rb
|
191
|
+
- test/instrumentation/memcached_test.rb
|
192
|
+
- test/instrumentation/memcache_test.rb
|
193
|
+
- test/instrumentation/dalli_test.rb
|
194
|
+
- test/instrumentation/http_test.rb
|
195
|
+
- test/instrumentation/cassandra_test.rb
|
196
|
+
- test/instrumentation/resque_test.rb
|
197
|
+
- test/instrumentation/rack_test.rb
|
198
|
+
- test/instrumentation/moped_test.rb
|
199
|
+
- test/instrumentation/mongo_test.rb
|
data/Gemfile.lock
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
oboe (2.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
bson (1.8.2)
|
10
|
-
bson_ext (1.8.2)
|
11
|
-
bson (~> 1.8.2)
|
12
|
-
cassandra (0.17.0)
|
13
|
-
json
|
14
|
-
rake
|
15
|
-
simple_uuid (~> 0.2.0)
|
16
|
-
thrift_client (>= 0.7.0, < 0.9)
|
17
|
-
coderay (1.0.9)
|
18
|
-
dalli (2.6.2)
|
19
|
-
diff-lcs (1.1.3)
|
20
|
-
ffi (1.4.0)
|
21
|
-
guard (1.6.2)
|
22
|
-
listen (>= 0.6.0)
|
23
|
-
lumberjack (>= 1.0.2)
|
24
|
-
pry (>= 0.9.10)
|
25
|
-
terminal-table (>= 1.4.3)
|
26
|
-
thor (>= 0.14.6)
|
27
|
-
guard-rspec (2.4.1)
|
28
|
-
guard (>= 1.1)
|
29
|
-
rspec (~> 2.11)
|
30
|
-
json (1.7.7)
|
31
|
-
listen (0.7.3)
|
32
|
-
lumberjack (1.0.2)
|
33
|
-
memcache-client (1.8.5)
|
34
|
-
memcached (1.5.0)
|
35
|
-
method_source (0.8.1)
|
36
|
-
mongo (1.8.2)
|
37
|
-
bson (~> 1.8.2)
|
38
|
-
moped (1.4.2)
|
39
|
-
multi_json (1.6.1)
|
40
|
-
pry (0.9.12)
|
41
|
-
coderay (~> 1.0.5)
|
42
|
-
method_source (~> 0.8)
|
43
|
-
slop (~> 3.4)
|
44
|
-
rack (1.4.5)
|
45
|
-
rack-protection (1.3.2)
|
46
|
-
rack
|
47
|
-
rake (10.0.3)
|
48
|
-
rb-fchange (0.0.6)
|
49
|
-
ffi
|
50
|
-
rb-fsevent (0.9.3)
|
51
|
-
rb-inotify (0.9.0)
|
52
|
-
ffi (>= 0.5.0)
|
53
|
-
redis (3.0.2)
|
54
|
-
redis-namespace (1.2.1)
|
55
|
-
redis (~> 3.0.0)
|
56
|
-
resque (1.23.0)
|
57
|
-
multi_json (~> 1.0)
|
58
|
-
redis-namespace (~> 1.0)
|
59
|
-
sinatra (>= 0.9.2)
|
60
|
-
vegas (~> 0.1.2)
|
61
|
-
rspec (2.11.0)
|
62
|
-
rspec-core (~> 2.11.0)
|
63
|
-
rspec-expectations (~> 2.11.0)
|
64
|
-
rspec-mocks (~> 2.11.0)
|
65
|
-
rspec-core (2.11.1)
|
66
|
-
rspec-expectations (2.11.3)
|
67
|
-
diff-lcs (~> 1.1.3)
|
68
|
-
rspec-mocks (2.11.2)
|
69
|
-
simple_uuid (0.2.0)
|
70
|
-
sinatra (1.3.4)
|
71
|
-
rack (~> 1.4)
|
72
|
-
rack-protection (~> 1.3)
|
73
|
-
tilt (~> 1.3, >= 1.3.3)
|
74
|
-
slop (3.4.3)
|
75
|
-
terminal-table (1.4.5)
|
76
|
-
thor (0.17.0)
|
77
|
-
thrift (0.8.0)
|
78
|
-
thrift_client (0.8.3)
|
79
|
-
thrift (~> 0.8.0)
|
80
|
-
tilt (1.3.3)
|
81
|
-
vegas (0.1.11)
|
82
|
-
rack (>= 1.0.0)
|
83
|
-
|
84
|
-
PLATFORMS
|
85
|
-
ruby
|
86
|
-
|
87
|
-
DEPENDENCIES
|
88
|
-
bson_ext
|
89
|
-
cassandra
|
90
|
-
dalli
|
91
|
-
guard
|
92
|
-
guard-rspec
|
93
|
-
memcache-client
|
94
|
-
memcached
|
95
|
-
mongo
|
96
|
-
moped
|
97
|
-
oboe!
|
98
|
-
rake
|
99
|
-
rb-fchange
|
100
|
-
rb-fsevent
|
101
|
-
rb-inotify
|
102
|
-
resque
|
103
|
-
rspec
|