mole 1.0.12 → 1.0.15
Sign up to get free protection for your applications and to get access to all the features.
- metadata +24 -146
- data/History.txt +0 -17
- data/Manifest.txt +0 -132
- data/README.txt +0 -216
- data/Rakefile +0 -46
- data/config/database.yml +0 -21
- data/config/test_database.yml +0 -69
- data/lib/mole.rb +0 -260
- data/lib/mole/db/migrate.rb +0 -90
- data/lib/mole/e_mole.rb +0 -75
- data/lib/mole/logger.rb +0 -134
- data/lib/mole/models/mole_feature.rb +0 -58
- data/lib/mole/models/mole_log.rb +0 -31
- data/lib/mole/module.rb +0 -292
- data/lib/mole/moler.rb +0 -71
- data/lib/mole/utils/frameworks.rb +0 -53
- data/lib/mole/version.rb +0 -15
- data/samples/merbapp/README +0 -14
- data/samples/merbapp/Rakefile +0 -124
- data/samples/merbapp/app/controllers/application.rb +0 -3
- data/samples/merbapp/app/controllers/exceptions.rb +0 -13
- data/samples/merbapp/app/controllers/moled.rb +0 -25
- data/samples/merbapp/app/helpers/global_helper.rb +0 -5
- data/samples/merbapp/app/mailers/views/layout/application.html.erb +0 -1
- data/samples/merbapp/app/mailers/views/layout/application.text.erb +0 -1
- data/samples/merbapp/app/parts/views/layout/application.html.erb +0 -1
- data/samples/merbapp/app/views/exceptions/internal_server_error.html.erb +0 -216
- data/samples/merbapp/app/views/exceptions/not_acceptable.html.erb +0 -38
- data/samples/merbapp/app/views/exceptions/not_found.html.erb +0 -40
- data/samples/merbapp/app/views/layout/application.html.erb +0 -11
- data/samples/merbapp/app/views/moled/index.html.erb +0 -5
- data/samples/merbapp/app/views/moled/result.html.erb +0 -5
- data/samples/merbapp/config/boot.rb +0 -11
- data/samples/merbapp/config/dependencies.rb +0 -41
- data/samples/merbapp/config/environments/development.rb +0 -1
- data/samples/merbapp/config/environments/production.rb +0 -1
- data/samples/merbapp/config/environments/test.rb +0 -1
- data/samples/merbapp/config/merb.yml +0 -82
- data/samples/merbapp/config/merb_init.rb +0 -26
- data/samples/merbapp/config/mole_config.rb +0 -33
- data/samples/merbapp/config/router.rb +0 -38
- data/samples/merbapp/config/upload.conf +0 -0
- data/samples/merbapp/public/images/merb.jpg +0 -0
- data/samples/merbapp/public/merb.fcgi +0 -6
- data/samples/merbapp/public/stylesheets/master.css +0 -119
- data/samples/merbapp/script/destroy +0 -32
- data/samples/merbapp/script/generate +0 -32
- data/samples/merbapp/script/stop_merb +0 -13
- data/samples/merbapp/spec/spec_helper.rb +0 -15
- data/samples/merbapp/test/test_helper.rb +0 -14
- data/samples/railsapp/README +0 -14
- data/samples/railsapp/Rakefile +0 -10
- data/samples/railsapp/app/controllers/application.rb +0 -13
- data/samples/railsapp/app/controllers/moled_controller.rb +0 -23
- data/samples/railsapp/app/helpers/application_helper.rb +0 -3
- data/samples/railsapp/app/views/moled/index.html.erb +0 -5
- data/samples/railsapp/app/views/moled/result.html.erb +0 -5
- data/samples/railsapp/config/boot.rb +0 -109
- data/samples/railsapp/config/database.yml +0 -13
- data/samples/railsapp/config/environment.rb +0 -59
- data/samples/railsapp/config/environments/development.rb +0 -18
- data/samples/railsapp/config/environments/production.rb +0 -20
- data/samples/railsapp/config/environments/test.rb +0 -22
- data/samples/railsapp/config/initializers/inflections.rb +0 -10
- data/samples/railsapp/config/initializers/mime_types.rb +0 -5
- data/samples/railsapp/config/initializers/mole.rb +0 -10
- data/samples/railsapp/config/moles/mole_config.rb +0 -44
- data/samples/railsapp/config/routes.rb +0 -35
- data/samples/railsapp/doc/README_FOR_APP +0 -2
- data/samples/railsapp/public/.htaccess +0 -40
- data/samples/railsapp/public/404.html +0 -30
- data/samples/railsapp/public/422.html +0 -30
- data/samples/railsapp/public/500.html +0 -30
- data/samples/railsapp/public/dispatch.cgi +0 -10
- data/samples/railsapp/public/dispatch.fcgi +0 -24
- data/samples/railsapp/public/dispatch.rb +0 -10
- data/samples/railsapp/public/favicon.ico +0 -0
- data/samples/railsapp/public/images/rails.png +0 -0
- data/samples/railsapp/public/javascripts/application.js +0 -2
- data/samples/railsapp/public/javascripts/controls.js +0 -963
- data/samples/railsapp/public/javascripts/dragdrop.js +0 -972
- data/samples/railsapp/public/javascripts/effects.js +0 -1120
- data/samples/railsapp/public/javascripts/prototype.js +0 -4225
- data/samples/railsapp/public/robots.txt +0 -5
- data/samples/railsapp/script/about +0 -3
- data/samples/railsapp/script/console +0 -3
- data/samples/railsapp/script/destroy +0 -3
- data/samples/railsapp/script/generate +0 -3
- data/samples/railsapp/script/performance/benchmarker +0 -3
- data/samples/railsapp/script/performance/profiler +0 -3
- data/samples/railsapp/script/performance/request +0 -3
- data/samples/railsapp/script/plugin +0 -3
- data/samples/railsapp/script/process/inspector +0 -3
- data/samples/railsapp/script/process/reaper +0 -3
- data/samples/railsapp/script/process/spawner +0 -3
- data/samples/railsapp/script/runner +0 -3
- data/samples/railsapp/script/server +0 -3
- data/samples/railsapp/test/test_helper.rb +0 -38
- data/samples/rubyapp/README +0 -22
- data/samples/rubyapp/bin/ruby_app +0 -35
- data/samples/rubyapp/config/mole_conf.rb +0 -31
- data/samples/rubyapp/lib/fred.rb +0 -22
- data/spec/config/auto_mole_config.rb +0 -26
- data/spec/config/mole_config.rb +0 -0
- data/spec/config/moles/fred_config.rb +0 -0
- data/spec/data/blee.rb +0 -64
- data/spec/db/migrate_spec.rb +0 -19
- data/spec/emole_spec.rb +0 -43
- data/spec/logger_spec.rb +0 -56
- data/spec/models/mole_feature_spec.rb +0 -48
- data/spec/models/mole_log_spec.rb +0 -62
- data/spec/module_spec.rb +0 -229
- data/spec/mole_spec.rb +0 -135
- data/spec/moler_spec.rb +0 -77
- data/spec/spec_helper.rb +0 -76
- data/spec/utils/framework_spec.rb +0 -99
- data/tasks/ann.rake +0 -76
- data/tasks/annotations.rake +0 -22
- data/tasks/doc.rake +0 -48
- data/tasks/gem.rake +0 -110
- data/tasks/manifest.rake +0 -49
- data/tasks/mole.rake +0 -115
- data/tasks/post_load.rake +0 -26
- data/tasks/rubyforge.rake +0 -57
- data/tasks/setup.rb +0 -227
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -44
- data/tasks/test.rake +0 -38
- data/templates/mole/e_mole/exception_alerts.rhtml +0 -14
- data/templates/mole/e_mole/feature_alerts.rhtml +0 -11
- data/templates/mole/e_mole/perf_alerts.rhtml +0 -12
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernand Galiana
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-11-04 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -18,9 +18,9 @@ dependencies:
|
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 1.2.2
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activerecord
|
@@ -28,9 +28,19 @@ dependencies:
|
|
28
28
|
version_requirement:
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 2.3.2
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: twitter4r
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.3.0
|
34
44
|
version:
|
35
45
|
description: A flexible way to track user's interactions within your ruby web applications
|
36
46
|
email: fernand@liquidrail.com
|
@@ -38,146 +48,14 @@ executables:
|
|
38
48
|
- molify
|
39
49
|
extensions: []
|
40
50
|
|
41
|
-
extra_rdoc_files:
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
- samples/railsapp/public/robots.txt
|
46
|
-
files:
|
47
|
-
- History.txt
|
48
|
-
- Manifest.txt
|
49
|
-
- README.txt
|
50
|
-
- Rakefile
|
51
|
-
- bin/molify
|
52
|
-
- config/database.yml
|
53
|
-
- config/test_database.yml
|
54
|
-
- lib/mole.rb
|
55
|
-
- lib/mole/db/migrate.rb
|
56
|
-
- lib/mole/e_mole.rb
|
57
|
-
- lib/mole/logger.rb
|
58
|
-
- lib/mole/models/mole_feature.rb
|
59
|
-
- lib/mole/models/mole_log.rb
|
60
|
-
- lib/mole/module.rb
|
61
|
-
- lib/mole/moler.rb
|
62
|
-
- lib/mole/utils/frameworks.rb
|
63
|
-
- lib/mole/version.rb
|
64
|
-
- samples/merbapp/README
|
65
|
-
- samples/merbapp/Rakefile
|
66
|
-
- samples/merbapp/app/controllers/application.rb
|
67
|
-
- samples/merbapp/app/controllers/exceptions.rb
|
68
|
-
- samples/merbapp/app/controllers/moled.rb
|
69
|
-
- samples/merbapp/app/helpers/global_helper.rb
|
70
|
-
- samples/merbapp/app/mailers/views/layout/application.html.erb
|
71
|
-
- samples/merbapp/app/mailers/views/layout/application.text.erb
|
72
|
-
- samples/merbapp/app/parts/views/layout/application.html.erb
|
73
|
-
- samples/merbapp/app/views/exceptions/internal_server_error.html.erb
|
74
|
-
- samples/merbapp/app/views/exceptions/not_acceptable.html.erb
|
75
|
-
- samples/merbapp/app/views/exceptions/not_found.html.erb
|
76
|
-
- samples/merbapp/app/views/layout/application.html.erb
|
77
|
-
- samples/merbapp/app/views/moled/index.html.erb
|
78
|
-
- samples/merbapp/app/views/moled/result.html.erb
|
79
|
-
- samples/merbapp/config/boot.rb
|
80
|
-
- samples/merbapp/config/dependencies.rb
|
81
|
-
- samples/merbapp/config/environments/development.rb
|
82
|
-
- samples/merbapp/config/environments/production.rb
|
83
|
-
- samples/merbapp/config/environments/test.rb
|
84
|
-
- samples/merbapp/config/merb.yml
|
85
|
-
- samples/merbapp/config/merb_init.rb
|
86
|
-
- samples/merbapp/config/mole_config.rb
|
87
|
-
- samples/merbapp/config/router.rb
|
88
|
-
- samples/merbapp/config/upload.conf
|
89
|
-
- samples/merbapp/public/images/merb.jpg
|
90
|
-
- samples/merbapp/public/merb.fcgi
|
91
|
-
- samples/merbapp/public/stylesheets/master.css
|
92
|
-
- samples/merbapp/script/destroy
|
93
|
-
- samples/merbapp/script/generate
|
94
|
-
- samples/merbapp/script/stop_merb
|
95
|
-
- samples/merbapp/spec/spec_helper.rb
|
96
|
-
- samples/merbapp/test/test_helper.rb
|
97
|
-
- samples/railsapp/README
|
98
|
-
- samples/railsapp/Rakefile
|
99
|
-
- samples/railsapp/app/controllers/application.rb
|
100
|
-
- samples/railsapp/app/controllers/moled_controller.rb
|
101
|
-
- samples/railsapp/app/helpers/application_helper.rb
|
102
|
-
- samples/railsapp/app/views/moled/index.html.erb
|
103
|
-
- samples/railsapp/app/views/moled/result.html.erb
|
104
|
-
- samples/railsapp/config/boot.rb
|
105
|
-
- samples/railsapp/config/database.yml
|
106
|
-
- samples/railsapp/config/environment.rb
|
107
|
-
- samples/railsapp/config/environments/development.rb
|
108
|
-
- samples/railsapp/config/environments/production.rb
|
109
|
-
- samples/railsapp/config/environments/test.rb
|
110
|
-
- samples/railsapp/config/initializers/inflections.rb
|
111
|
-
- samples/railsapp/config/initializers/mime_types.rb
|
112
|
-
- samples/railsapp/config/initializers/mole.rb
|
113
|
-
- samples/railsapp/config/moles/mole_config.rb
|
114
|
-
- samples/railsapp/config/routes.rb
|
115
|
-
- samples/railsapp/doc/README_FOR_APP
|
116
|
-
- samples/railsapp/public/.htaccess
|
117
|
-
- samples/railsapp/public/404.html
|
118
|
-
- samples/railsapp/public/422.html
|
119
|
-
- samples/railsapp/public/500.html
|
120
|
-
- samples/railsapp/public/dispatch.cgi
|
121
|
-
- samples/railsapp/public/dispatch.fcgi
|
122
|
-
- samples/railsapp/public/dispatch.rb
|
123
|
-
- samples/railsapp/public/favicon.ico
|
124
|
-
- samples/railsapp/public/images/rails.png
|
125
|
-
- samples/railsapp/public/javascripts/application.js
|
126
|
-
- samples/railsapp/public/javascripts/controls.js
|
127
|
-
- samples/railsapp/public/javascripts/dragdrop.js
|
128
|
-
- samples/railsapp/public/javascripts/effects.js
|
129
|
-
- samples/railsapp/public/javascripts/prototype.js
|
130
|
-
- samples/railsapp/public/robots.txt
|
131
|
-
- samples/railsapp/script/about
|
132
|
-
- samples/railsapp/script/console
|
133
|
-
- samples/railsapp/script/destroy
|
134
|
-
- samples/railsapp/script/generate
|
135
|
-
- samples/railsapp/script/performance/benchmarker
|
136
|
-
- samples/railsapp/script/performance/profiler
|
137
|
-
- samples/railsapp/script/performance/request
|
138
|
-
- samples/railsapp/script/plugin
|
139
|
-
- samples/railsapp/script/process/inspector
|
140
|
-
- samples/railsapp/script/process/reaper
|
141
|
-
- samples/railsapp/script/process/spawner
|
142
|
-
- samples/railsapp/script/runner
|
143
|
-
- samples/railsapp/script/server
|
144
|
-
- samples/railsapp/test/test_helper.rb
|
145
|
-
- samples/rubyapp/README
|
146
|
-
- samples/rubyapp/bin/ruby_app
|
147
|
-
- samples/rubyapp/config/mole_conf.rb
|
148
|
-
- samples/rubyapp/lib/fred.rb
|
149
|
-
- spec/config/auto_mole_config.rb
|
150
|
-
- spec/config/mole_config.rb
|
151
|
-
- spec/config/moles/fred_config.rb
|
152
|
-
- spec/data/blee.rb
|
153
|
-
- spec/db/migrate_spec.rb
|
154
|
-
- spec/emole_spec.rb
|
155
|
-
- spec/logger_spec.rb
|
156
|
-
- spec/models/mole_feature_spec.rb
|
157
|
-
- spec/models/mole_log_spec.rb
|
158
|
-
- spec/module_spec.rb
|
159
|
-
- spec/mole_spec.rb
|
160
|
-
- spec/moler_spec.rb
|
161
|
-
- spec/spec_helper.rb
|
162
|
-
- spec/utils/framework_spec.rb
|
163
|
-
- tasks/ann.rake
|
164
|
-
- tasks/annotations.rake
|
165
|
-
- tasks/doc.rake
|
166
|
-
- tasks/gem.rake
|
167
|
-
- tasks/manifest.rake
|
168
|
-
- tasks/mole.rake
|
169
|
-
- tasks/post_load.rake
|
170
|
-
- tasks/rubyforge.rake
|
171
|
-
- tasks/setup.rb
|
172
|
-
- tasks/spec.rake
|
173
|
-
- tasks/svn.rake
|
174
|
-
- tasks/test.rake
|
175
|
-
- templates/mole/e_mole/exception_alerts.rhtml
|
176
|
-
- templates/mole/e_mole/feature_alerts.rhtml
|
177
|
-
- templates/mole/e_mole/perf_alerts.rhtml
|
178
|
-
- test/test_mole.rb
|
51
|
+
extra_rdoc_files: []
|
52
|
+
|
53
|
+
files: []
|
54
|
+
|
179
55
|
has_rdoc: true
|
180
56
|
homepage: http://mole.rubyforge.org
|
57
|
+
licenses: []
|
58
|
+
|
181
59
|
post_install_message:
|
182
60
|
rdoc_options:
|
183
61
|
- --main
|
@@ -199,9 +77,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
77
|
requirements: []
|
200
78
|
|
201
79
|
rubyforge_project: mole
|
202
|
-
rubygems_version: 1.
|
80
|
+
rubygems_version: 1.3.5
|
203
81
|
signing_key:
|
204
|
-
specification_version:
|
82
|
+
specification_version: 3
|
205
83
|
summary: A flexible way to track user's interactions within your ruby web applications
|
206
84
|
test_files:
|
207
85
|
- test/test_mole.rb
|
data/History.txt
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
== 1.0.0 / 2008-02-04
|
2
|
-
|
3
|
-
* 1 Initial drop
|
4
|
-
* Converted from rails plugin into gem
|
5
|
-
* Retrofited to work with pure ruby, merb and rails env
|
6
|
-
|
7
|
-
== 1.0.1 / 2008-02-04
|
8
|
-
|
9
|
-
* 1 Documentation enhancements
|
10
|
-
|
11
|
-
== 1.0.2 / 2008-02-04
|
12
|
-
|
13
|
-
* 1 Added Snitch support
|
14
|
-
|
15
|
-
== 1.0.3 / 2008-02-05
|
16
|
-
|
17
|
-
* 1 Bug Fixes
|
data/Manifest.txt
DELETED
@@ -1,132 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
Manifest.txt
|
3
|
-
README.txt
|
4
|
-
Rakefile
|
5
|
-
bin/molify
|
6
|
-
config/database.yml
|
7
|
-
config/test_database.yml
|
8
|
-
lib/mole.rb
|
9
|
-
lib/mole/db/migrate.rb
|
10
|
-
lib/mole/e_mole.rb
|
11
|
-
lib/mole/logger.rb
|
12
|
-
lib/mole/models/mole_feature.rb
|
13
|
-
lib/mole/models/mole_log.rb
|
14
|
-
lib/mole/module.rb
|
15
|
-
lib/mole/moler.rb
|
16
|
-
lib/mole/utils/frameworks.rb
|
17
|
-
lib/mole/version.rb
|
18
|
-
samples/merbapp/README
|
19
|
-
samples/merbapp/Rakefile
|
20
|
-
samples/merbapp/app/controllers/application.rb
|
21
|
-
samples/merbapp/app/controllers/exceptions.rb
|
22
|
-
samples/merbapp/app/controllers/moled.rb
|
23
|
-
samples/merbapp/app/helpers/global_helper.rb
|
24
|
-
samples/merbapp/app/mailers/views/layout/application.html.erb
|
25
|
-
samples/merbapp/app/mailers/views/layout/application.text.erb
|
26
|
-
samples/merbapp/app/parts/views/layout/application.html.erb
|
27
|
-
samples/merbapp/app/views/exceptions/internal_server_error.html.erb
|
28
|
-
samples/merbapp/app/views/exceptions/not_acceptable.html.erb
|
29
|
-
samples/merbapp/app/views/exceptions/not_found.html.erb
|
30
|
-
samples/merbapp/app/views/layout/application.html.erb
|
31
|
-
samples/merbapp/app/views/moled/index.html.erb
|
32
|
-
samples/merbapp/app/views/moled/result.html.erb
|
33
|
-
samples/merbapp/config/boot.rb
|
34
|
-
samples/merbapp/config/dependencies.rb
|
35
|
-
samples/merbapp/config/environments/development.rb
|
36
|
-
samples/merbapp/config/environments/production.rb
|
37
|
-
samples/merbapp/config/environments/test.rb
|
38
|
-
samples/merbapp/config/merb.yml
|
39
|
-
samples/merbapp/config/merb_init.rb
|
40
|
-
samples/merbapp/config/mole_config.rb
|
41
|
-
samples/merbapp/config/router.rb
|
42
|
-
samples/merbapp/config/upload.conf
|
43
|
-
samples/merbapp/public/images/merb.jpg
|
44
|
-
samples/merbapp/public/merb.fcgi
|
45
|
-
samples/merbapp/public/stylesheets/master.css
|
46
|
-
samples/merbapp/script/destroy
|
47
|
-
samples/merbapp/script/generate
|
48
|
-
samples/merbapp/script/stop_merb
|
49
|
-
samples/merbapp/spec/spec_helper.rb
|
50
|
-
samples/merbapp/test/test_helper.rb
|
51
|
-
samples/railsapp/README
|
52
|
-
samples/railsapp/Rakefile
|
53
|
-
samples/railsapp/app/controllers/application.rb
|
54
|
-
samples/railsapp/app/controllers/moled_controller.rb
|
55
|
-
samples/railsapp/app/helpers/application_helper.rb
|
56
|
-
samples/railsapp/app/views/moled/index.html.erb
|
57
|
-
samples/railsapp/app/views/moled/result.html.erb
|
58
|
-
samples/railsapp/config/boot.rb
|
59
|
-
samples/railsapp/config/database.yml
|
60
|
-
samples/railsapp/config/environment.rb
|
61
|
-
samples/railsapp/config/environments/development.rb
|
62
|
-
samples/railsapp/config/environments/production.rb
|
63
|
-
samples/railsapp/config/environments/test.rb
|
64
|
-
samples/railsapp/config/initializers/inflections.rb
|
65
|
-
samples/railsapp/config/initializers/mime_types.rb
|
66
|
-
samples/railsapp/config/initializers/mole.rb
|
67
|
-
samples/railsapp/config/moles/mole_config.rb
|
68
|
-
samples/railsapp/config/routes.rb
|
69
|
-
samples/railsapp/doc/README_FOR_APP
|
70
|
-
samples/railsapp/public/.htaccess
|
71
|
-
samples/railsapp/public/404.html
|
72
|
-
samples/railsapp/public/422.html
|
73
|
-
samples/railsapp/public/500.html
|
74
|
-
samples/railsapp/public/dispatch.cgi
|
75
|
-
samples/railsapp/public/dispatch.fcgi
|
76
|
-
samples/railsapp/public/dispatch.rb
|
77
|
-
samples/railsapp/public/favicon.ico
|
78
|
-
samples/railsapp/public/images/rails.png
|
79
|
-
samples/railsapp/public/javascripts/application.js
|
80
|
-
samples/railsapp/public/javascripts/controls.js
|
81
|
-
samples/railsapp/public/javascripts/dragdrop.js
|
82
|
-
samples/railsapp/public/javascripts/effects.js
|
83
|
-
samples/railsapp/public/javascripts/prototype.js
|
84
|
-
samples/railsapp/public/robots.txt
|
85
|
-
samples/railsapp/script/about
|
86
|
-
samples/railsapp/script/console
|
87
|
-
samples/railsapp/script/destroy
|
88
|
-
samples/railsapp/script/generate
|
89
|
-
samples/railsapp/script/performance/benchmarker
|
90
|
-
samples/railsapp/script/performance/profiler
|
91
|
-
samples/railsapp/script/performance/request
|
92
|
-
samples/railsapp/script/plugin
|
93
|
-
samples/railsapp/script/process/inspector
|
94
|
-
samples/railsapp/script/process/reaper
|
95
|
-
samples/railsapp/script/process/spawner
|
96
|
-
samples/railsapp/script/runner
|
97
|
-
samples/railsapp/script/server
|
98
|
-
samples/railsapp/test/test_helper.rb
|
99
|
-
samples/rubyapp/README
|
100
|
-
samples/rubyapp/bin/ruby_app
|
101
|
-
samples/rubyapp/config/mole_conf.rb
|
102
|
-
samples/rubyapp/lib/fred.rb
|
103
|
-
spec/config/auto_mole_config.rb
|
104
|
-
spec/config/mole_config.rb
|
105
|
-
spec/config/moles/fred_config.rb
|
106
|
-
spec/data/blee.rb
|
107
|
-
spec/db/migrate_spec.rb
|
108
|
-
spec/emole_spec.rb
|
109
|
-
spec/logger_spec.rb
|
110
|
-
spec/models/mole_feature_spec.rb
|
111
|
-
spec/models/mole_log_spec.rb
|
112
|
-
spec/module_spec.rb
|
113
|
-
spec/mole_spec.rb
|
114
|
-
spec/moler_spec.rb
|
115
|
-
spec/spec_helper.rb
|
116
|
-
spec/utils/framework_spec.rb
|
117
|
-
tasks/ann.rake
|
118
|
-
tasks/annotations.rake
|
119
|
-
tasks/doc.rake
|
120
|
-
tasks/gem.rake
|
121
|
-
tasks/manifest.rake
|
122
|
-
tasks/mole.rake
|
123
|
-
tasks/post_load.rake
|
124
|
-
tasks/rubyforge.rake
|
125
|
-
tasks/setup.rb
|
126
|
-
tasks/spec.rake
|
127
|
-
tasks/svn.rake
|
128
|
-
tasks/test.rake
|
129
|
-
templates/mole/e_mole/exception_alerts.rhtml
|
130
|
-
templates/mole/e_mole/feature_alerts.rhtml
|
131
|
-
templates/mole/e_mole/perf_alerts.rhtml
|
132
|
-
test/test_mole.rb
|
data/README.txt
DELETED
@@ -1,216 +0,0 @@
|
|
1
|
-
The MOle
|
2
|
-
by Fernand Galiana
|
3
|
-
liquidrail.com
|
4
|
-
|
5
|
-
== DESCRIPTION:
|
6
|
-
|
7
|
-
The MOle allows you to track user's interactions with your ruby application and closely monitors
|
8
|
-
how your customers are using your application. This is a must cheaper way than to hire a monitoring
|
9
|
-
service and produces much more detailed information on your application behavior and usage. To boot
|
10
|
-
your managers will love you !
|
11
|
-
|
12
|
-
Whether you are releasing a new application or improving on an old one, it is always a good thing
|
13
|
-
to know if anyone is using your application and if they are, how they are using it.
|
14
|
-
What features are your users most fond of and which features find their way into the abyss?
|
15
|
-
Using the MOle you'll be able to rapidly assess whether or not your application is a hit and if
|
16
|
-
your coolest features are thought as such by your users. You will be able to elegantly record user
|
17
|
-
interactions and leverage these findings for the next iteration of your application.
|
18
|
-
|
19
|
-
The MOle was initialy released as a Rails plugin, but we found the behavior usefull in other types
|
20
|
-
of projects such as Merb or straight up ruby applications, and decided to re-release it as a gem
|
21
|
-
instead.
|
22
|
-
|
23
|
-
== PROJECT INFORMATION
|
24
|
-
|
25
|
-
* Developer: Fernand Galiana [liquidrail.com]
|
26
|
-
* Forum: http://groups.google.com/group/mole-plugin
|
27
|
-
* Home: mole.rubyforge.org
|
28
|
-
* Svn: svn://rubyforge.org/var/svn/mole/mole/trunk
|
29
|
-
* Git: git://github.com/derailed/mole.git
|
30
|
-
* Snitch Svn: svn://rubyforge.org/var/svn/mole/snitch/trunk
|
31
|
-
* Examples: svn://rubyforge.org/var/svn/mole/samples
|
32
|
-
|
33
|
-
== FEATURES:
|
34
|
-
|
35
|
-
The MOle allows you to easily
|
36
|
-
|
37
|
-
* Trap method calls within your ruby application. You can use the MOle with either a straight ruby
|
38
|
-
application, Rails or Merb. The MOle allows you to inject aspects across various method calls.
|
39
|
-
You are in full control on how and where to trap the calls and the arguments you want to record.
|
40
|
-
'Moled' methods are not limited to controller's actions, you can also mole any third party or library methods.
|
41
|
-
|
42
|
-
* Single configuration file. You won't have to sprinkle MOle code all over your application.
|
43
|
-
The MOle instructions reside in a single file easy to manage and maintain.
|
44
|
-
|
45
|
-
* Trap and surface uncaught exceptions in one easy call. The MOle will watch your execution stack
|
46
|
-
and alert you when an unexpected exception is encountered
|
47
|
-
|
48
|
-
* Trap and surface performance bottle neck in your ruby application in one easy call. You can
|
49
|
-
specify a performance threshold within the MOle configuration file. Any methods taking longer
|
50
|
-
than the specified threshold will trip an alert.
|
51
|
-
|
52
|
-
* You can record users interaction by either using the MOle is a transient or persistent mode.
|
53
|
-
In the persistent mode, users interactions will be recorded in your database. In the transient
|
54
|
-
case, MOle events will be recorded in your application logs.
|
55
|
-
|
56
|
-
== INSTALL:
|
57
|
-
|
58
|
-
* sudo gem install mole
|
59
|
-
|
60
|
-
== SYNOPSIS:
|
61
|
-
|
62
|
-
* The MOle can operate in 2 different modes: transient or persistent. The transient mode will
|
63
|
-
simply record MOle interactions within your log file. If you opt to use the
|
64
|
-
persistent mode (recommanded!) which will allow to leverage the Snitch Application
|
65
|
-
and also draw out MOle usage reports from you database, you will need to install the 2 MOle tables in your database.
|
66
|
-
This is achived via the 'molify' command. In order to 'MOle' an application using the persistent
|
67
|
-
mode, you will need to issue the following commands:
|
68
|
-
|
69
|
-
> cd my_non_moled_application
|
70
|
-
> molify --up --config config/database.yml --env test
|
71
|
-
|
72
|
-
This command will update your test database and create the MOle tables required when
|
73
|
-
the MOle is in a persistent mode. Namely, these tables are mole_features and mole_logs.
|
74
|
-
|
75
|
-
You can use molify --help to see usage information.
|
76
|
-
|
77
|
-
* Mole initialization. This must be specified during your application initialization code.
|
78
|
-
In a rails app, this can be set in you application controller class or environment.rb. In
|
79
|
-
a Merb app, this can be set in your merb_init.rb file.
|
80
|
-
|
81
|
-
require 'mole'
|
82
|
-
Mole.initialize( :moleable => true,
|
83
|
-
:application => "Smf",
|
84
|
-
:emole_from => "MoleBeatch@liquidrail.com",
|
85
|
-
:emole_recipients => ['fernand@liquidrail.com'],
|
86
|
-
:mode => :persistent,
|
87
|
-
:log_file => $stdout,
|
88
|
-
:log_level => :debug,
|
89
|
-
:perf_threshold => 2,
|
90
|
-
:mole_config => File.join( File.dirname(__FILE__), %w[mole.rb] ) )
|
91
|
-
# Load the MOle configuration file(s)
|
92
|
-
::Mole.load_configuration
|
93
|
-
|
94
|
-
NOTE: The mole_config can either be a single ruby file or a directory containing multiple MOle
|
95
|
-
configuration files. Thanks to Ian Schreuder for the suggestion !
|
96
|
-
|
97
|
-
NOTE: For rails applications you can either put the MOle initialization code in a custom initializer
|
98
|
-
ie config/initializers/mole.rb or in your environment file (config/environments/production.rb).
|
99
|
-
You will need to make the load_configuration call in your application controller(application.rb) as follows:
|
100
|
-
|
101
|
-
::Mole.load_mole_configuration rescue nil
|
102
|
-
|
103
|
-
In dev env, the MOle will reload the configuration so you can tweak your app on the fly. In production
|
104
|
-
env the MOle configuration will be loaded once.
|
105
|
-
|
106
|
-
* Now you'll need to create a mole.rb specification file to specify the various aspects you'll want
|
107
|
-
to inject. This file is specified in the initialize call via the :mole_config tag.
|
108
|
-
|
109
|
-
To trap a feature before or after it occurs you can use the mole_before/mole_after
|
110
|
-
interceptors. The following will mole the "Posts" class after the "show" method is called.
|
111
|
-
The context argument hands you an execution context. In a rails/merb environment
|
112
|
-
this will be your controller object. You can handle this interaction any way
|
113
|
-
you want. The MOle provides a convenience class to record this interaction via
|
114
|
-
the database or the MOle logger in the guise of Mole::Moler. But you can also log it to
|
115
|
-
any media you'll find suitable. In a rails/merb context, you'll be able to extract session/params information
|
116
|
-
as in this case.
|
117
|
-
|
118
|
-
Posts.mole_after( :feature => :show ) { |context, feature, ret, block, *args|
|
119
|
-
# Records the interaction to the database
|
120
|
-
Mole::Moler.mole_it( context, feature,
|
121
|
-
context.session[:user_id], # Retrieves which user performed this action
|
122
|
-
:post_id=> context.params[:post_id], # Records request parameter post id
|
123
|
-
:url => context.instance_variable_get( "@url" ) ) # Retrieves controller state
|
124
|
-
end
|
125
|
-
}
|
126
|
-
|
127
|
-
To record performance issues, you will need to provide a collection of
|
128
|
-
methods that must be watched on a given class. In the case of rails or merb you can easily fetch the list
|
129
|
-
of actions from the controller api and pass it to the MOle. The MOle provides convenience
|
130
|
-
classes to log the perf issues to your database and send out alerts when a perf condition is met.
|
131
|
-
Upon invocation, you will be handed a calling context, that comprises the feature (method) being
|
132
|
-
called, the actual time it took to complete the call and any args/block that was passed into
|
133
|
-
the feature that causes the performance threshold to be triggered. Setting the :email option
|
134
|
-
to true will also send out an email alert.
|
135
|
-
|
136
|
-
Posts.mole_perf( :features => merb_actions ) do |context, feature, elapsed_time, ret, block, *args|
|
137
|
-
user = context.instance_variable_get( "@user" )
|
138
|
-
key = context.params[:key], "N/A"
|
139
|
-
request = context.request.nil? ? "N/A" : context.request.remote_ip,
|
140
|
-
Mole::Moler.perf_it( context, user.id,
|
141
|
-
:controller => context.class.name,
|
142
|
-
:feature => feature,
|
143
|
-
:key => key,
|
144
|
-
:request => request,
|
145
|
-
:user => user.user_name,
|
146
|
-
:elapsed_time => "%3.3f" % elapsed_time,
|
147
|
-
:email => true )
|
148
|
-
end
|
149
|
-
|
150
|
-
The unchecked exception trap works very similarly to the mole_perf trap. It will pass in
|
151
|
-
the context of the method that triggered the exception.
|
152
|
-
|
153
|
-
Posts.mole_unchecked( :features => merb_actions ) do |context, action, boom, block, *args|
|
154
|
-
sub = context.instance_variable_get("@sub")
|
155
|
-
user_id = "N/A"
|
156
|
-
user_id = sub.user.id if sub and sub.user
|
157
|
-
Mole::Moler.check_it( context, user_id,
|
158
|
-
:controller => context.class.name,
|
159
|
-
:action => action,
|
160
|
-
:boom => boom,
|
161
|
-
:email => true )
|
162
|
-
end
|
163
|
-
|
164
|
-
== Snitch
|
165
|
-
|
166
|
-
To view MOle interaction simply, we've created the "Snitch" a rails console application that
|
167
|
-
allows you to see the results of your MOled application. The Snitch is a Rails 2.0 application.
|
168
|
-
It is available at http://mole.rubyforge.org/svn/snitch/trunk/.
|
169
|
-
|
170
|
-
In order to start using the Snitch you will have to perform the following steps:
|
171
|
-
|
172
|
-
* Download the Snitch
|
173
|
-
svn co http://mole.rubyforge.org/svn/snitch/trunk/
|
174
|
-
|
175
|
-
* The Snitch needs to access your user table to provide user related log information. So
|
176
|
-
you will need to run the following rake task and provide your users table description.
|
177
|
-
|
178
|
-
> rake setup
|
179
|
-
|
180
|
-
* Edit the Snitch database.yml to point to your application database.
|
181
|
-
|
182
|
-
* Out of the box the Snitch will monitor and application named "Default". You will want
|
183
|
-
to match the application name that you've used in the Mole.initialize call. So you
|
184
|
-
should now be able to specify the following commands:
|
185
|
-
|
186
|
-
> script/server
|
187
|
-
|
188
|
-
Then in your browser
|
189
|
-
|
190
|
-
http://localhost:3000?app_name=my_moled_application_name
|
191
|
-
|
192
|
-
* NOTE: You will keep enhancing the Snitch to provide capistrano deployment scripts,
|
193
|
-
auto application name detection and many other enhancements...
|
194
|
-
|
195
|
-
== LICENSE:
|
196
|
-
|
197
|
-
MIT Copyright (c) 2008
|
198
|
-
|
199
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
200
|
-
a copy of this software and associated documentation files (the
|
201
|
-
'Software'), to deal in the Software without restriction, including
|
202
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
203
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
204
|
-
permit persons to whom the Software is furnished to do so, subject to
|
205
|
-
the following conditions:
|
206
|
-
|
207
|
-
The above copyright notice and this permission notice shall be
|
208
|
-
included in all copies or substantial portions of the Software.
|
209
|
-
|
210
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
211
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
212
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
213
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
214
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
215
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
216
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|