profit 0.1.6 → 0.1.7
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 +4 -4
- data/lib/profit/app/public/js/main.js +12 -0
- data/lib/profit/app/views/index.erb +0 -2
- data/lib/profit/version.rb +1 -1
- data/spec/lib/server_spec.rb +2 -2
- data/spec/profit_app/chart_app_spec.rb +52 -0
- data/spec/spec_helper.rb +3 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 969014059784a1038daecb61130159475a5f1e8c
|
4
|
+
data.tar.gz: 881e0405ff428044a1a5259f46b5b2d3dfc73a75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d883e32d14df825d4de4fa6de6d95b870edf81ef4cf909120acd2b25941ba7c10cca17c58c853103d69884172b33182679d71cf26f95b349ed62a96405dcb863
|
7
|
+
data.tar.gz: 6f5b0edf6ab67d83f7c5926b172b35acb7c7335122a8d6100ec35ba5fcd39d040e58428b62d900ff303fa4b8475067eeebb7d285193b44ba3cf34ab9730c8f7e
|
@@ -19,4 +19,16 @@
|
|
19
19
|
}
|
20
20
|
charts[key] = new Chart(ctx).Line(data);
|
21
21
|
});
|
22
|
+
|
23
|
+
$('a[data-toggle="tab"]').on('shown', function (e) {
|
24
|
+
var targetAnchor = $(e.target).attr('id');
|
25
|
+
var baseUrl = document.location.href.split("#")[0];
|
26
|
+
document.location.href = baseUrl + "#" + targetAnchor;
|
27
|
+
});
|
28
|
+
|
29
|
+
$(document).ready(function() {
|
30
|
+
var targetAnchor = document.location.href.split("#")[1];
|
31
|
+
$("#" + targetAnchor).tab("show");
|
32
|
+
});
|
33
|
+
|
22
34
|
})(jQuery);
|
data/lib/profit/version.rb
CHANGED
data/spec/lib/server_spec.rb
CHANGED
@@ -66,8 +66,8 @@ describe Profit::Server do
|
|
66
66
|
|
67
67
|
set = redis.smembers("profit:keys")
|
68
68
|
expect(set.count).to eq 2
|
69
|
-
expect(set.to_a).to eq ["profit:metric:other_piece_of_code",
|
70
|
-
|
69
|
+
expect(set.to_a.sort).to eq ["profit:metric:other_piece_of_code",
|
70
|
+
"profit:metric:some_slow_piece_of_code"]
|
71
71
|
end
|
72
72
|
|
73
73
|
it "limits messages to 100" do
|
@@ -1,5 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
def current_path
|
4
|
+
["/", page.evaluate_script("document.location.href.split('/')").last].join
|
5
|
+
end
|
6
|
+
|
7
|
+
def active_link
|
8
|
+
page.find("li.active a")
|
9
|
+
end
|
10
|
+
|
3
11
|
describe 'Chart App' do
|
4
12
|
|
5
13
|
let!(:redis) { Redis.new(host: "127.0.0.1", port: 6379) }
|
@@ -21,8 +29,52 @@ describe 'Chart App' do
|
|
21
29
|
sleep 0.1
|
22
30
|
client.stop("some_foo_metric")
|
23
31
|
|
32
|
+
Timeout.timeout(1) do
|
33
|
+
sleep(0.01) until redis.smembers("profit:keys").any?
|
34
|
+
end
|
35
|
+
|
24
36
|
visit '/'
|
25
37
|
|
26
38
|
expect(page).to have_link("some_foo_metric")
|
27
39
|
end
|
40
|
+
|
41
|
+
describe "urls", js: true do
|
42
|
+
|
43
|
+
before do
|
44
|
+
client.start("metric_1")
|
45
|
+
sleep 0.1
|
46
|
+
client.stop("metric_1")
|
47
|
+
|
48
|
+
client.start("metric_2")
|
49
|
+
sleep 0.1
|
50
|
+
client.stop("metric_2")
|
51
|
+
end
|
52
|
+
|
53
|
+
it "changes the url based on the current tab" do
|
54
|
+
visit "/"
|
55
|
+
expect(active_link.text).to eq "metric_2"
|
56
|
+
expect(current_path).to eq "/"
|
57
|
+
|
58
|
+
click_link("metric_1")
|
59
|
+
|
60
|
+
expect(active_link.text).to eq "metric_1"
|
61
|
+
expect(current_url).to match(/\/\#metric_1/)
|
62
|
+
|
63
|
+
click_link("metric_2")
|
64
|
+
|
65
|
+
expect(active_link.text).to eq "metric_2"
|
66
|
+
expect(current_url).to match(/\/\#metric_2/)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "loads the tab according to the url's anchor" do
|
70
|
+
visit "/#metric_1"
|
71
|
+
|
72
|
+
expect(active_link.text).to eq "metric_1"
|
73
|
+
|
74
|
+
# TODO: have to load the page twice for now, investigate cause
|
75
|
+
visit "/#metric_2" and visit "/#metric_2"
|
76
|
+
|
77
|
+
expect(active_link.text).to eq "metric_2"
|
78
|
+
end
|
79
|
+
end
|
28
80
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,8 @@ require './lib/profit/app/chart_app'
|
|
3
3
|
require 'redis'
|
4
4
|
require 'capybara'
|
5
5
|
require 'capybara/dsl'
|
6
|
+
require 'capybara/rspec'
|
7
|
+
require 'capybara/webkit'
|
6
8
|
|
7
9
|
set :environment, :test
|
8
10
|
|
@@ -18,6 +20,7 @@ class TestServer
|
|
18
20
|
end
|
19
21
|
|
20
22
|
Capybara.app = ChartApp
|
23
|
+
Capybara.javascript_driver = :webkit
|
21
24
|
|
22
25
|
RSpec.configure do |config|
|
23
26
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: profit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Rogers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - '>='
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: capybara-webkit
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
195
209
|
description: This is a client/server combination that allows you to profile code and
|
196
210
|
send the results to a remote Redis server.
|
197
211
|
email:
|
@@ -251,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
251
265
|
version: '0'
|
252
266
|
requirements: []
|
253
267
|
rubyforge_project:
|
254
|
-
rubygems_version: 2.0.
|
268
|
+
rubygems_version: 2.0.3
|
255
269
|
signing_key:
|
256
270
|
specification_version: 4
|
257
271
|
summary: A simple library to store profiling information for ruby code.
|