aspgems-redhillonrails_core 2.0.0.beta2 → 2.0.0.beta4
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.
- 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
|
+
[](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)
|