aspgems-redhillonrails_core 2.0.0.beta2 → 2.0.0.beta4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/.travis.yml +8 -0
- data/CHANGELOG +16 -0
- data/README.md +50 -10
- data/README_DEV.md +41 -0
- data/Rakefile +43 -13
- data/Thorfile +45 -0
- data/gemfiles/rails-3.0.7 +13 -0
- data/gemfiles/rails-3.0.7.lock +90 -0
- data/gemfiles/rails-3.0.8 +13 -0
- data/gemfiles/rails-3.0.8.lock +90 -0
- data/gemfiles/rails-3.0.9 +13 -0
- data/gemfiles/rails-3.0.9.lock +92 -0
- data/gemfiles/rails-3.1.0.rc5 +13 -0
- data/gemfiles/rails-3.1.0.rc5.lock +106 -0
- data/lib/redhillonrails_core.rb +12 -0
- data/lib/redhillonrails_core/active_record/base.rb +1 -1
- data/lib/redhillonrails_core/active_record/connection_adapters/abstract/foreign_key_definition.rb +13 -6
- data/lib/redhillonrails_core/active_record/connection_adapters/abstract/index_definition.rb +3 -0
- data/lib/redhillonrails_core/active_record/connection_adapters/abstract_adapter.rb +10 -6
- data/lib/redhillonrails_core/active_record/connection_adapters/mysql_adapter.rb +27 -53
- data/lib/redhillonrails_core/active_record/connection_adapters/postgresql_adapter.rb +82 -57
- data/lib/redhillonrails_core/active_record/migration/command_recorder.rb +30 -0
- data/lib/redhillonrails_core/active_record/schema_dumper.rb +18 -6
- data/lib/redhillonrails_core/version.rb +1 -1
- data/redhillonrails_core.gemspec +2 -1
- data/spec/command_recorder_spec.rb +39 -0
- data/spec/connections/mysql/connection.rb +4 -6
- data/spec/connections/mysql2/connection.rb +4 -6
- data/spec/connections/postgresql/connection.rb +4 -3
- data/spec/connections/sqlite3/connection.rb +4 -3
- data/spec/foreign_key_definition_spec.rb +31 -2
- data/spec/foreign_key_spec.rb +15 -2
- data/spec/migration_spec.rb +34 -0
- data/spec/table_definition_spec.rb +28 -0
- metadata +30 -11
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CHANGELOG
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
2.0.0.beta4
|
2
|
+
* To fix version number released
|
3
|
+
|
4
|
+
2.0.0.beta3
|
5
|
+
* postgresql specs pass again
|
6
|
+
* compatibility with mysql 0.2.X line
|
7
|
+
* quoting fixes
|
8
|
+
* proper foreign keys ordering
|
9
|
+
* views support for mysql and sqlite
|
10
|
+
* sorting of indexes and foreign keys on schema dumpe
|
11
|
+
|
12
|
+
2.0.0.beta2
|
13
|
+
|
14
|
+
2.0.0.beta1
|
15
|
+
* build as a gem with bundler
|
16
|
+
|
1
17
|
[REVISION 20110112]
|
2
18
|
|
3
19
|
[REMOVE] Remove unused columns monkeypatch and avoid a query to get the indexes of a table that cost so much in tables with so many records
|
data/README.md
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
|
1
|
+
[![Build Status](https://secure.travis-ci.org/aspgems/redhillonrails_core.png)](http://travis-ci.org/aspgems/redhillonrails_core)
|
2
|
+
|
3
|
+
Disclaimer
|
4
|
+
==========
|
2
5
|
|
3
6
|
redhillonrails_core was originally created by http://github.com/harukizaemon but it was retired and is no longer supported.
|
4
7
|
|
5
8
|
That fork is intended to make redhillonrails_core compatible with edge rails and introduce some new features.
|
6
9
|
|
7
|
-
|
10
|
+
RedHill on Rails Core
|
11
|
+
=====================
|
8
12
|
|
9
13
|
Goal of redhillonrails_core is to provided missing ActiveRecord support for database specific features:
|
10
14
|
|
@@ -12,19 +16,22 @@ Goal of redhillonrails_core is to provided missing ActiveRecord support for data
|
|
12
16
|
* case-insensitive and partial indexes (pgsql only)
|
13
17
|
* views
|
14
18
|
|
15
|
-
|
19
|
+
Installation
|
20
|
+
------------
|
16
21
|
|
17
22
|
As a gem
|
18
23
|
|
19
24
|
gem install aspgems-redhillonrails_core
|
20
25
|
|
21
|
-
|
26
|
+
Compatibility
|
27
|
+
-------------
|
22
28
|
|
23
29
|
* Ruby - 1.8, 1.9
|
24
30
|
* ActiveRecord - 2.X, 3.X
|
25
31
|
* Databases - PostgreSQL, MySQL, SQLite3 (most features should also run on others)
|
26
32
|
|
27
|
-
|
33
|
+
Foreign Key Support
|
34
|
+
-------------------
|
28
35
|
|
29
36
|
The plugin provides two mechanisms for adding foreign keys as well as
|
30
37
|
preserving foreign keys when performing a schema dump. (Using SQL-92 syntax and
|
@@ -34,36 +41,48 @@ constraints.)
|
|
34
41
|
The first mechanism for creating foreign-keys allows you to add a foreign key
|
35
42
|
when defining a table. For example:
|
36
43
|
|
44
|
+
```ruby
|
37
45
|
create_table :orders do |t|
|
38
46
|
...
|
39
47
|
t.foreign_key :customer_id, :customers, :id
|
40
48
|
end
|
49
|
+
```
|
41
50
|
|
42
51
|
You also have the option of specifying what to do on delete/update using
|
43
52
|
<code>:on_delete</code>/<code>:on_update</code>, respectively to one of: <code>:cascade</code>; <code>:restrict</code>; and <code>:set_null</code>:
|
44
53
|
|
54
|
+
```ruby
|
45
55
|
create_table :orders do |t|
|
46
56
|
...
|
47
57
|
t.foreign_key :customer_id, :customers, :id, :on_delete => :set_null, :on_update => :cascade
|
48
58
|
end
|
59
|
+
```
|
49
60
|
|
50
61
|
The second method allows you to create arbitrary foreign-keys at any time:
|
51
62
|
|
63
|
+
```ruby
|
52
64
|
add_foreign_key(:orders, :customer_id, :customers, :id, :on_delete => :set_null, :on_update => :cascade)
|
65
|
+
```
|
53
66
|
|
54
67
|
In either case, if your database supports deferred foreign keys (for example PostgreSQL) you can specify this as well:
|
55
68
|
|
69
|
+
```ruby
|
56
70
|
t.foreign_key :customer_id, :customers, :id, :deferrable => true
|
57
71
|
add_foreign_key(:orders, :customer_id, :customers, :id, :deferrable => true)
|
72
|
+
```
|
58
73
|
|
59
74
|
By default, the foreign key will be assigned a name by the underlying database. However, if this doesn't suit
|
60
75
|
your needs, you can override the default assignment using the <code>:name</code> option:
|
61
76
|
|
77
|
+
```ruby
|
62
78
|
add_foreign_key(:orders, :customer_id, :customers, :id, :on_delete => :set_null, :on_update => :cascade, <strong>:name => :orders_customer_id_foreign_key<strong>)
|
79
|
+
```
|
63
80
|
|
64
81
|
You can also query the foreign keys for a model yourself by calling <code>foreign_keys()</code>:
|
65
82
|
|
83
|
+
```ruby
|
66
84
|
Order.foreign_keys
|
85
|
+
```
|
67
86
|
|
68
87
|
Or for an arbitrary table by calling <code>foreign_keys(table_name)</code> on a database adapter.
|
69
88
|
|
@@ -77,7 +96,9 @@ Either method returns an array of the following meta-data:
|
|
77
96
|
|
78
97
|
If you need to drop a foreign-key, use:
|
79
98
|
|
99
|
+
```ruby
|
80
100
|
remove_foreign_key :orders, :orders_ordered_by_id_fkey
|
101
|
+
```
|
81
102
|
|
82
103
|
The plugin also ensures that all foreign keys are output when performing a
|
83
104
|
schema dump. This happens automatically when running <code>rake migrate</code> or
|
@@ -85,24 +106,32 @@ schema dump. This happens automatically when running <code>rake migrate</code> o
|
|
85
106
|
unit tests that contain fixtures. To ensure the test data is correctly reset after
|
86
107
|
each test, you should list your fixtures in order of parent->child. For example:
|
87
108
|
|
109
|
+
```ruby
|
88
110
|
fixtures :customers, :products, :orders, :order_lines
|
111
|
+
```
|
89
112
|
|
90
113
|
Rails will then set-up and tear-down the fixtures in the correct sequence.
|
91
114
|
|
92
115
|
Some databases (PostgreSQL and MySQL for example) allow you to set a comment for a
|
93
116
|
table. You can do this for existing tables by using:
|
94
117
|
|
118
|
+
```ruby
|
95
119
|
set_table_comment :orders, "All pending and processed orders"
|
120
|
+
```
|
96
121
|
|
97
122
|
or even at the time of creation:
|
98
123
|
|
124
|
+
```ruby
|
99
125
|
create_table :orders, :comment => "All pending and processed orders" do |t|
|
100
126
|
...
|
101
127
|
end
|
128
|
+
```
|
102
129
|
|
103
130
|
You can clear table comments using:
|
104
131
|
|
132
|
+
```ruby
|
105
133
|
clear_table_comment :orders
|
134
|
+
```
|
106
135
|
|
107
136
|
There is also a rake tasks to show all database tables and their comments:
|
108
137
|
|
@@ -115,31 +144,39 @@ configuration properties:
|
|
115
144
|
* <code>config.active_record.table_name_prefix</code>
|
116
145
|
* <code>config.active_record.table_name_suffix</code>
|
117
146
|
|
118
|
-
|
147
|
+
View Support
|
148
|
+
------------
|
119
149
|
|
120
150
|
The plugin provides a mechanism for creating and dropping views as well as
|
121
151
|
preserving views when performing a schema dump:
|
122
152
|
|
153
|
+
```ruby
|
123
154
|
create_view :normal_customers, "SELECT * FROM customers WHERE status = 'normal'"
|
124
155
|
drop_view :normal_customers
|
156
|
+
```
|
125
157
|
|
126
|
-
|
158
|
+
Model Indexes
|
159
|
+
-------------
|
127
160
|
|
128
161
|
ActiveRecord::Base already provides a method on connection for obtaining the
|
129
162
|
indexes for a given table. This plugin now makes it possible to obtain the
|
130
163
|
indexes for a given model--<code>ActiveRecord::Base</code>--class. For example:
|
131
164
|
|
165
|
+
```ruby
|
132
166
|
Invoice.indexes
|
167
|
+
```
|
133
168
|
|
134
169
|
Would return all the indexes for the +invoices+ table.
|
135
170
|
|
136
|
-
|
171
|
+
Schema Defining
|
172
|
+
---------------
|
137
173
|
|
138
174
|
The plugin also adds a method--<code>defining?()</code>--to
|
139
175
|
<code>ActiveRecord::Schema</code> to indicate when <code>define()</code> is running. This is necessary
|
140
176
|
as some migration plugins must change their behaviour accordingly.
|
141
177
|
|
142
|
-
|
178
|
+
Case-insensitive Indexes
|
179
|
+
------------------------
|
143
180
|
|
144
181
|
For PostgreSQL, you can add an option <code>:case_sensitive => false</code> to <code>add_index</code>
|
145
182
|
which will generate an expression index of the form:
|
@@ -154,8 +191,11 @@ are able to use the indexes rather require, in the worst case, full-table scans.
|
|
154
191
|
|
155
192
|
Note also that this ties in well with Rails built-in support for case-insensitive searching:
|
156
193
|
|
194
|
+
```ruby
|
157
195
|
validates_uniqueness_of :name, :case_sensitive => false
|
196
|
+
```
|
158
197
|
|
159
|
-
|
198
|
+
See Also
|
199
|
+
--------
|
160
200
|
|
161
201
|
* Foreign Key Migrations (foreign_key_migrations)
|
data/README_DEV.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Information for developers
|
2
|
+
|
3
|
+
We need to run it against multiple versions of rails. There are
|
4
|
+
several tools already available to manage running against multiple versions of
|
5
|
+
Ruby (e.g. rvm), and there are even some multi-rails tools (e.g. multi-rails)
|
6
|
+
but we haven't found one that does exactly what we need here, so we've rolled
|
7
|
+
our own.
|
8
|
+
|
9
|
+
This method is the same used in rspec-rails
|
10
|
+
|
11
|
+
## The short version
|
12
|
+
|
13
|
+
thor gemfile:use 3.0.6
|
14
|
+
rake
|
15
|
+
|
16
|
+
## The long version
|
17
|
+
|
18
|
+
### thor gemfile:use
|
19
|
+
|
20
|
+
The `thor rails:use` task accepts any released version of rails, or either the
|
21
|
+
3-0-stable or master branches.
|
22
|
+
|
23
|
+
thor gemfile:use master
|
24
|
+
thor gemfile:use 3.1.0.rc1
|
25
|
+
thor gemfile:use 3-0-stable
|
26
|
+
thor gemfile:use 3.0.9
|
27
|
+
thor gemfile:use 3.0.8
|
28
|
+
thor gemfile:use 3.0.7
|
29
|
+
|
30
|
+
It then does several things:
|
31
|
+
|
32
|
+
* generates a .gemfile file with the version listed. This is used internally by
|
33
|
+
assorted rake tasks.
|
34
|
+
* installs the bundle using the appropriate file in the gemfiles directory
|
35
|
+
** this includes binstubs, which are stored in ./gemfiles/bin
|
36
|
+
* symlinks the gemfiles/bin directory to ./bin (in the project root) to support
|
37
|
+
running bin/rspec from the project root
|
38
|
+
|
39
|
+
At any time, if you want to change rails versions, run `thor gemfile:use` with a
|
40
|
+
new version number. To play it safe, you probably want to also run `rake
|
41
|
+
clobber` to delete all the code generated by the previous rails version.
|
data/Rakefile
CHANGED
@@ -1,4 +1,24 @@
|
|
1
|
-
require '
|
1
|
+
require 'pathname'
|
2
|
+
ENV["BUNDLE_GEMFILE"] ||= begin
|
3
|
+
version = if File.exist?("./.gemfile")
|
4
|
+
File.read("./.gemfile").chomp
|
5
|
+
else
|
6
|
+
"rails-3.0.7"
|
7
|
+
end
|
8
|
+
File.expand_path("../gemfiles/#{version}", __FILE__)
|
9
|
+
end
|
10
|
+
puts "Using gemfile: #{ENV["BUNDLE_GEMFILE"].gsub(Pathname.new(__FILE__).dirname.to_s,'').sub(/^\//,'')}"
|
11
|
+
require "bundler"
|
12
|
+
begin
|
13
|
+
Bundler.setup
|
14
|
+
rescue
|
15
|
+
if ENV["CI"]
|
16
|
+
sh "bundle install"
|
17
|
+
Bundler.setup
|
18
|
+
else
|
19
|
+
raise "You need to install a bundle first. Try 'thor gemfile:use 3.0.7'"
|
20
|
+
end
|
21
|
+
end
|
2
22
|
Bundler::GemHelper.install_tasks
|
3
23
|
|
4
24
|
require 'rspec/core/rake_task'
|
@@ -10,19 +30,28 @@ require 'rspec/core/rake_task'
|
|
10
30
|
end
|
11
31
|
end
|
12
32
|
|
33
|
+
task :default => [:create_databases, :spec]
|
34
|
+
|
13
35
|
desc 'Run postgresql and mysql tests'
|
14
36
|
task :spec do
|
15
37
|
%w[postgresql mysql mysql2 sqlite3].each do |adapter|
|
38
|
+
puts "\n\e[1;33m[#{ENV["BUNDLE_GEMFILE"]}] #{adapter}\e[m\n"
|
16
39
|
Rake::Task["#{adapter}:spec"].invoke
|
17
40
|
end
|
18
41
|
end
|
19
42
|
|
20
|
-
|
43
|
+
desc 'Create databases'
|
44
|
+
task :create_databases do
|
45
|
+
%w[postgresql mysql].each do |adapter|
|
46
|
+
Rake::Task["#{adapter}:build_databases"].invoke
|
47
|
+
end
|
48
|
+
end
|
21
49
|
|
22
50
|
namespace :postgresql do
|
23
51
|
desc 'Build the PostgreSQL test databases'
|
24
52
|
task :build_databases do
|
25
|
-
|
53
|
+
system "psql -c 'create database redhillonrails_core;' -U postgres >/dev/null"
|
54
|
+
abort "failed to create postgres database" unless $?.success?
|
26
55
|
end
|
27
56
|
|
28
57
|
desc 'Drop the PostgreSQL test databases'
|
@@ -34,26 +63,27 @@ namespace :postgresql do
|
|
34
63
|
task :rebuild_databases => [:drop_databases, :build_databases]
|
35
64
|
end
|
36
65
|
|
37
|
-
task :build_postgresql_databases => 'postgresql:build_databases'
|
38
|
-
task :drop_postgresql_databases => 'postgresql:drop_databases'
|
39
|
-
task :rebuild_postgresql_databases => 'postgresql:rebuild_databases'
|
40
|
-
|
41
|
-
MYSQL_DB_USER = 'rh_core'
|
42
66
|
namespace :mysql do
|
43
67
|
desc 'Build the MySQL test databases'
|
44
68
|
task :build_databases do
|
45
|
-
|
69
|
+
system "mysql -e 'create database redhillonrails_core default character set utf8 default collate utf8_unicode_ci;' >/dev/null"
|
70
|
+
abort "failed to create mysql database" unless $?.success?
|
46
71
|
end
|
47
72
|
|
48
73
|
desc 'Drop the MySQL test databases'
|
49
74
|
task :drop_databases do
|
50
|
-
%x( mysqladmin
|
75
|
+
%x( mysqladmin -f drop redhillonrails_core )
|
51
76
|
end
|
52
77
|
|
53
78
|
desc 'Rebuild the MySQL test databases'
|
54
79
|
task :rebuild_databases => [:drop_databases, :build_databases]
|
55
80
|
end
|
56
81
|
|
57
|
-
|
58
|
-
task :
|
59
|
-
|
82
|
+
desc 'clobber generated files'
|
83
|
+
task :clobber do
|
84
|
+
rm_rf "pkg"
|
85
|
+
rm_rf "tmp"
|
86
|
+
rm "Gemfile.lock" if File.exist?("Gemfile.lock")
|
87
|
+
end
|
88
|
+
|
89
|
+
task :default => :spec
|
data/Thorfile
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
class Gemfile < Thor
|
2
|
+
desc "use VERSION", "installs the bundle using gemfiles/rails-VERSION"
|
3
|
+
def use(version)
|
4
|
+
with(version, %w[bundle install --binstubs])
|
5
|
+
unless version =~ /^\d\.\d\.\d/
|
6
|
+
"bundle update rails".tap do |m|
|
7
|
+
say m
|
8
|
+
system m
|
9
|
+
end
|
10
|
+
end
|
11
|
+
say `ln -s gemfiles/bin` unless File.exist?('bin')
|
12
|
+
`echo rails-#{version} > ./.gemfile`
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "with VERSION COMMAND", "executes COMMAND with the gemfile for VERSION"
|
16
|
+
def with(version, *command)
|
17
|
+
"gemfiles/rails-#{version}".tap do |gemfile|
|
18
|
+
ENV["BUNDLE_GEMFILE"] = File.expand_path(gemfile)
|
19
|
+
say "BUNDLE_GEMFILE=#{gemfile}"
|
20
|
+
end
|
21
|
+
command.join(' ').tap do |m|
|
22
|
+
say m
|
23
|
+
system m
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "which", "print out the configured gemfile"
|
28
|
+
def which
|
29
|
+
say `cat ./.gemfile`
|
30
|
+
end
|
31
|
+
|
32
|
+
desc "list", "list the available options for 'thor gemfile:use'"
|
33
|
+
def list
|
34
|
+
all = `ls gemfiles`.chomp.split.grep(/^rails/).reject {|i| i =~ /lock$/}
|
35
|
+
|
36
|
+
versions = all.grep(/^rails-\d\.\d/)
|
37
|
+
branches = all - versions
|
38
|
+
|
39
|
+
puts "releases:"
|
40
|
+
versions.sort.reverse.each {|i| puts i}
|
41
|
+
puts
|
42
|
+
puts "branches:"
|
43
|
+
branches.sort.reverse.each {|i| puts i}
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
abstract (1.0.0)
|
5
|
+
actionmailer (3.0.7)
|
6
|
+
actionpack (= 3.0.7)
|
7
|
+
mail (~> 2.2.15)
|
8
|
+
actionpack (3.0.7)
|
9
|
+
activemodel (= 3.0.7)
|
10
|
+
activesupport (= 3.0.7)
|
11
|
+
builder (~> 2.1.2)
|
12
|
+
erubis (~> 2.6.6)
|
13
|
+
i18n (~> 0.5.0)
|
14
|
+
rack (~> 1.2.1)
|
15
|
+
rack-mount (~> 0.6.14)
|
16
|
+
rack-test (~> 0.5.7)
|
17
|
+
tzinfo (~> 0.3.23)
|
18
|
+
activemodel (3.0.7)
|
19
|
+
activesupport (= 3.0.7)
|
20
|
+
builder (~> 2.1.2)
|
21
|
+
i18n (~> 0.5.0)
|
22
|
+
activerecord (3.0.7)
|
23
|
+
activemodel (= 3.0.7)
|
24
|
+
activesupport (= 3.0.7)
|
25
|
+
arel (~> 2.0.2)
|
26
|
+
tzinfo (~> 0.3.23)
|
27
|
+
activeresource (3.0.7)
|
28
|
+
activemodel (= 3.0.7)
|
29
|
+
activesupport (= 3.0.7)
|
30
|
+
activesupport (3.0.7)
|
31
|
+
arel (2.0.10)
|
32
|
+
builder (2.1.2)
|
33
|
+
diff-lcs (1.1.2)
|
34
|
+
erubis (2.6.6)
|
35
|
+
abstract (>= 1.0.0)
|
36
|
+
i18n (0.5.0)
|
37
|
+
mail (2.2.19)
|
38
|
+
activesupport (>= 2.3.6)
|
39
|
+
i18n (>= 0.4.0)
|
40
|
+
mime-types (~> 1.16)
|
41
|
+
treetop (~> 1.4.8)
|
42
|
+
mime-types (1.16)
|
43
|
+
mysql (2.8.1)
|
44
|
+
mysql2 (0.2.10)
|
45
|
+
pg (0.11.0)
|
46
|
+
polyglot (0.3.1)
|
47
|
+
rack (1.2.3)
|
48
|
+
rack-mount (0.6.14)
|
49
|
+
rack (>= 1.0.0)
|
50
|
+
rack-test (0.5.7)
|
51
|
+
rack (>= 1.0)
|
52
|
+
rails (3.0.7)
|
53
|
+
actionmailer (= 3.0.7)
|
54
|
+
actionpack (= 3.0.7)
|
55
|
+
activerecord (= 3.0.7)
|
56
|
+
activeresource (= 3.0.7)
|
57
|
+
activesupport (= 3.0.7)
|
58
|
+
bundler (~> 1.0)
|
59
|
+
railties (= 3.0.7)
|
60
|
+
railties (3.0.7)
|
61
|
+
actionpack (= 3.0.7)
|
62
|
+
activesupport (= 3.0.7)
|
63
|
+
rake (>= 0.8.7)
|
64
|
+
thor (~> 0.14.4)
|
65
|
+
rake (0.9.2)
|
66
|
+
rspec (2.6.0)
|
67
|
+
rspec-core (~> 2.6.0)
|
68
|
+
rspec-expectations (~> 2.6.0)
|
69
|
+
rspec-mocks (~> 2.6.0)
|
70
|
+
rspec-core (2.6.4)
|
71
|
+
rspec-expectations (2.6.0)
|
72
|
+
diff-lcs (~> 1.1.2)
|
73
|
+
rspec-mocks (2.6.0)
|
74
|
+
sqlite3 (1.3.3)
|
75
|
+
thor (0.14.6)
|
76
|
+
treetop (1.4.9)
|
77
|
+
polyglot (>= 0.3.1)
|
78
|
+
tzinfo (0.3.28)
|
79
|
+
|
80
|
+
PLATFORMS
|
81
|
+
ruby
|
82
|
+
|
83
|
+
DEPENDENCIES
|
84
|
+
mysql (>= 2.8.1)
|
85
|
+
mysql2 (~> 0.2.6)
|
86
|
+
pg (>= 0.9.0)
|
87
|
+
rails (= 3.0.7)
|
88
|
+
rake (= 0.9.2)
|
89
|
+
rspec (~> 2.6.0)
|
90
|
+
sqlite3 (~> 1.3.3)
|