rackamole 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -58,4 +58,16 @@
58
58
 
59
59
  0.3.3
60
60
  * Added support for rackamole store authentication
61
- * Fixed issue to enforce regexp when excluded path are specified as strings.
61
+ * Fixed issue to enforce regexp when excluded path are specified as strings.
62
+
63
+ 0.3.4
64
+ * Bugs and clean up
65
+
66
+ 0.3.5
67
+ * Bugs and clean up
68
+
69
+ 0.3.6
70
+ * Added growl notification alerts
71
+
72
+ 0.3.7 Updates to use the latest mongo ruby gem
73
+ NOTE: Some api changed in this version of the mongo ruby driver and hosed OrderedHash refs.
data/README.rdoc CHANGED
@@ -109,7 +109,34 @@
109
109
 
110
110
  NOTE: Rackamole also provides for preventing certain sensitive params from being logged. You can specify
111
111
  param_excludes or session_excludes as array of symbols to exclude specific request or session params.
112
-
112
+
113
+ === Alerting
114
+
115
+ Rackamole provides 3 different kind of alerting mechanisms: twitter, email, growl
116
+ Please see docs for the various configuration settings.
117
+
118
+ For example to setup email alerts, add the following lines in your rackamole config file.
119
+
120
+ # Email
121
+ email: &email
122
+ :from: 'rackamole@acme.com'
123
+ :to:
124
+ - 'fernand@acme.com'
125
+ - 'molley@acme.com'
126
+ :alert_on:
127
+ - <%=Rackamole.perf%>
128
+ - <%=Rackamole.fault%>
129
+
130
+ Then
131
+
132
+ # => Dev
133
+ development:
134
+ :app_name: Killer App
135
+ :user_key: :user_name
136
+ :email: *email
137
+
138
+ This will setup email alerts when rackamole detect performance or uncaught exceptions
139
+
113
140
  == LICENSE:
114
141
 
115
142
  (The MIT License)
data/Rakefile CHANGED
@@ -27,8 +27,9 @@ PROJ.rcov.opts = ["--sort", "coverage", "-T", '-x mongo']
27
27
  # Dependencies
28
28
  depend_on "logging" , ">= 1.2.2"
29
29
  depend_on "hitimes" , ">= 1.0.3"
30
- depend_on "mongo" , ">= 0.17.1"
31
- depend_on "mongo_ext" , ">= 0.17.1"
30
+ depend_on "mongo" , ">= 1.0.1"
31
+ depend_on "bson" , ">= 1.0.1"
32
+ depend_on "bson_ext" , ">= 1.0.1"
32
33
  depend_on "chronic" , ">= 0.2.3"
33
34
  depend_on "twitter4r" , ">= 0.3.0"
34
35
  depend_on "erubis" , ">= 2.6.0"
data/lib/rackamole.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Rackamole
2
2
 
3
3
  # :stopdoc:
4
- VERSION = '0.3.6'
4
+ VERSION = '0.3.7'
5
5
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
6
6
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
7
7
  # :startdoc:
@@ -291,7 +291,7 @@ module Rack
291
291
  ;
292
292
  end
293
293
 
294
- info = OrderedHash.new
294
+ info = BSON::OrderedHash.new
295
295
 
296
296
  return info unless mole_request?( request )
297
297
 
@@ -385,7 +385,7 @@ module Rack
385
385
 
386
386
  # filters out params hash and convert values to json
387
387
  def filter_params( source, excludes )
388
- results = OrderedHash.new
388
+ results = BSON::OrderedHash.new
389
389
  source.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k|
390
390
  results[k.to_sym] = source[k].to_json unless excludes.include?( k.to_sym )
391
391
  end
@@ -12,7 +12,7 @@ describe Rackamole::Alert::Emole do
12
12
 
13
13
  @options = { :email => { :from => @from, :to => @to }, :perf_threshold => 10 }
14
14
 
15
- @args = OrderedHash.new
15
+ @args = BSON::OrderedHash.new
16
16
  @args[:type] = Rackamole.feature
17
17
  @args[:method] = "POST"
18
18
  @args[:status] = 200
@@ -25,25 +25,25 @@ describe Rackamole::Alert::Emole do
25
25
  @args[:request_time] = 0.55
26
26
  @args[:ruby_version] = "ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.0.0]"
27
27
 
28
- @args[:params] = OrderedHash.new
28
+ @args[:params] = BSON::OrderedHash.new
29
29
  @args[:params][:id] = 10
30
30
  @args[:params][:fred] = [10,20,30]
31
31
 
32
- @args[:session] = OrderedHash.new
32
+ @args[:session] = BSON::OrderedHash.new
33
33
  @args[:session][:blee] = "Hello World"
34
34
  @args[:session][:fred] = [10,20,30]
35
35
 
36
- @args[:headers] = OrderedHash.new
36
+ @args[:headers] = BSON::OrderedHash.new
37
37
  @args[:headers]['Cache-Control'] = "no-cache"
