appstats 0.23.5 → 0.24.0

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.
Files changed (56) hide show
  1. data/.gitignore +0 -1
  2. data/Gemfile.lock +125 -97
  3. data/Rakefile +1 -10
  4. data/appstats.gemspec +2 -4
  5. data/db/config.yml +2 -2
  6. data/db/{migrations → migrate}/20110105221941_create_appstats_entries.rb +0 -0
  7. data/db/{migrations → migrate}/20110203151136_create_appstats_contexts.rb +0 -0
  8. data/db/{migrations → migrate}/20110203151635_rework_appstats_entries.rb +0 -0
  9. data/db/{migrations → migrate}/20110204183259_create_log_collectors.rb +0 -0
  10. data/db/{migrations → migrate}/20110207200324_add_separated_entry_times.rb +0 -0
  11. data/db/{migrations → migrate}/20110207200431_add_indexes.rb +0 -0
  12. data/db/{migrations → migrate}/20110207213514_create_appstats_actions.rb +0 -0
  13. data/db/{migrations → migrate}/20110208210921_align_entry_time_names.rb +0 -0
  14. data/db/{migrations → migrate}/20110210185911_create_appstats_test_object.rb +0 -0
  15. data/db/{migrations → migrate}/20110210225606_create_appstats_results.rb +0 -0
  16. data/db/{migrations → migrate}/20110215155830_create_appstats_hosts.rb +0 -0
  17. data/db/{migrations → migrate}/20110217215309_create_appstats_context_keys.rb +0 -0
  18. data/db/{migrations → migrate}/20110217220154_create_appstats_context_values.rb +0 -0
  19. data/db/{migrations → migrate}/20110217220357_add_additional_contexts_indexes.rb +0 -0
  20. data/db/{migrations → migrate}/20110217234136_add_appstats_results_contexts.rb +0 -0
  21. data/db/{migrations → migrate}/20110222215437_create_appstats_jobs.rb +0 -0
  22. data/db/{migrations → migrate}/20110223212232_add_appstats_entries_week_and_quarter.rb +0 -0
  23. data/db/{migrations → migrate}/20110225192624_add_appstats_log_collector_local_filename.rb +0 -0
  24. data/db/{migrations → migrate}/20110301170733_add_appstats_results_group_query_to_sql.rb +0 -0
  25. data/db/{migrations → migrate}/20110301170947_create_appstats_sub_results.rb +0 -0
  26. data/db/{migrations → migrate}/20110301195959_add_appstats_results_groups.rb +0 -0
  27. data/db/{migrations → migrate}/20110301212017_add_appstats_results_query_type.rb +0 -0
  28. data/db/{migrations → migrate}/20110301230757_rename_appstats_results_query_as_sql_to_query_to_sql.rb +0 -0
  29. data/db/{migrations → migrate}/20110311214833_add_appstats_results_db_connection.rb +0 -0
  30. data/db/{migrations → migrate}/20110318203339_add_appstats_results_latest_flag.rb +0 -0
  31. data/db/{migrations → migrate}/20110321154125_add_appstats_results_query_duration_in_seconds.rb +0 -0
  32. data/db/{migrations → migrate}/20110330171745_create_appstats_action_contexts.rb +0 -0
  33. data/db/{migrations → migrate}/20110510141236_create_audits.rb +0 -0
  34. data/db/{migrations → migrate}/20110510173343_add_test_object_columns.rb +0 -0
  35. data/db/{migrations → migrate}/20120118173343_add_appstats_context_indexes.rb +0 -0
  36. data/lib/appstats/action.rb +1 -1
  37. data/lib/appstats/action_context_key.rb +1 -1
  38. data/lib/appstats/audit.rb +1 -1
  39. data/lib/appstats/context.rb +1 -1
  40. data/lib/appstats/context_key.rb +1 -1
  41. data/lib/appstats/context_value.rb +1 -1
  42. data/lib/appstats/entry.rb +1 -1
  43. data/lib/appstats/host.rb +1 -1
  44. data/lib/appstats/log_collector.rb +1 -1
  45. data/lib/appstats/result.rb +1 -1
  46. data/lib/appstats/result_job.rb +1 -1
  47. data/lib/appstats/sub_result.rb +1 -1
  48. data/lib/appstats/tasks.rb +1 -1
  49. data/lib/appstats/test_object.rb +1 -1
  50. data/lib/appstats/version.rb +1 -1
  51. data/lib/templates/appstats.yml +1 -1
  52. data/spec/audit_spec.rb +7 -6
  53. data/spec/entry_spec.rb +8 -8
  54. data/spec/logger_spec.rb +22 -22
  55. metadata +40 -41
  56. data/Gemfile.lock.rails2 +0 -122
