wackamole 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -1
- data/Rakefile +5 -4
- data/bin/wackamole +0 -2
- data/lib/app.rb +4 -3
- data/lib/controllers/logs.rb +1 -1
- data/lib/helpers/flash_helper.rb +2 -2
- data/lib/helpers/mission_helper.rb +1 -1
- data/lib/wackamole.rb +1 -1
- data/lib/wackamole/models/mole_info.rb +2 -4
- data/lib/wackamole/models/search_filter.rb +1 -1
- data/spec/wackamole/models/search_filter_spec.rb +1 -1
- data/tasks/rdoc.rake +1 -1
- metadata +108 -48
data/History.txt
CHANGED
@@ -34,4 +34,10 @@
|
|
34
34
|
* Added support for auth on mongo instance - see README for info
|
35
35
|
|
36
36
|
=== 0.1.0 /2010-03-10
|
37
|
-
* Cleaning up
|
37
|
+
* Cleaning up
|
38
|
+
|
39
|
+
=== 0.1.1
|
40
|
+
=== 0.1.2
|
41
|
+
=== 0.1.3
|
42
|
+
* Updated to mongo 1.0.1
|
43
|
+
NOTE: mongo ruby driver api changed broke OrderedHash
|
data/Rakefile
CHANGED
@@ -30,14 +30,15 @@ PROJ.rdoc.include = %w[.rb]
|
|
30
30
|
|
31
31
|
# Dependencies
|
32
32
|
depend_on "rack" , ">= 1.1.0"
|
33
|
-
depend_on "mongo" , ">= 0.
|
34
|
-
depend_on "
|
33
|
+
depend_on "mongo" , ">= 1.0.1"
|
34
|
+
depend_on "bson" , ">= 1.0.1"
|
35
|
+
depend_on "bson_ext" , ">= 1.0.1"
|
35
36
|
depend_on "agnostic-will_paginate", ">= 3.0.0"
|
36
37
|
depend_on "memcache-client" , ">= 1.5.0"
|
37
38
|
depend_on "main" , ">= 4.2.0"
|
38
|
-
depend_on "sinatra" , ">= 0
|
39
|
+
depend_on "sinatra" , ">= 1.0"
|
39
40
|
depend_on "mongo_rack" , ">= 0.0.3"
|
40
41
|
depend_on "rackamole" , ">= 0.0.3"
|
41
42
|
|
42
43
|
# Rake
|
43
|
-
task :default => ['fixtures:load','spec:run']
|
44
|
+
task :default => ['fixtures:load','spec:run']
|
data/bin/wackamole
CHANGED
data/lib/app.rb
CHANGED
@@ -6,6 +6,7 @@ gem 'agnostic-will_paginate'
|
|
6
6
|
require 'will_paginate'
|
7
7
|
require 'mongo_rack'
|
8
8
|
require 'rackamole'
|
9
|
+
# require 'memcache/event_machine'
|
9
10
|
require File.expand_path( File.join( File.dirname(__FILE__), 'wackamole.rb' ) )
|
10
11
|
|
11
12
|
set :public, File.join( File.dirname(__FILE__), %w[.. public] )
|
@@ -19,13 +20,13 @@ end
|
|
19
20
|
# Configurations
|
20
21
|
|
21
22
|
# configure :production do
|
22
|
-
|
23
|
+
set :logging, false
|
23
24
|
# set :sessions, true
|
24
25
|
# end
|
25
26
|
|
26
27
|
configure do
|
27
28
|
set :sessions, false
|
28
|
-
set :logging,
|
29
|
+
set :logging, false
|
29
30
|
|
30
31
|
Wackamole.load_all_libs_relative_to(__FILE__, 'helpers' )
|
31
32
|
Wackamole.load_all_libs_relative_to(__FILE__, 'controllers' )
|
@@ -85,4 +86,4 @@ before do
|
|
85
86
|
# session[:app_info] = nil
|
86
87
|
# end
|
87
88
|
end
|
88
|
-
end
|
89
|
+
end
|
data/lib/controllers/logs.rb
CHANGED
@@ -33,7 +33,7 @@ module Logs
|
|
33
33
|
# ---------------------------------------------------------------------------
|
34
34
|
# Fecth info about a particular log
|
35
35
|
get "/logs/:id/show" do
|
36
|
-
@log = Wackamole::Log.find_one(
|
36
|
+
@log = Wackamole::Log.find_one( BSON::ObjectID.from_string( params[:id] ) )
|
37
37
|
erb :"logs/show", :layout => false
|
38
38
|
end
|
39
39
|
|
data/lib/helpers/flash_helper.rb
CHANGED
@@ -3,14 +3,14 @@ module FlashHelper
|
|
3
3
|
|
4
4
|
# clear out flash object
|
5
5
|
def clear_flash!
|
6
|
-
@flash = session[:flash] || OrderedHash.new
|
6
|
+
@flash = session[:flash] || BSON::OrderedHash.new
|
7
7
|
@flash.clear
|
8
8
|
session[:flash] = @flash
|
9
9
|
end
|
10
10
|
|
11
11
|
# add flash message
|
12
12
|
def flash_it!( type, msg )
|
13
|
-
@flash = session[:flash] || OrderedHash.new
|
13
|
+
@flash = session[:flash] || BSON::OrderedHash.new
|
14
14
|
@flash[type] = msg
|
15
15
|
session[:flash] = @flash
|
16
16
|
end
|
data/lib/wackamole.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Wackamole
|
2
2
|
|
3
3
|
# :stopdoc:
|
4
|
-
VERSION = '0.1.
|
4
|
+
VERSION = '0.1.3' unless defined? Wackamole::VERSION
|
5
5
|
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR unless defined? Wackamole::LIBPATH
|
6
6
|
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR unless defined? Wackamole::PATH
|
7
7
|
# :startdoc:
|
@@ -20,22 +20,20 @@ module Wackamole
|
|
20
20
|
# Fetch day logs
|
21
21
|
utc_time = now.clone.utc
|
22
22
|
conds = SearchFilter.time_conds( now, 0 )
|
23
|
-
|
23
|
+
|
24
24
|
day_logs = logs_cltn.find( conds,
|
25
25
|
:fields => [:typ, :fid, :tid, :did, :uid],
|
26
26
|
:sort => [ [:tid => Mongo::ASCENDING] ] )
|
27
|
-
# puts "Found logs #{day_logs.count}"
|
28
27
|
# Count all logs per hourly time period
|
29
28
|
users = Set.new
|
30
29
|
features = Set.new
|
31
30
|
local_time = now.clone.localtime
|
32
31
|
hours = (0...24).to_a
|
33
|
-
hour_info = hours.inject(OrderedHash.new) { |res,hour| res[hour] = { :user => 0, :feature => 0, :perf => 0, :fault => 0 };res }
|
32
|
+
hour_info = hours.inject(BSON::OrderedHash.new) { |res,hour| res[hour] = { :user => 0, :feature => 0, :perf => 0, :fault => 0 };res }
|
34
33
|
user_per_hour = {}
|
35
34
|
day_logs.each do |log|
|
36
35
|
date_tokens = log['did'].match( /(\d{4})(\d{2})(\d{2})/ ).captures
|
37
36
|
time_tokens = log['tid'].match( /(\d{2})(\d{2})(\d{2})/ ).captures
|
38
|
-
# puts "#{log['did']} - #{log['tid']} - #{log['uid']}"
|
39
37
|
log_utc = Time.utc( date_tokens[0], date_tokens[1], date_tokens[2], time_tokens[0], time_tokens[1], time_tokens[2] )
|
40
38
|
local = log_utc.clone.localtime
|
41
39
|
hour = local.hour
|
@@ -178,7 +178,7 @@ module Wackamole
|
|
178
178
|
|
179
179
|
# filter mole_features
|
180
180
|
unless feature_id.to_s == "-1"
|
181
|
-
conds[:fid] =
|
181
|
+
conds[:fid] = BSON::ObjectID.from_string( feature_id )
|
182
182
|
end
|
183
183
|
|
184
184
|
if search_terms and !search_terms.empty?
|
@@ -93,7 +93,7 @@ describe Wackamole::SearchFilter do
|
|
93
93
|
conds = @filter.to_conds
|
94
94
|
time = Chronic.parse( "now" ).utc
|
95
95
|
conds.should have(2).items
|
96
|
-
conds[:fid].should ==
|
96
|
+
conds[:fid].should == BSON::ObjectID.from_string( "4b25b0049983a8a193000010" )
|
97
97
|
end
|
98
98
|
|
99
99
|
describe "search terms" do
|
data/tasks/rdoc.rake
CHANGED
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wackamole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Fernand Galiana
|
@@ -9,109 +14,162 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-06-04 00:00:00 -06:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: rack
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 1
|
30
|
+
- 0
|
23
31
|
version: 1.1.0
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: mongo
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
33
|
-
|
34
|
-
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 0
|
44
|
+
- 1
|
45
|
+
version: 1.0.1
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
49
|
+
name: bson
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 1
|
57
|
+
- 0
|
58
|
+
- 1
|
59
|
+
version: 1.0.1
|
37
60
|
type: :runtime
|
38
|
-
|
39
|
-
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: bson_ext
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
40
66
|
requirements:
|
41
67
|
- - ">="
|
42
68
|
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
69
|
+
segments:
|
70
|
+
- 1
|
71
|
+
- 0
|
72
|
+
- 1
|
73
|
+
version: 1.0.1
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
45
76
|
- !ruby/object:Gem::Dependency
|
46
77
|
name: agnostic-will_paginate
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
50
80
|
requirements:
|
51
81
|
- - ">="
|
52
82
|
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 3
|
85
|
+
- 0
|
86
|
+
- 0
|
53
87
|
version: 3.0.0
|
54
|
-
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id005
|
55
90
|
- !ruby/object:Gem::Dependency
|
56
91
|
name: memcache-client
|
57
|
-
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
60
94
|
requirements:
|
61
95
|
- - ">="
|
62
96
|
- !ruby/object:Gem::Version
|
97
|
+
segments:
|
98
|
+
- 1
|
99
|
+
- 5
|
100
|
+
- 0
|
63
101
|
version: 1.5.0
|
64
|
-
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id006
|
65
104
|
- !ruby/object:Gem::Dependency
|
66
105
|
name: main
|
67
|
-
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
70
108
|
requirements:
|
71
109
|
- - ">="
|
72
110
|
- !ruby/object:Gem::Version
|
111
|
+
segments:
|
112
|
+
- 4
|
113
|
+
- 2
|
114
|
+
- 0
|
73
115
|
version: 4.2.0
|
74
|
-
|
116
|
+
type: :runtime
|
117
|
+
version_requirements: *id007
|
75
118
|
- !ruby/object:Gem::Dependency
|
76
119
|
name: sinatra
|
77
|
-
|
78
|
-
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
80
122
|
requirements:
|
81
123
|
- - ">="
|
82
124
|
- !ruby/object:Gem::Version
|
83
|
-
|
84
|
-
|
125
|
+
segments:
|
126
|
+
- 1
|
127
|
+
- 0
|
128
|
+
version: "1.0"
|
129
|
+
type: :runtime
|
130
|
+
version_requirements: *id008
|
85
131
|
- !ruby/object:Gem::Dependency
|
86
132
|
name: mongo_rack
|
87
|
-
|
88
|
-
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
133
|
+
prerelease: false
|
134
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
90
135
|
requirements:
|
91
136
|
- - ">="
|
92
137
|
- !ruby/object:Gem::Version
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
- 0
|
141
|
+
- 3
|
93
142
|
version: 0.0.3
|
94
|
-
|
143
|
+
type: :runtime
|
144
|
+
version_requirements: *id009
|
95
145
|
- !ruby/object:Gem::Dependency
|
96
146
|
name: rackamole
|
97
|
-
|
98
|
-
|
99
|
-
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
prerelease: false
|
148
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
100
149
|
requirements:
|
101
150
|
- - ">="
|
102
151
|
- !ruby/object:Gem::Version
|
152
|
+
segments:
|
153
|
+
- 0
|
154
|
+
- 0
|
155
|
+
- 3
|
103
156
|
version: 0.0.3
|
104
|
-
|
157
|
+
type: :runtime
|
158
|
+
version_requirements: *id010
|
105
159
|
- !ruby/object:Gem::Dependency
|
106
160
|
name: bones
|
107
|
-
|
108
|
-
|
109
|
-
version_requirements: !ruby/object:Gem::Requirement
|
161
|
+
prerelease: false
|
162
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
110
163
|
requirements:
|
111
164
|
- - ">="
|
112
165
|
- !ruby/object:Gem::Version
|
166
|
+
segments:
|
167
|
+
- 2
|
168
|
+
- 5
|
169
|
+
- 1
|
113
170
|
version: 2.5.1
|
114
|
-
|
171
|
+
type: :development
|
172
|
+
version_requirements: *id011
|
115
173
|
description: " This is a companion sinatra app for the Rackamole framework which provides for recording\n interactions with your rack applications. Wackamole allows you to view, filter and drilldown \n on the collected moled information, hence allowing you to observe your\n applications live in the wild..."
|
116
174
|
email: fernand.galiana@gmail.com
|
117
175
|
executables:
|
@@ -350,20 +408,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
350
408
|
requirements:
|
351
409
|
- - ">="
|
352
410
|
- !ruby/object:Gem::Version
|
411
|
+
segments:
|
412
|
+
- 0
|
353
413
|
version: "0"
|
354
|
-
version:
|
355
414
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
356
415
|
requirements:
|
357
416
|
- - ">="
|
358
417
|
- !ruby/object:Gem::Version
|
418
|
+
segments:
|
419
|
+
- 0
|
359
420
|
version: "0"
|
360
|
-
version:
|
361
421
|
requirements: []
|
362
422
|
|
363
423
|
rubyforge_project: !binary |
|
364
424
|
AA==
|
365
425
|
|
366
|
-
rubygems_version: 1.3.
|
426
|
+
rubygems_version: 1.3.6
|
367
427
|
signing_key:
|
368
428
|
specification_version: 3
|
369
429
|
summary: A companion web app to Rackamole
|