38
38
  @args[:headers]['Content-Type'] = "text/html; charset=utf-8"
39
39
  @args[:headers]['Content-Length'] = "17911"
40
40
  @args[:headers]['Set-Cookie'] = "fred"
41
41
 
42
- @args[:browser] = OrderedHash.new
42
+ @args[:browser] = BSON::OrderedHash.new
43
43
  @args[:browser][:name] = "Chromey"
44
44
  @args[:browser][:version] = "1.12.23.54"
45
45
 
46
- @args[:machine] = OrderedHash.new
46
+ @args[:machine] = BSON::OrderedHash.new
47
47
  @args[:machine][:platform] = "Windoze"
48
48
  @args[:machine][:os] = "Windows NT"
49
49
  @args[:machine][:version] = "3.5"
@@ -19,7 +19,7 @@ describe Rackamole::Alert::Growl do
19
19
 
20
20
  describe '#send_alert' do
21
21
  before( :each ) do
22
- @args = OrderedHash.new
22
+ @args = BSON::OrderedHash.new
23
23
  @args[:type] = Rackamole.feature
24
24
  @args[:app_name] = 'Test'
25
25
  @args[:host] = 'Fred'
@@ -22,7 +22,7 @@ describe Rackamole::Alert::Twitt do
22
22
 
23
23
  describe '#send_alert' do
24
24
  before( :each ) do
25
- @args = OrderedHash.new
25
+ @args = BSON::OrderedHash.new
26
26
  @args[:type] = Rackamole.feature
27
27
  @args[:app_name] = 'Test'
28
28
  @args[:host] = 'Fred'
@@ -8,15 +8,15 @@ describe Rackamole::Store::Log do
8
8
 
9
9
  @store = Rackamole::Store::Log.new( @test_file )
10
10
 
11
- @args = OrderedHash.new
11
+ @args = BSON::OrderedHash.new
12
12
  @args[:type] = Rackamole.feature
13
13
  @args[:app_name] = "Test app"
14
14
  @args[:environment] = :test
15
15
  @args[:ip] = "1.1.1.1"
16
- @args[:browser] = OrderedHash.new
16
+ @args[:browser] = BSON::OrderedHash.new
17
17
  @args[:browser][:name] = "Ibrowse"
18
18
  @args[:browser][:version] = "1.X"
19
- @args[:machine] = OrderedHash.new
19
+ @args[:machine] = BSON::OrderedHash.new
20
20
  @args[:machine][:platform] = "Blee"
21
21
  @args[:machine][:os] = "Windoze"
22
22
  @args[:machine][:version] = "10.0"
@@ -18,16 +18,16 @@ describe Rackamole::Store::MongoDb do
18
18
  before( :each ) do
19
19
  @store.send( :reset! )
20
20
 
21
- @args = OrderedHash.new
21
+ @args = BSON::OrderedHash.new
22
22
  @args[:type] = Rackamole.feature
23
23
  @args[:app_name] = "app"
24
24
  @args[:environment] = :test
25
25
  @args[:perf_issue] = false
26
26
  @args[:ip] = "1.1.1.1"
27
- @args[:browser] = OrderedHash.new
27
+ @args[:browser] = BSON::OrderedHash.new
28
28
  @args[:browser][:name] = "Ibrowse"
29
29
  @args[:browser][:version] = "1.X"
30
- @args[:machine] = OrderedHash.new
30
+ @args[:machine] = BSON::OrderedHash.new
31
31
  @args[:machine][:platform] = "Blee"
32
32
  @args[:machine][:os] = "Windoze"
33
33
  @args[:machine][:version] = "10.0"
data/tasks/rdoc.rake CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rake/rdoctask'
2
- require 'darkfish-rdoc'
2
+ # require 'darkfish-rdoc'
3
3
 
4
4
  namespace :doc do
5
5
 
@@ -28,7 +28,7 @@ namespace :doc do
28
28
  rd.options << "-t #{title}"
29
29
  rd.options << "-SHN"
30
30
  rd.options << "-f"
31
- rd.options << "darkfish"
31
+ # rd.options << "darkfish"
32
32
  rd.options.concat(rdoc.opts)
33
33
  end
34
34
 
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rackamole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 7
9
+ version: 0.3.7
5
10
  platform: ruby
6
11
  authors:
7
12
  - Fernand Galiana
@@ -9,109 +14,163 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-22 00:00:00 -06:00
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: logging
17
- type: :runtime
18
- version_requirement:
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
+ - 2
30
+ - 2
23
31
  version: 1.2.2
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: hitimes
27
- type: :runtime
28
- version_requirement:
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
41
+ segments:
42
+ - 1
43
+ - 0
44
+ - 3
33
45
  version: 1.0.3
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: mongo
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
43
- version: 0.17.1
44
- version:
55
+ segments:
56
+ - 1
57
+ - 0
58
+ - 1
59
+ version: 1.0.1
60
+ type: :runtime
61
+ version_requirements: *id003
45
62
  - !ruby/object:Gem::Dependency