data/.gitignore CHANGED
@@ -1,7 +1,6 @@
1
1
  pkg/*
2
2
  *.gem
3
3
  .bundle
4
- db/migrate
5
4
  doc
6
5
  config/appstats.yml
7
6
  config/initializers/appstats.rb
@@ -1,85 +1,101 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- appstats (0.23.5)
4
+ appstats (0.24.0)
5
5
  daemons
6
6
  net-scp
7
- rails (>= 2.3.0)
7
+ rails (>= 3.2.1)
8
8
  redis
9
9
 
10
10
  GEM
11
11
  remote: http://rubygems.org/
12
12
  specs:
13
13
  Saikuro (1.1.0)
14
- ZenTest (4.5.0)
15
- abstract (1.0.0)
16
- actionmailer (3.0.7)
17
- actionpack (= 3.0.7)
18
- mail (~> 2.2.15)
19
- actionpack (3.0.7)
20
- activemodel (= 3.0.7)
21
- activesupport (= 3.0.7)
22
- builder (~> 2.1.2)
23
- erubis (~> 2.6.6)
24
- i18n (~> 0.5.0)
25
- rack (~> 1.2.1)
26
- rack-mount (~> 0.6.14)
27
- rack-test (~> 0.5.7)
28
- tzinfo (~> 0.3.23)
29
- activemodel (3.0.7)
30
- activesupport (= 3.0.7)
31
- builder (~> 2.1.2)
32
- i18n (~> 0.5.0)
33
- activerecord (3.0.7)
34
- activemodel (= 3.0.7)
35
- activesupport (= 3.0.7)
36
- arel (~> 2.0.2)
37
- tzinfo (~> 0.3.23)
38
- activeresource (3.0.7)
39
- activemodel (= 3.0.7)
40
- activesupport (= 3.0.7)
41
- activesupport (3.0.7)
42
- arel (2.0.9)
14
+ ZenTest (4.6.2)
15
+ actionmailer (3.2.1)
16
+ actionpack (= 3.2.1)
17
+ mail (~> 2.4.0)
18
+ actionpack (3.2.1)
19
+ activemodel (= 3.2.1)
20
+ activesupport (= 3.2.1)
21
+ builder (~> 3.0.0)
22
+ erubis (~> 2.7.0)
23
+ journey (~> 1.0.1)
24
+ rack (~> 1.4.0)
25
+ rack-cache (~> 1.1)
26
+ rack-test (~> 0.6.1)
27
+ sprockets (~> 2.1.2)
28
+ activemodel (3.2.1)
29
+ activesupport (= 3.2.1)
30
+ builder (~> 3.0.0)
31
+ activerecord (3.2.1)
32
+ activemodel (= 3.2.1)
33
+ activesupport (= 3.2.1)
34
+ arel (~> 3.0.0)
35
+ tzinfo (~> 0.3.29)
36
+ activeresource (3.2.1)
37
+ activemodel (= 3.2.1)
38
+ activesupport (= 3.2.1)
39
+ activesupport (3.2.1)
40
+ i18n (~> 0.6)
41
+ multi_json (~> 1.0)
42
+ arel (3.0.0)
43
43
  arrayfields (4.7.4)
44
- autotest-fsevent (0.2.5)
44
+ autotest-fsevent (0.2.7)
45
45
  sys-uname
46
- builder (2.1.2)
46
+ builder (3.0.0)
47
47
  chronic (0.3.0)
48
- churn (0.0.13)
48
+ churn (0.0.15)
49
+ arrayfields (= 4.7.4)
49
50
  chronic (>= 0.2.3)
51
+ chronic (>= 0.2.3)
52
+ fattr (= 2.2.0)
53
+ hirb (= 0.5.0)
50
54
  hirb
55
+ jeweler (= 1.6.4)
56
+ json (= 1.6.1)
51
57
  json_pure
52
58
  main
53
- ruby_parser (~> 2.0.4)
59
+ main (>= 4.6.0)
60
+ map (= 4.3.0)
61
+ ruby_parser (= 2.3.1)
62
+ ruby_parser (~> 2.3)
63
+ sexp_processor (= 3.0.7)
54
64
  sexp_processor (~> 3.0.3)
55
65
  colored (1.2)
56
- daemons (1.1.4)
57
- diff-lcs (1.1.2)
58
- erubis (2.6.6)
59
- abstract (>= 1.0.0)
66
+ daemons (1.1.6)
67
+ diff-lcs (1.1.3)
68
+ erubis (2.7.0)
60
69
  fattr (2.2.0)
61
- flay (1.4.2)
70
+ ffi (1.0.11)
71
+ flay (1.4.3)
62
72
  ruby_parser (~> 2.0)
63
73
  sexp_processor (~> 3.0)
64
- flog (2.5.1)
74
+ flog (2.5.3)
65
75
  ruby_parser (~> 2.0)
66
76
  sexp_processor (~> 3.0)
67
- guard (0.3.4)
77
+ git (1.2.5)
78
+ guard (1.0.0)
79
+ ffi (>= 0.5.0)
68
80
  thor (~> 0.14.6)
69
- guard-rspec (0.3.1)
70
- guard (>= 0.2.2)
71
- haml (3.0.25)
72
- hirb (0.4.3)
73
- i18n (0.5.0)
74
- json_pure (1.5.1)
75
- mail (2.2.19)
76
- activesupport (>= 2.3.6)
81
+ guard-rspec (0.6.0)
82
+ guard (>= 0.10.0)
83
+ hike (1.2.1)
84
+ hirb (0.5.0)
85
+ i18n (0.6.0)
86
+ jeweler (1.6.4)
87
+ bundler (~> 1.0)
88
+ git (>= 1.2.5)
89
+ rake
90
+ journey (1.0.1)
91
+ json (1.6.1)
92
+ json_pure (1.6.5)
93
+ mail (2.4.1)
77
94
  i18n (>= 0.4.0)
78
95
  mime-types (~> 1.16)
79
96
  treetop (~> 1.4.8)
80
- main (4.4.0)
81
- arrayfields (>= 4.7.4)
82
- fattr (>= 2.1.0)
97
+ main (4.7.1)
98
+ map (4.3.0)
83
99
  metric_fu (2.1.1)
84
100
  Saikuro (>= 1.1.0)
85
101
  activesupport (>= 2.0.0)
@@ -92,41 +108,48 @@ GEM
92
108
  reek (>= 1.2.6)
93
109
  roodi (>= 2.1.0)
94
110
  syntax
95
- mime-types (1.16)
96
- mysql (2.8.1)
111
+ mime-types (1.17.2)
112
+ multi_json (1.0.4)
113
+ mysql2 (0.3.11)
97
114
  net-scp (1.0.4)
98
115
  net-ssh (>= 1.99.1)
99
- net-ssh (2.2.1)
100
- polyglot (0.3.2)
101
- rack (1.2.4)
102
- rack-mount (0.6.14)
103
- rack (>= 1.0.0)
104
- rack-test (0.5.7)
116
+ net-ssh (2.3.0)
117
+ polyglot (0.3.3)
118
+ progressbar (0.9.2)
119
+ rack (1.4.1)
120
+ rack-cache (1.1)
121
+ rack (>= 0.4)
122
+ rack-ssl (1.3.2)
123
+ rack
124
+ rack-test (0.6.1)
105
125
  rack (>= 1.0)
106
- rails (3.0.7)
107
- actionmailer (= 3.0.7)
108
- actionpack (= 3.0.7)
109
- activerecord (= 3.0.7)
110
- activeresource (= 3.0.7)
111
- activesupport (= 3.0.7)
126
+ rails (3.2.1)
127
+ actionmailer (= 3.2.1)
128
+ actionpack (= 3.2.1)
129
+ activerecord (= 3.2.1)
130
+ activeresource (= 3.2.1)
131
+ activesupport (= 3.2.1)
112
132
  bundler (~> 1.0)
113
- railties (= 3.0.7)
114
- rails_best_practices (0.7.5)
133
+ railties (= 3.2.1)
134
+ rails_best_practices (1.7.2)
115
135
  activesupport
116
- colored (~> 1.2)
117
- erubis (~> 2.6.6)
118
- haml (~> 3.0.18)
136
+ colored
137
+ erubis
119
138
  i18n
120
- ruby-progressbar (~> 0.0.9)
121
- ruby_parser (~> 2.0.4)
122
- railties (3.0.7)
123
- actionpack (= 3.0.7)
124
- activesupport (= 3.0.7)
139
+ progressbar
140
+ sexp_processor
141
+ railties (3.2.1)
142
+ actionpack (= 3.2.1)
143
+ activesupport (= 3.2.1)
144
+ rack-ssl (~> 1.3.2)
125
145
  rake (>= 0.8.7)
126
- thor (~> 0.14.4)
127
- rake (0.8.7)
128
- rb-fsevent (0.4.0)
129
- rcov (0.9.9)
146
+ rdoc (~> 3.4)
147
+ thor (~> 0.14.6)
148
+ rake (0.9.2.2)
149
+ rb-fsevent (0.9.0)
150
+ rcov (1.0.0)
151
+ rdoc (3.12)
152
+ json (~> 1.4)
130
153
  redis (2.2.2)
131
154
  reek (1.2.8)
132
155
  ruby2ruby (~> 1.2)
@@ -134,31 +157,36 @@ GEM
134
157
  sexp_processor (~> 3.0)
135
158
  roodi (2.1.0)
136
159
  ruby_parser
137
- rspec (2.5.0)
138
- rspec-core (~> 2.5.0)
139
- rspec-expectations (~> 2.5.0)
140
- rspec-mocks (~> 2.5.0)
141
- rspec-core (2.5.1)
142
- rspec-expectations (2.5.0)
160
+ rspec (2.8.0)
161
+ rspec-core (~> 2.8.0)
162
+ rspec-expectations (~> 2.8.0)
163
+ rspec-mocks (~> 2.8.0)
164
+ rspec-core (2.8.0)
165
+ rspec-expectations (2.8.0)
143
166
  diff-lcs (~> 1.1.2)
144
- rspec-mocks (2.5.0)
145
- ruby-progressbar (0.0.10)
146
- ruby2ruby (1.2.5)
167
+ rspec-mocks (2.8.0)
168
+ ruby2ruby (1.3.1)
147
169
  ruby_parser (~> 2.0)
148
170
  sexp_processor (~> 3.0)
149
- ruby_parser (2.0.6)
171
+ ruby_parser (2.3.1)
150
172
  sexp_processor (~> 3.0)
151
- sexp_processor (3.0.5)
152
- standalone_migrations (0.4.7)
153
- activerecord
173
+ sexp_processor (3.0.7)
174
+ sprockets (2.1.2)
175
+ hike (~> 1.2)
176
+ rack (~> 1.0)
177
+ tilt (!= 1.3.0, ~> 1.1)
178
+ standalone_migrations (1.0.5)
179
+ activerecord (>= 3)
154
180
  rake
155
181
  syntax (1.0.0)
156
- sys-uname (0.8.5)
182
+ sys-uname (0.9.0)
183
+ ffi (>= 1.0.0)
157
184
  thor (0.14.6)
185
+ tilt (1.3.3)
158
186
  treetop (1.4.10)
159
187
  polyglot
160
188
  polyglot (>= 0.3.1)
161
- tzinfo (0.3.26)
189
+ tzinfo (0.3.31)
162
190
 
163
191
  PLATFORMS
164
192
  ruby
@@ -169,7 +197,7 @@ DEPENDENCIES
169
197
  autotest-fsevent
170
198
  guard-rspec
171
199
  metric_fu
172
- mysql
200
+ mysql2
173
201
  rake
174
202
  rb-fsevent
175
203
  rspec
data/Rakefile CHANGED
@@ -17,16 +17,7 @@ require 'tasks/standalone_migrations'
17
17
  import 'lib/appstats/ci.rake'
18
18
 
19
19
  begin
20
- MigratorTasks.new do |t|
21
- t.migrations = "db/migrations"
22
- t.config = "db/config.yml"
23
- t.schema = "db/schema.rb"
24
- t.env = "DB"
25
- # TODO: figure out why this property went away
26
- # t.default_env = "development"
27
- t.verbose = true
28
- t.log_level = Logger::ERROR
29
- end
20
+ require 'tasks/standalone_migrations'
30
21
  rescue LoadError => e
31
22
  puts "gem install standalone_migrations to get db:migrate:* tasks! (Error: #{e})"
32
23
  end
@@ -12,9 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.summary = %q{Provide usage statistics about how your application is being used}
13
13
  s.description = %q{Provide usage statistics about how your application is being used}
14
14
 
15
- # Models are to be used in Rails 3 environment, but the logger can work with Rails 2 apps
16
- # But, for testing appstats itself, you will need Rails 3
17
- s.add_dependency('rails','>=2.3.0')
15
+ s.add_dependency('rails','>=3.2.1')
18
16
  s.add_dependency('daemons')
19
17
  s.add_dependency('net-scp')
20
18
  s.add_dependency('redis')
@@ -23,7 +21,7 @@ Gem::Specification.new do |s|
23
21
  s.add_development_dependency('rspec')
24
22
  s.add_development_dependency('ZenTest')
25
23
  s.add_development_dependency('standalone_migrations')
26
- s.add_development_dependency('mysql')
24
+ s.add_development_dependency('mysql2')
27
25
  s.add_development_dependency('metric_fu')
28
26
  s.add_development_dependency('guard-rspec')
29
27
  s.add_development_dependency('autotest-fsevent') if RUBY_PLATFORM =~ /darwin/i
@@ -1,5 +1,5 @@
1
1
  development:
2
- adapter: mysql
2
+ adapter: mysql2
3
3
  database: appstats_development
4
4
  username: root
5
5
  password:
@@ -9,7 +9,7 @@ development:
9
9
  adapter: memcached
10
10
  servers: localhost
11
11
  test:
12
- adapter: mysql
12
+ adapter: mysql2
13
13
  database: appstats_test
14
14
  username: root
15
15
  password:
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Appstats
3
3
  class Action < ActiveRecord::Base
4
- set_table_name "appstats_actions"
4
+ self.table_name = "appstats_actions"
5
5
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
6
6
 
7
7
  attr_accessible :name, :plural_name, :status
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Appstats
3
3
  class ActionContextKey < ActiveRecord::Base
4
- set_table_name "appstats_action_context_keys"
4
+ self.table_name = "appstats_action_context_keys"
5
5
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
6
6
 
7
7
  attr_accessible :action_name, :context_key, :status
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Appstats
3
3
  class Audit < ActiveRecord::Base
4
- set_table_name "appstats_audits"
4
+ self.table_name = "appstats_audits"
5
5
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
6
6
 
7
7
  attr_accessible :table_name, :column_type, :obj_name, :obj_attr, :obj_type, :obj_id, :action, :old_value, :new_value, :old_value_full, :new_value_full
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Appstats
3
3
  class Context < ActiveRecord::Base
4
- set_table_name "appstats_contexts"
4
+ self.table_name = "appstats_contexts"
5
5
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
6
6
 
7
7
  belongs_to :entry, :class_name => "Appstats::Entry", :foreign_key => "appstats_entry_id"
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class ContextKey < ActiveRecord::Base
3
- set_table_name "appstats_context_keys"
3
+ self.table_name = "appstats_context_keys"
4
4
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
5
5
 
6
6
  attr_accessible :name, :status
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class ContextValue < ActiveRecord::Base
3
- set_table_name "appstats_context_values"
3
+ self.table_name = "appstats_context_values"
4
4
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
5
5
 
6
6
  attr_accessible :name, :status
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Appstats
3
3
  class Entry < ActiveRecord::Base
4
- set_table_name "appstats_entries"
4
+ self.table_name = "appstats_entries"
5
5
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
6
6
 
7
7
  has_many :contexts, :class_name => "Appstats::Context", :table_name => 'appstats_contexts', :foreign_key => 'appstats_entry_id', :order => 'context_key'
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class Host < ActiveRecord::Base
3
- set_table_name "appstats_hosts"
3
+ self.table_name = "appstats_hosts"
4
4
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
5
5
 
6
6
  attr_accessible :name, :status
@@ -3,7 +3,7 @@ require 'net/scp'
3
3
 
4
4
  module Appstats
5
5
  class LogCollector < ActiveRecord::Base
6
- set_table_name "appstats_log_collectors"
6
+ self.table_name = "appstats_log_collectors"
7
7
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
8
8
 
9
9
  @@downloaded_log_directory = nil
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class Result < ActiveRecord::Base
3
- set_table_name "appstats_results"
3
+ self.table_name = "appstats_results"
4
4
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
5
5
 
6
6
  attr_accessible :name, :result_type,
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class ResultJob < ActiveRecord::Base
3
- set_table_name "appstats_result_jobs"
3
+ self.table_name = "appstats_result_jobs"
4
4
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
5
5
 
6
6
  attr_accessible :name, :frequency, :status, :query, :last_run_at, :query_type
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class SubResult < ActiveRecord::Base
3
- set_table_name "appstats_sub_results"
3
+ self.table_name = "appstats_sub_results"
4
4
  establish_connection "appstats_#{Rails.env}" if configurations.keys.include?("appstats_#{Rails.env}")
5
5
 
6
6
  attr_accessible :context_filter, :count, :ratio_of_total
@@ -14,7 +14,7 @@ module Appstats
14
14
  here = File.expand_path(File.dirname(File.dirname(File.dirname((__FILE__)))))
15
15
  @base = base
16
16
  @vendor = "#{here}/vendor"
17
- @gem_migrations = "#{here}/db/migrations"
17
+ @gem_migrations = "#{here}/db/migrate"
18
18
  @app_migrate = "#{base}/db/migrate"
19
19
  @config = "#{base}/db/config.yml"
20
20
  @schema = "#{base}/db/schema.rb"
@@ -1,6 +1,6 @@
1
1
  module Appstats
2
2
  class TestObject < ActiveRecord::Base
3
- set_table_name "appstats_test_objects"
3
+ self.table_name = "appstats_test_objects"
4
4
  acts_as_appstatsable
5
5
  acts_as_auditable
6
6
 
@@ -1,3 +1,3 @@
1
1
  module Appstats
2
- VERSION = "0.23.5"
2
+ VERSION = "0.24.0"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  database:
2
- adapter: mysql
2
+ adapter: mysql2
3
3
  database: mystatsdb_production
4
4
  username: root
5
5
  password:
@@ -90,6 +90,7 @@ module Appstats
90
90
  Audit.count.should == 15
91
91
 
92
92
  all = Audit.all
93
+
93
94
  all[0].column_type.should == nil
94
95
  all[0].obj_type.should == nil
95
96
 
@@ -97,11 +98,11 @@ module Appstats
97
98
  all[1].column_type.should == "varchar(255)"
98
99
  all[1].obj_type.should == "string"
99
100
 
100
- all[2].obj_attr.should == "created_at"
101
+ all[2].obj_attr.should == "blah_timestamp"
101
102
  all[2].column_type.should == "datetime"
102
103
  all[2].obj_type.should == "datetime"
103
104
 
104
- all[3].obj_attr.should == "blah_timestamp"
105
+ all[3].obj_attr.should == "created_at"
105
106
  all[3].column_type.should == "datetime"
106
107
  all[3].obj_type.should == "datetime"
107
108
 
@@ -109,12 +110,12 @@ module Appstats
109
110
  all[4].column_type.should == "datetime"
110
111
  all[4].obj_type.should == "datetime"
111
112
 
112
- all[5].obj_attr.should == "id"
113
- all[5].column_type.should == "int(11)"
113
+ all[5].obj_attr.should == "blah_decimal"
114
+ all[5].column_type.should == "decimal(10,0)"
114
115
  all[5].obj_type.should == "integer"
115
116
 
116
- all[6].obj_attr.should == "blah_decimal"
117
- all[6].column_type.should == "decimal(10,0)"
117
+ all[6].obj_attr.should == "id"
118
+ all[6].column_type.should == "int(11)"
118
119
  all[6].obj_type.should == "integer"
119
120
 
120
121
  all[7].obj_attr.should == "blah_boolean"
@@ -193,18 +193,18 @@ module Appstats
193
193
  end
194
194
 
195
195
  it "should understand an entry without contexts" do
196
- entry = Entry.create_from_logger_string("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
196
+ entry = Entry.create_from_logger_string("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
197
197
  Entry.count.should == @before_count + 1
198
198
  entry.action.should == "address_search"
199
- entry.raw_entry.should == "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
199
+ entry.raw_entry.should == "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
200
200
  entry.occurred_at.should == Time.parse("2010-09-21 23:15:20")
201
201
  end
202
202
 
203
203
  it "should understand contexts" do
204
- entry = Entry.create_from_logger_string("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
204
+ entry = Entry.create_from_logger_string("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
205
205
  Entry.count.should == @before_count + 1
206
206
  entry.action.should == "address_filter"
207
- entry.raw_entry.should == "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
207
+ entry.raw_entry.should == "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
208
208
  entry.occurred_at.should == Time.parse("2010-09-21 23:15:20")
209
209
  entry.contexts.size.should == 2
210
210
  entry.contexts[0].context_key = "app_name"
@@ -214,10 +214,10 @@ module Appstats
214
214
  end
215
215
 
216
216
  it "should handle 'action' as a context" do
217
- entry = Entry.create_from_logger_string('0.23.5 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb')
217
+ entry = Entry.create_from_logger_string('0.24.0 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb')
218
218
  Entry.count.should == @before_count + 1
219
219
  entry.action.should == "page-view"
220
- entry.raw_entry.should == "0.23.5 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb"
220
+ entry.raw_entry.should == "0.24.0 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : action=save_ovcen : app_name=cdb"
221
221
  entry.occurred_at.should == Time.parse("2011-02-24 12:59:57")
222
222
  entry.contexts.size.should == 2
223
223
  entry.contexts[0].context_key = "action"
@@ -228,10 +228,10 @@ module Appstats
228
228
  end
229
229
 
230
230
  it "should handle multiple of the same 'context'" do
231
- entry = Entry.create_from_logger_string('0.23.5 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb')
231
+ entry = Entry.create_from_logger_string('0.24.0 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb')
232
232
  Entry.count.should == @before_count + 1
233
233
  entry.action.should == "page-view"
234
- entry.raw_entry.should == "0.23.5 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb"
234
+ entry.raw_entry.should == "0.24.0 setup[:,=,-n] 2011-02-24 12:59:57 action=page-view : app_name=market : app_name=cdb"
235
235
  entry.occurred_at.should == Time.parse("2011-02-24 12:59:57")
236
236
  entry.contexts.size.should == 2
237
237
  entry.contexts[0].context_key = "app_name"
@@ -122,12 +122,12 @@ module Appstats
122
122
 
123
123
  it "should accept numbers" do
124
124
  Appstats::Logger.entry(5, :blah => 6)
125
- Appstats::Logger.raw_read.should == ["0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=5 : blah=6"]
125
+ Appstats::Logger.raw_read.should == ["0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=5 : blah=6"]
126
126
  end
127
127
 
128
128
  it "should accept arrays" do
129
129
  Appstats::Logger.entry('search', :provider => [ 'one', 'two' ])
130
- Appstats::Logger.raw_read.should == ["0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=search : provider=one : provider=two"]
130
+ Appstats::Logger.raw_read.should == ["0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=search : provider=one : provider=two"]
131
131
  end
132
132
 
133
133
 
@@ -137,7 +137,7 @@ module Appstats
137
137
 
138
138
  it "should look similar to regular entry" do
139
139
  Appstats::Logger.exception_entry(RuntimeError.new("blah"),:on => "login")
140
- Appstats::Logger.raw_read.should == ["0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=appstats-exception : error=blah : on=login"]
140
+ Appstats::Logger.raw_read.should == ["0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=appstats-exception : error=blah : on=login"]
141
141
  end
142
142
 
143
143
  end
@@ -154,47 +154,47 @@ module Appstats
154
154
 
155
155
  it "should handle a statistics entry" do
156
156
  expected = { :action => "address_search", :timestamp => "2010-09-21 23:15:20" }
157
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
157
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search")
158
158
  actual.should == expected
159
159
  end
160
160
 
161
161
  it "should handle contexts" do
162
162
  expected = { :action => "address_filter", :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => 'Market' }
163
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
163
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live")
164
164
  actual.should == expected
165
165
  end
166
166
 
167
167
  it "should handle multiple actions" do
168
168
  expected = { :action => ["address_filter", "blah"], :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => 'Market' }
169
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : action=blah : app_name=Market : server=Live")
169
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : action=blah : app_name=Market : server=Live")
170
170
  actual.should == expected
171
171
  end
172
172
 
173
173
  it "should handle multiple of same context" do
174
174
  expected = { :action => "address_filter", :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => ['Sin','Market'] }
175
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Sin : app_name=Market : server=Live")
175
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Sin : app_name=Market : server=Live")
176
176
  actual.should == expected
177
177
  end
178
178
 
179
179
  it "should handle no actions" do
180
180
  expected = { :action => "UNKNOWN_ACTION", :timestamp => "2010-09-21 23:15:20", :server => "Live", :app_name => 'Market' }
181
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 app_name=Market : server=Live")
181
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 app_name=Market : server=Live")
182
182
  actual.should == expected
183
183
  end
184
184
 
185
185
  it "should handle actions with the delimiter (and change the delimiter)" do
186
186
  expected = { :action => "address:=search-n", :timestamp => "2010-09-21 23:15:20" }
187
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n")
187
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n")
188
188
  actual.should == expected
189
189
 
190
190
  expected = { :action => "address::search==--n", :timestamp => "2010-09-21 23:15:20" }
191
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n")
191
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n")
192
192
  actual.should == expected
193
193
  end
194
194
 
195
195
  it "should handle contexts with the delimiter (and change the delimiter)" do
196
196
  expected = { :action => "address", :timestamp => "2010-09-21 23:15:20", :server => "market:eval=-n" }
197
- actual = Appstats::Logger.entry_to_hash("0.23.5 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n")
197
+ actual = Appstats::Logger.entry_to_hash("0.24.0 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n")
198
198
  actual.should == expected
199
199
  end
200
200
 
@@ -203,66 +203,66 @@ module Appstats
203
203
  describe "#entry_to_s" do
204
204
 
205
205
  it "should handle a statistics entry" do
206
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
206
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search"
207
207
  actual = Appstats::Logger.entry_to_s("address_search")
208
208
  actual.should == expected
209
209
  end
210
210
 
211
211
  it "should handle numbers" do
212
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=1 : note=2.2"
212
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=1 : note=2.2"
213
213
  actual = Appstats::Logger.entry_to_s(1,:note => 2.2)
214
214
  actual.should == expected
215
215
  end
216
216
 
217
217
  it "should handle default contexts" do
218
218
  Appstats::Logger.default_contexts[:app_name] = "market"
219
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : app_name=market"
219
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : app_name=market"
220
220
  actual = Appstats::Logger.entry_to_s("address_search")
221
221
  actual.should == expected
222
222
  end
223
223
 
224
224
  it "should handle contexts (and sort them by symbol)" do
225
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
225
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_filter : app_name=Market : server=Live"
226
226
  actual = Appstats::Logger.entry_to_s("address_filter", { :server => "Live", :app_name => 'Market' })
227
227
  actual.should == expected
228
228
  end
229
229
 
230
230
  it "should handle actions with the delimiter (and change the delimiter)" do
231
- expected = "0.23.5 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n"
231
+ expected = "0.24.0 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=search-n"
232
232
  actual = Appstats::Logger.entry_to_s("address:=search-n")
233
233
  actual.should == expected
234
234
 
235
- expected = "0.23.5 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n"
235
+ expected = "0.24.0 setup[:::,===,---n] 2010-09-21 23:15:20 action===address::search==--n"
236
236
  actual = Appstats::Logger.entry_to_s("address::search==--n")
237
237
  actual.should == expected
238
238
  end
239
239
 
240
240
  it "should handle contexts with the delimiter (and change the delimiter)" do
241
- expected = "0.23.5 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n"
241
+ expected = "0.24.0 setup[::,==,--n] 2010-09-21 23:15:20 action==address :: server==market:eval=-n"
242
242
  actual = Appstats::Logger.entry_to_s("address", :server => 'market:eval=-n')
243
243
  actual.should == expected
244
244
  end
245
245
 
246
246
  it "should ignore spaces" do
247
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address search"
247
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address search"
248
248
  actual = Appstats::Logger.entry_to_s("address search")
249
249
  actual.should == expected
250
250
  end
251
251
 
252
252
  it "should convert newlines in action" do
253
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_-nsearch"
253
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_-nsearch"
254
254
  actual = Appstats::Logger.entry_to_s("address_\nsearch")
255
255
  actual.should == expected
256
256
  end
257
257
 
258
258
  it "should convert newlines in context" do
259
- expected = "0.23.5 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : blah=some-nlong-nstatement"
259
+ expected = "0.24.0 setup[:,=,-n] 2010-09-21 23:15:20 action=address_search : blah=some-nlong-nstatement"
260
260
  actual = Appstats::Logger.entry_to_s("address_search",:blah => "some\nlong\nstatement")
261
261
  actual.should == expected
262
262
  end
263
263
 
264
264
  it "should convert newlines based on the delimiter" do
265
- expected = "0.23.5 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=--nsearch-n"
265
+ expected = "0.24.0 setup[::,==,--n] 2010-09-21 23:15:20 action==address:=--nsearch-n"
266
266
  actual = Appstats::Logger.entry_to_s("address:=\nsearch-n")
267
267
  actual.should == expected
268
268
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appstats
3
3
  version: !ruby/object:Gem::Version
4
- hash: 73
4
+ hash: 127
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 23
9
- - 5
10
- version: 0.23.5
8
+ - 24
9
+ - 0
10
+ version: 0.24.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andrew Forward
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-17 00:00:00 Z
18
+ date: 2012-01-30 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rails
@@ -25,12 +25,12 @@ dependencies:
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- hash: 3
28
+ hash: 13
29
29
  segments:
30
- - 2
31
30
  - 3
32
- - 0
33
- version: 2.3.0
31
+ - 2
32
+ - 1
33
+ version: 3.2.1
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
36
  - !ruby/object:Gem::Dependency
@@ -132,7 +132,7 @@ dependencies:
132
132
  type: :development
133
133
  version_requirements: *id008
134
134
  - !ruby/object:Gem::Dependency
135
- name: mysql
135
+ name: mysql2
136
136
  prerelease: false
137
137
  requirement: &id009 !ruby/object:Gem::Requirement
138
138
  none: false
@@ -214,7 +214,6 @@ files:
214
214
  - .gitignore
215
215
  - Gemfile
216
216
  - Gemfile.lock
217
- - Gemfile.lock.rails2
218
217
  - History.txt
219
218
  - README.rdoc
220
219
  - Rakefile
@@ -224,36 +223,36 @@ files:
224
223
  - config/daemons.yml
225
224
  - config/initializers/appstats.rb.example
226
225
  - db/config.yml
227
- - db/migrations/20110105221941_create_appstats_entries.rb
228
- - db/migrations/20110203151136_create_appstats_contexts.rb
229
- - db/migrations/20110203151635_rework_appstats_entries.rb
230
- - db/migrations/20110204183259_create_log_collectors.rb
231
- - db/migrations/20110207200324_add_separated_entry_times.rb
232
- - db/migrations/20110207200431_add_indexes.rb
233
- - db/migrations/20110207213514_create_appstats_actions.rb
234
- - db/migrations/20110208210921_align_entry_time_names.rb
235
- - db/migrations/20110210185911_create_appstats_test_object.rb
236
- - db/migrations/20110210225606_create_appstats_results.rb
237
- - db/migrations/20110215155830_create_appstats_hosts.rb
238
- - db/migrations/20110217215309_create_appstats_context_keys.rb
239
- - db/migrations/20110217220154_create_appstats_context_values.rb
240
- - db/migrations/20110217220357_add_additional_contexts_indexes.rb
241
- - db/migrations/20110217234136_add_appstats_results_contexts.rb
242
- - db/migrations/20110222215437_create_appstats_jobs.rb
243
- - db/migrations/20110223212232_add_appstats_entries_week_and_quarter.rb
244
- - db/migrations/20110225192624_add_appstats_log_collector_local_filename.rb
245
- - db/migrations/20110301170733_add_appstats_results_group_query_to_sql.rb
246
- - db/migrations/20110301170947_create_appstats_sub_results.rb
247
- - db/migrations/20110301195959_add_appstats_results_groups.rb
248
- - db/migrations/20110301212017_add_appstats_results_query_type.rb
249
- - db/migrations/20110301230757_rename_appstats_results_query_as_sql_to_query_to_sql.rb
250
- - db/migrations/20110311214833_add_appstats_results_db_connection.rb
251
- - db/migrations/20110318203339_add_appstats_results_latest_flag.rb
252
- - db/migrations/20110321154125_add_appstats_results_query_duration_in_seconds.rb
253
- - db/migrations/20110330171745_create_appstats_action_contexts.rb
254
- - db/migrations/20110510141236_create_audits.rb
255
- - db/migrations/20110510173343_add_test_object_columns.rb
256
- - db/migrations/20120118173343_add_appstats_context_indexes.rb
226
+ - db/migrate/20110105221941_create_appstats_entries.rb
227
+ - db/migrate/20110203151136_create_appstats_contexts.rb
228
+ - db/migrate/20110203151635_rework_appstats_entries.rb
229
+ - db/migrate/20110204183259_create_log_collectors.rb
230
+ - db/migrate/20110207200324_add_separated_entry_times.rb
231
+ - db/migrate/20110207200431_add_indexes.rb
232
+ - db/migrate/20110207213514_create_appstats_actions.rb
233
+ - db/migrate/20110208210921_align_entry_time_names.rb
234
+ - db/migrate/20110210185911_create_appstats_test_object.rb
235
+ - db/migrate/20110210225606_create_appstats_results.rb
236
+ - db/migrate/20110215155830_create_appstats_hosts.rb
237
+ - db/migrate/20110217215309_create_appstats_context_keys.rb
238
+ - db/migrate/20110217220154_create_appstats_context_values.rb
239
+ - db/migrate/20110217220357_add_additional_contexts_indexes.rb
240
+ - db/migrate/20110217234136_add_appstats_results_contexts.rb
241
+ - db/migrate/20110222215437_create_appstats_jobs.rb
242
+ - db/migrate/20110223212232_add_appstats_entries_week_and_quarter.rb
243
+ - db/migrate/20110225192624_add_appstats_log_collector_local_filename.rb
244
+ - db/migrate/20110301170733_add_appstats_results_group_query_to_sql.rb
245
+ - db/migrate/20110301170947_create_appstats_sub_results.rb
246
+ - db/migrate/20110301195959_add_appstats_results_groups.rb
247
+ - db/migrate/20110301212017_add_appstats_results_query_type.rb
248
+ - db/migrate/20110301230757_rename_appstats_results_query_as_sql_to_query_to_sql.rb
249
+ - db/migrate/20110311214833_add_appstats_results_db_connection.rb
250
+ - db/migrate/20110318203339_add_appstats_results_latest_flag.rb
251
+ - db/migrate/20110321154125_add_appstats_results_query_duration_in_seconds.rb
252
+ - db/migrate/20110330171745_create_appstats_action_contexts.rb
253
+ - db/migrate/20110510141236_create_audits.rb
254
+ - db/migrate/20110510173343_add_test_object_columns.rb
255
+ - db/migrate/20120118173343_add_appstats_context_indexes.rb
257
256
  - db/schema.rb
258
257
  - doc/benchmarks/Benchmark.php
259
258
  - doc/benchmarks/Predis/Autoloader.php
@@ -1,122 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- appstats (0.23.5)
5
- daemons
6
- net-scp
7
- rails (>= 2.3.0)
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- Saikuro (1.1.0)
13
- ZenTest (4.5.0)
14
- abstract (1.0.0)
15
- actionmailer (2.3.11)
16
- actionpack (= 2.3.11)
17
- actionpack (2.3.11)
18
- activesupport (= 2.3.11)
19
- rack (~> 1.1.0)
20
- activerecord (2.3.11)
21
- activesupport (= 2.3.11)
22
- activeresource (2.3.11)
23
- activesupport (= 2.3.11)
24
- activesupport (2.3.11)
25
- arrayfields (4.7.4)
26
- chronic (0.3.0)
27
- churn (0.0.13)
28
- chronic (>= 0.2.3)
29
- hirb
30
- json_pure
31
- main
32
- ruby_parser (~> 2.0.4)
33
- sexp_processor (~> 3.0.3)
34
- colored (1.2)
35
- daemons (1.1.2)
36
- diff-lcs (1.1.2)
37
- erubis (2.6.6)
38
- abstract (>= 1.0.0)
39
- fattr (2.2.0)
40
- flay (1.4.2)
41
- ruby_parser (~> 2.0)
42
- sexp_processor (~> 3.0)
43
- flog (2.5.1)
44
- ruby_parser (~> 2.0)
45
- sexp_processor (~> 3.0)
46
- haml (3.0.25)
47
- hirb (0.4.3)
48
- i18n (0.5.0)
49
- json_pure (1.5.1)
50
- main (4.4.0)
51
- arrayfields (>= 4.7.4)
52
- fattr (>= 2.1.0)
53
- metric_fu (2.1.1)
54
- Saikuro (>= 1.1.0)
55
- activesupport (>= 2.0.0)
56
- chronic (~> 0.3.0)
57
- churn (>= 0.0.7)
58
- flay (>= 1.2.1)
59
- flog (>= 2.3.0)
60
- rails_best_practices (>= 0.6.4)
61
- rcov (>= 0.8.3.3)
62
- reek (>= 1.2.6)
63
- roodi (>= 2.1.0)
64
- syntax
65
- mysql (2.8.1)
66
- net-scp (1.0.4)
67
- net-ssh (>= 1.99.1)
68
- net-ssh (2.1.4)
69
- rack (1.1.2)
70
- rails (2.3.11)
71
- actionmailer (= 2.3.11)
72
- actionpack (= 2.3.11)
73
- activerecord (= 2.3.11)
74
- activeresource (= 2.3.11)
75
- activesupport (= 2.3.11)
76
- rake (>= 0.8.3)
77
- rails_best_practices (0.7.5)
78
- activesupport
79
- colored (~> 1.2)
80
- erubis (~> 2.6.6)
81
- haml (~> 3.0.18)
82
- i18n
83
- ruby-progressbar (~> 0.0.9)
84
- ruby_parser (~> 2.0.4)
85
- rake (0.8.7)
86
- rcov (0.9.9)
87
- reek (1.2.8)
88
- ruby2ruby (~> 1.2)
89
- ruby_parser (~> 2.0)
90
- sexp_processor (~> 3.0)
91
- roodi (2.1.0)
92
- ruby_parser
93
- rspec (2.5.0)
94
- rspec-core (~> 2.5.0)
95
- rspec-expectations (~> 2.5.0)
96
- rspec-mocks (~> 2.5.0)
97
- rspec-core (2.5.1)
98
- rspec-expectations (2.5.0)
99
- diff-lcs (~> 1.1.2)
100
- rspec-mocks (2.5.0)
101
- ruby-progressbar (0.0.10)
102
- ruby2ruby (1.2.5)
103
- ruby_parser (~> 2.0)
104
- sexp_processor (~> 3.0)
105
- ruby_parser (2.0.6)
106
- sexp_processor (~> 3.0)
107
- sexp_processor (3.0.5)
108
- standalone_migrations (0.4.5)
109
- activerecord
110
- rake
111
- syntax (1.0.0)
112
-
113
- PLATFORMS
114
- ruby
115
-
116
- DEPENDENCIES
117
- ZenTest
118
- appstats!
119
- metric_fu
120
- mysql
121
- rspec
122
- standalone_migrations