instructure-marginalia 1.1.3 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -2
- data/Gemfile +11 -0
- data/README.md +4 -9
- data/lib/marginalia.rb +33 -5
- data/lib/marginalia/comment.rb +4 -4
- data/lib/marginalia/railtie.rb +4 -4
- data/marginalia.gemspec +6 -4
- data/test/query_comments_test.rb +32 -0
- metadata +42 -55
- data/.rbenv-version +0 -1
- data/Gemfile.lock +0 -67
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 412b0d5c9d4e67775eddfadc06b23cf0cffd4590
|
4
|
+
data.tar.gz: 69b196fda9c7a270da2d4b69d68139af458839cd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b8d717d6ac49cff823ac18e7f5c625221a61052540673f418d9d0037c356c5d64013a2c23886c0edb8fea5b8bd92e9d4d12b8d4f09e82d811f11c114e5bce54a
|
7
|
+
data.tar.gz: 821d4ca7ba4833cc1296d5de71ad14dad7eca4eef490b9ef9ae8b598f2345dfa89156e26dfe96995075f4c5d012ab8723d8d0ae54b062918befc0ba4b94be8df
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.2
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# marginalia [](https://travis-ci.org/basecamp/marginalia)
|
2
2
|
|
3
3
|
Attach comments to your ActiveRecord queries. By default, it adds the application, controller, and action names as a
|
4
4
|
comment at the end of each query.
|
@@ -19,23 +19,18 @@ This gem was created at 37signals. You can read more about how we use it [on
|
|
19
19
|
our blog](http://37signals.com/svn/posts/3130-tech-note-mysql-query-comments-in-rails).
|
20
20
|
|
21
21
|
This has been tested and used in production with both the mysql and mysql2 gems,
|
22
|
-
tested on Rails 2.3.5 through
|
22
|
+
tested on Rails 2.3.5 through 4.0-stable. It has also been tested for sqlite3 and postgres.
|
23
23
|
|
24
24
|
Patches are welcome for other database adapters.
|
25
25
|
|
26
|
-
**The preferred way to get support is to send an email to
|
27
|
-
marginalia@librelist.com. Github issues
|
28
|
-
and pull requests will be checked occassionally, but email is the
|
29
|
-
fastest way to get help.**
|
30
|
-
|
31
26
|
## Installation
|
32
27
|
|
33
|
-
### For Rails 3.x:
|
28
|
+
### For Rails 3.x and 4.0:
|
34
29
|
|
35
30
|
# Gemfile
|
36
31
|
gem 'marginalia'
|
37
32
|
|
38
|
-
#config/application.rb
|
33
|
+
# config/application.rb
|
39
34
|
require 'marginalia/railtie'
|
40
35
|
|
41
36
|
|
data/lib/marginalia.rb
CHANGED
@@ -8,21 +8,41 @@ module Marginalia
|
|
8
8
|
def self.included(instrumented_class)
|
9
9
|
Marginalia::Comment.components = [:application, :controller, :action]
|
10
10
|
instrumented_class.class_eval do
|
11
|
-
if method_defined?
|
11
|
+
if instrumented_class.method_defined?(:execute)
|
12
12
|
alias_method :execute_without_marginalia, :execute
|
13
13
|
alias_method :execute, :execute_with_marginalia
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
is_mysql2 = defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) &&
|
17
|
+
ActiveRecord::ConnectionAdapters::Mysql2Adapter == instrumented_class
|
18
|
+
# Dont instrument exec_query on mysql2 and AR 3.2+, as it calls execute internally
|
19
|
+
unless is_mysql2 && ActiveRecord::VERSION::STRING > "3.1"
|
20
|
+
if instrumented_class.method_defined?(:exec_query)
|
21
|
+
alias_method :exec_query_without_marginalia, :exec_query
|
22
|
+
alias_method :exec_query, :exec_query_with_marginalia
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
is_postgres = defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) &&
|
27
|
+
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter == instrumented_class
|
28
|
+
# Instrument exec_delete and exec_update on AR 3.2+, since they don't
|
29
|
+
# call execute internally
|
30
|
+
if is_postgres && ActiveRecord::VERSION::STRING > "3.1"
|
31
|
+
if instrumented_class.method_defined?(:exec_delete)
|
32
|
+
alias_method :exec_delete_without_marginalia, :exec_delete
|
33
|
+
alias_method :exec_delete, :exec_delete_with_marginalia
|
34
|
+
end
|
35
|
+
if instrumented_class.method_defined?(:exec_update)
|
36
|
+
alias_method :exec_update_without_marginalia, :exec_update
|
37
|
+
alias_method :exec_update, :exec_update_with_marginalia
|
38
|
+
end
|
19
39
|
end
|
20
40
|
end
|
21
41
|
end
|
22
42
|
|
23
43
|
def annotate_sql(sql)
|
24
44
|
comment = Marginalia::Comment.construct_comment
|
25
|
-
if comment.present? && !sql.
|
45
|
+
if comment.present? && !sql.include?(comment)
|
26
46
|
"#{sql} /*#{comment}*/"
|
27
47
|
else
|
28
48
|
sql
|
@@ -36,6 +56,14 @@ module Marginalia
|
|
36
56
|
def exec_query_with_marginalia(sql, name = 'SQL', binds = [])
|
37
57
|
exec_query_without_marginalia(annotate_sql(sql), name, binds)
|
38
58
|
end
|
59
|
+
|
60
|
+
def exec_delete_with_marginalia(sql, name = 'SQL', binds = [])
|
61
|
+
exec_delete_without_marginalia(annotate_sql(sql), name, binds)
|
62
|
+
end
|
63
|
+
|
64
|
+
def exec_update_with_marginalia(sql, name = 'SQL', binds = [])
|
65
|
+
exec_update_without_marginalia(annotate_sql(sql), name, binds)
|
66
|
+
end
|
39
67
|
end
|
40
68
|
|
41
69
|
end
|
data/lib/marginalia/comment.rb
CHANGED
@@ -13,10 +13,10 @@ module Marginalia
|
|
13
13
|
self.components.each do |c|
|
14
14
|
component_value = self.send(c)
|
15
15
|
if component_value.present?
|
16
|
-
ret <<
|
17
|
-
ret << c.to_s << ':' << component_value.to_s
|
16
|
+
ret << "#{c.to_s}:#{component_value.to_s},"
|
18
17
|
end
|
19
18
|
end
|
19
|
+
ret.chop!
|
20
20
|
ret
|
21
21
|
end
|
22
22
|
|
@@ -40,11 +40,11 @@ module Marginalia
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def self.action
|
43
|
-
@controller.action_name if @controller.respond_to? :action_name
|
43
|
+
@controller.action_name if @controller.respond_to? :action_name
|
44
44
|
end
|
45
45
|
|
46
46
|
def self.line
|
47
|
-
Marginalia::Comment.lines_to_ignore ||= /\.rvm|gem|vendor
|
47
|
+
Marginalia::Comment.lines_to_ignore ||= /\.rvm|gem|vendor\/|marginalia|rbenv/
|
48
48
|
last_line = caller.detect do |line|
|
49
49
|
line !~ Marginalia::Comment.lines_to_ignore
|
50
50
|
end
|
data/lib/marginalia/railtie.rb
CHANGED
@@ -29,7 +29,7 @@ module Marginalia
|
|
29
29
|
Marginalia::Comment.update!(self)
|
30
30
|
yield
|
31
31
|
ensure
|
32
|
-
Marginalia::Comment.clear!
|
32
|
+
Marginalia::Comment.clear!
|
33
33
|
end
|
34
34
|
around_filter :record_query_comment
|
35
35
|
end
|
@@ -61,9 +61,9 @@ module Marginalia
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
if defined? ActiveRecord::ConnectionAdapters::
|
65
|
-
if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::
|
66
|
-
ActiveRecord::ConnectionAdapters::
|
64
|
+
if defined? ActiveRecord::ConnectionAdapters::SQLite3Adapter
|
65
|
+
if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::SQLite3Adapter)
|
66
|
+
ActiveRecord::ConnectionAdapters::SQLite3Adapter.module_eval do
|
67
67
|
include Marginalia::ActiveRecordInstrumentation
|
68
68
|
end
|
69
69
|
end
|
data/marginalia.gemspec
CHANGED
@@ -8,15 +8,17 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.test_files = `git ls-files -- {test}/*`.split("\n")
|
9
9
|
gem.name = "instructure-marginalia"
|
10
10
|
gem.require_paths = ["lib"]
|
11
|
-
gem.version = "1.1.
|
11
|
+
gem.version = "1.1.6"
|
12
|
+
gem.license = "MIT"
|
12
13
|
|
13
|
-
gem.add_runtime_dependency "actionpack", ">= 2.3"
|
14
|
-
gem.add_runtime_dependency "activerecord", ">= 2.3"
|
14
|
+
gem.add_runtime_dependency "actionpack", ">= 2.3"
|
15
|
+
gem.add_runtime_dependency "activerecord", ">= 2.3"
|
15
16
|
gem.add_development_dependency "rake"
|
16
17
|
gem.add_development_dependency "mysql"
|
17
18
|
gem.add_development_dependency "mysql2"
|
18
19
|
gem.add_development_dependency "pg"
|
19
20
|
gem.add_development_dependency "sqlite3"
|
21
|
+
gem.add_development_dependency "mocha"
|
20
22
|
|
21
|
-
gem.summary = description = %q{Attach comments to your ActiveRecord queries.}
|
23
|
+
gem.summary = gem.description = %q{Attach comments to your ActiveRecord queries.}
|
22
24
|
end
|
data/test/query_comments_test.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
require 'test/unit'
|
3
|
+
require 'mocha/test_unit'
|
2
4
|
require 'logger'
|
3
5
|
require 'pp'
|
4
6
|
require 'active_record'
|
@@ -41,11 +43,41 @@ class MarginaliaTest < Test::Unit::TestCase
|
|
41
43
|
@env = Rack::MockRequest.env_for('/')
|
42
44
|
end
|
43
45
|
|
46
|
+
def test_double_annotate
|
47
|
+
ActiveRecord::Base.connection.expects(:annotate_sql).returns("select id from posts").once
|
48
|
+
ActiveRecord::Base.connection.send(:select, "select id from posts")
|
49
|
+
ensure
|
50
|
+
ActiveRecord::Base.connection.unstub(:annotate_sql)
|
51
|
+
end
|
52
|
+
|
44
53
|
def test_query_commenting_on_mysql_driver_with_no_action
|
45
54
|
ActiveRecord::Base.connection.execute "select id from posts"
|
46
55
|
assert_match %r{select id from posts /\*application:rails\*/$}, @queries.first
|
47
56
|
end
|
48
57
|
|
58
|
+
if ENV["DRIVER"] =~ /^mysql/
|
59
|
+
def test_query_commenting_on_mysql_driver_with_binary_chars
|
60
|
+
ActiveRecord::Base.connection.execute "select id from posts /* \x81\x80\u0010\ */"
|
61
|
+
assert_equal "select id from posts /* \x81\x80\u0010 */ /*application:rails*/", @queries.first
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
if ENV["DRIVER"] =~ /^postgres/
|
66
|
+
def test_query_commenting_on_postgres_update
|
67
|
+
ActiveRecord::Base.connection.expects(:annotate_sql).returns("update posts set id = 1").once
|
68
|
+
ActiveRecord::Base.connection.send(:exec_update, "update posts set id = 1")
|
69
|
+
ensure
|
70
|
+
ActiveRecord::Base.connection.unstub(:annotate_sql)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_query_commenting_on_postgres_delete
|
74
|
+
ActiveRecord::Base.connection.expects(:annotate_sql).returns("delete from posts where id = 1").once
|
75
|
+
ActiveRecord::Base.connection.send(:exec_delete, "delete from posts where id = 1")
|
76
|
+
ensure
|
77
|
+
ActiveRecord::Base.connection.unstub(:annotate_sql)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
49
81
|
def test_query_commenting_on_mysql_driver_with_action
|
50
82
|
PostsController.action(:driver_only).call(@env)
|
51
83
|
assert_match %r{select id from posts /\*application:rails,controller:posts,action:driver_only\*/$}, @queries.first
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: instructure-marginalia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Noah Lorang
|
@@ -11,144 +10,131 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date:
|
13
|
+
date: 2014-08-26 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: actionpack
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - ">="
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '2.3'
|
24
|
-
- - <
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '3.3'
|
27
22
|
type: :runtime
|
28
23
|
prerelease: false
|
29
24
|
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
25
|
requirements:
|
32
|
-
- -
|
26
|
+
- - ">="
|
33
27
|
- !ruby/object:Gem::Version
|
34
28
|
version: '2.3'
|
35
|
-
- - <
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '3.3'
|
38
29
|
- !ruby/object:Gem::Dependency
|
39
30
|
name: activerecord
|
40
31
|
requirement: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
32
|
requirements:
|
43
|
-
- -
|
33
|
+
- - ">="
|
44
34
|
- !ruby/object:Gem::Version
|
45
35
|
version: '2.3'
|
46
|
-
- - <
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '3.3'
|
49
36
|
type: :runtime
|
50
37
|
prerelease: false
|
51
38
|
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
39
|
requirements:
|
54
|
-
- -
|
40
|
+
- - ">="
|
55
41
|
- !ruby/object:Gem::Version
|
56
42
|
version: '2.3'
|
57
|
-
- - <
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '3.3'
|
60
43
|
- !ruby/object:Gem::Dependency
|
61
44
|
name: rake
|
62
45
|
requirement: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
46
|
requirements:
|
65
|
-
- -
|
47
|
+
- - ">="
|
66
48
|
- !ruby/object:Gem::Version
|
67
49
|
version: '0'
|
68
50
|
type: :development
|
69
51
|
prerelease: false
|
70
52
|
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
53
|
requirements:
|
73
|
-
- -
|
54
|
+
- - ">="
|
74
55
|
- !ruby/object:Gem::Version
|
75
56
|
version: '0'
|
76
57
|
- !ruby/object:Gem::Dependency
|
77
58
|
name: mysql
|
78
59
|
requirement: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
60
|
requirements:
|
81
|
-
- -
|
61
|
+
- - ">="
|
82
62
|
- !ruby/object:Gem::Version
|
83
63
|
version: '0'
|
84
64
|
type: :development
|
85
65
|
prerelease: false
|
86
66
|
version_requirements: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
67
|
requirements:
|
89
|
-
- -
|
68
|
+
- - ">="
|
90
69
|
- !ruby/object:Gem::Version
|
91
70
|
version: '0'
|
92
71
|
- !ruby/object:Gem::Dependency
|
93
72
|
name: mysql2
|
94
73
|
requirement: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
74
|
requirements:
|
97
|
-
- -
|
75
|
+
- - ">="
|
98
76
|
- !ruby/object:Gem::Version
|
99
77
|
version: '0'
|
100
78
|
type: :development
|
101
79
|
prerelease: false
|
102
80
|
version_requirements: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
81
|
requirements:
|
105
|
-
- -
|
82
|
+
- - ">="
|
106
83
|
- !ruby/object:Gem::Version
|
107
84
|
version: '0'
|
108
85
|
- !ruby/object:Gem::Dependency
|
109
86
|
name: pg
|
110
87
|
requirement: !ruby/object:Gem::Requirement
|
111
|
-
none: false
|
112
88
|
requirements:
|
113
|
-
- -
|
89
|
+
- - ">="
|
114
90
|
- !ruby/object:Gem::Version
|
115
91
|
version: '0'
|
116
92
|
type: :development
|
117
93
|
prerelease: false
|
118
94
|
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
95
|
requirements:
|
121
|
-
- -
|
96
|
+
- - ">="
|
122
97
|
- !ruby/object:Gem::Version
|
123
98
|
version: '0'
|
124
99
|
- !ruby/object:Gem::Dependency
|
125
100
|
name: sqlite3
|
126
101
|
requirement: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
102
|
requirements:
|
129
|
-
- -
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: mocha
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
130
118
|
- !ruby/object:Gem::Version
|
131
119
|
version: '0'
|
132
120
|
type: :development
|
133
121
|
prerelease: false
|
134
122
|
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
123
|
requirements:
|
137
|
-
- -
|
124
|
+
- - ">="
|
138
125
|
- !ruby/object:Gem::Version
|
139
126
|
version: '0'
|
140
|
-
description:
|
127
|
+
description: Attach comments to your ActiveRecord queries.
|
141
128
|
email:
|
142
129
|
- noah@37signals.com
|
143
130
|
executables: []
|
144
131
|
extensions: []
|
145
132
|
extra_rdoc_files: []
|
146
133
|
files:
|
147
|
-
- .gitignore
|
148
|
-
- .
|
149
|
-
- .travis.yml
|
134
|
+
- ".gitignore"
|
135
|
+
- ".ruby-version"
|
136
|
+
- ".travis.yml"
|
150
137
|
- Gemfile
|
151
|
-
- Gemfile.lock
|
152
138
|
- LICENSE
|
153
139
|
- README.md
|
154
140
|
- Rakefile
|
@@ -159,27 +145,28 @@ files:
|
|
159
145
|
- marginalia.gemspec
|
160
146
|
- test/query_comments_test.rb
|
161
147
|
homepage: https://github.com/37signals/marginalia
|
162
|
-
licenses:
|
148
|
+
licenses:
|
149
|
+
- MIT
|
150
|
+
metadata: {}
|
163
151
|
post_install_message:
|
164
152
|
rdoc_options: []
|
165
153
|
require_paths:
|
166
154
|
- lib
|
167
155
|
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
156
|
requirements:
|
170
|
-
- -
|
157
|
+
- - ">="
|
171
158
|
- !ruby/object:Gem::Version
|
172
159
|
version: '0'
|
173
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
|
-
none: false
|
175
161
|
requirements:
|
176
|
-
- -
|
162
|
+
- - ">="
|
177
163
|
- !ruby/object:Gem::Version
|
178
164
|
version: '0'
|
179
165
|
requirements: []
|
180
166
|
rubyforge_project:
|
181
|
-
rubygems_version:
|
167
|
+
rubygems_version: 2.3.0
|
182
168
|
signing_key:
|
183
|
-
specification_version:
|
169
|
+
specification_version: 4
|
184
170
|
summary: Attach comments to your ActiveRecord queries.
|
185
171
|
test_files: []
|
172
|
+
has_rdoc:
|
data/.rbenv-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.9.3-p0
|
data/Gemfile.lock
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
marginalia (1.1.0)
|
5
|
-
actionpack (>= 2.3, < 3.3)
|
6
|
-
activerecord (>= 2.3, < 3.3)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
actionpack (3.1.3)
|
12
|
-
activemodel (= 3.1.3)
|
13
|
-
activesupport (= 3.1.3)
|
14
|
-
builder (~> 3.0.0)
|
15
|
-
erubis (~> 2.7.0)
|
16
|
-
i18n (~> 0.6)
|
17
|
-
rack (~> 1.3.5)
|
18
|
-
rack-cache (~> 1.1)
|
19
|
-
rack-mount (~> 0.8.2)
|
20
|
-
rack-test (~> 0.6.1)
|
21
|
-
sprockets (~> 2.0.3)
|
22
|
-
activemodel (3.1.3)
|
23
|
-
activesupport (= 3.1.3)
|
24
|
-
builder (~> 3.0.0)
|
25
|
-
i18n (~> 0.6)
|
26
|
-
activerecord (3.1.3)
|
27
|
-
activemodel (= 3.1.3)
|
28
|
-
activesupport (= 3.1.3)
|
29
|
-
arel (~> 2.2.1)
|
30
|
-
tzinfo (~> 0.3.29)
|
31
|
-
activesupport (3.1.3)
|
32
|
-
multi_json (~> 1.0)
|
33
|
-
arel (2.2.1)
|
34
|
-
builder (3.0.0)
|
35
|
-
erubis (2.7.0)
|
36
|
-
hike (1.2.1)
|
37
|
-
i18n (0.6.0)
|
38
|
-
multi_json (1.1.0)
|
39
|
-
mysql (2.8.1)
|
40
|
-
mysql2 (0.3.11)
|
41
|
-
pg (0.13.2)
|
42
|
-
rack (1.3.6)
|
43
|
-
rack-cache (1.1)
|
44
|
-
rack (>= 0.4)
|
45
|
-
rack-mount (0.8.3)
|
46
|
-
rack (>= 1.0.0)
|
47
|
-
rack-test (0.6.1)
|
48
|
-
rack (>= 1.0)
|
49
|
-
rake (0.9.2.2)
|
50
|
-
sprockets (2.0.3)
|
51
|
-
hike (~> 1.2)
|
52
|
-
rack (~> 1.0)
|
53
|
-
tilt (~> 1.1, != 1.3.0)
|
54
|
-
sqlite3 (1.3.6)
|
55
|
-
tilt (1.3.3)
|
56
|
-
tzinfo (0.3.32)
|
57
|
-
|
58
|
-
PLATFORMS
|
59
|
-
ruby
|
60
|
-
|
61
|
-
DEPENDENCIES
|
62
|
-
marginalia!
|
63
|
-
mysql
|
64
|
-
mysql2
|
65
|
-
pg
|
66
|
-
rake
|
67
|
-
sqlite3
|