46
- name: mongo_ext
63
+ name: bson
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 1
71
+ - 0
72
+ - 1
73
+ version: 1.0.1
47
74
  type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
77
+ name: bson_ext
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
50
80
  requirements:
51
81
  - - ">="
52
82
  - !ruby/object:Gem::Version
53
- version: 0.17.1
54
- version:
83
+ segments:
84
+ - 1
85
+ - 0
86
+ - 1
87
+ version: 1.0.1
88
+ type: :runtime
89
+ version_requirements: *id005
55
90
  - !ruby/object:Gem::Dependency
56
91
  name: chronic
57
- type: :runtime
58
- version_requirement:
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
+ - 0
99
+ - 2
100
+ - 3
63
101
  version: 0.2.3
64
- version:
102
+ type: :runtime
103
+ version_requirements: *id006
65
104
  - !ruby/object:Gem::Dependency
66
105
  name: twitter4r
67
- type: :runtime
68
- version_requirement:
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
+ - 0
113
+ - 3
114
+ - 0
73
115
  version: 0.3.0
74
- version:
116
+ type: :runtime
117
+ version_requirements: *id007
75
118
  - !ruby/object:Gem::Dependency
76
119
  name: erubis
77
- type: :runtime
78
- version_requirement:
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
125
+ segments:
126
+ - 2
127
+ - 6
128
+ - 0
83
129
  version: 2.6.0
84
- version:
130
+ type: :runtime
131
+ version_requirements: *id008
85
132
  - !ruby/object:Gem::Dependency
86
133
  name: mail
87
- type: :runtime
88
- version_requirement:
89
- version_requirements: !ruby/object:Gem::Requirement
134
+ prerelease: false
135
+ requirement: &id009 !ruby/object:Gem::Requirement
90
136
  requirements:
91
137
  - - ">="
92
138
  - !ruby/object:Gem::Version
139
+ segments:
140
+ - 2
141
+ - 1
142
+ - 3
93
143
  version: 2.1.3
94
- version:
144
+ type: :runtime
145
+ version_requirements: *id009
95
146
  - !ruby/object:Gem::Dependency
96
147
  name: ruby-growl
97
- type: :runtime
98
- version_requirement:
99
- version_requirements: !ruby/object:Gem::Requirement
148
+ prerelease: false
149
+ requirement: &id010 !ruby/object:Gem::Requirement
100
150
  requirements:
101
151
  - - ">="
102
152
  - !ruby/object:Gem::Version
153
+ segments:
154
+ - 1
155
+ - 0
156
+ - 1
103
157
  version: 1.0.1
104
- version:
158
+ type: :runtime
159
+ version_requirements: *id010
105
160
  - !ruby/object:Gem::Dependency
106
161
  name: bones
107
- type: :development
108
- version_requirement:
109
- version_requirements: !ruby/object:Gem::Requirement
162
+ prerelease: false
163
+ requirement: &id011 !ruby/object:Gem::Requirement
110
164
  requirements:
111
165
  - - ">="
112
166
  - !ruby/object:Gem::Version
167
+ segments:
168
+ - 2
169
+ - 5
170
+ - 1
113
171
  version: 2.5.1
114
- version:
172
+ type: :development
173
+ version_requirements: *id011
115
174
  description: " The MOle is a rack application that monitors user interactions with your web site. We are not \n talking about counting page hits here. The MOle tracks all the information available to capture\n the essence of a user interaction with your application. Using the MOle, you are able to see\n which feature is a hit or a bust. As an added bonus, the MOle also track performance and exceptions \n that might have escaped your test suites or alpha env. To boot your managers will love you for it! \n\n Whether you are releasing a new application or improving on an old one, it is always a good thing \n to know if anyone is using your application and if they are, how they are using it. \n What features are your users most fond of and which features find their way into the abyss? \n You will be able to rapidly assess whether or not your application is a hit and if\n your coolest features are thought as such by your users. You will be able to elegantly record user\n interactions and leverage these findings for the next iteration of your application. "
116
175
  email: fernand.galiana@gmail.com
117
176
  executables: []
@@ -188,20 +247,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
247
  requirements:
189
248
  - - ">="
190
249
  - !ruby/object:Gem::Version
250
+ segments:
251
+ - 0
191
252
  version: "0"
192
- version:
193
253
  required_rubygems_version: !ruby/object:Gem::Requirement
194
254
  requirements:
195
255
  - - ">="
196
256
  - !ruby/object:Gem::Version
257
+ segments:
258
+ - 0
197
259
  version: "0"
198
- version:
199
260
  requirements: []
200
261
 
201
262
  rubyforge_project: !binary |
202
263
  AA==
203
264
 
204
- rubygems_version: 1.3.5
265
+ rubygems_version: 1.3.6
205
266
  signing_key:
206
267
  specification_version: 3
207
268
  summary: The MOle is a rack application that monitors user interactions with your web site