Skip to content

Commit

Permalink
Merged pull request #300 from arunagw/jdbc_test.
Browse files Browse the repository at this point in the history
Start Adding jdbcmysql support to new rails template.
  • Loading branch information
tenderlove committed Apr 25, 2011
2 parents 2fc8d7e + 51854de commit 17fec02
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 1 deletion.
6 changes: 5 additions & 1 deletion railties/lib/rails/generators/app_base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ module Rails
module Generators
class AppBase < Base
DATABASES = %w( mysql oracle postgresql sqlite3 frontbase ibm_db )
JDBC_DATABASES = %w( jdbcmysql jdbcsqlite3 )
DATABASES.concat(JDBC_DATABASES)
JAVASCRIPTS = %w( jquery prototype )

attr_accessor :rails_template
Expand Down Expand Up @@ -156,12 +158,14 @@ def rails_gemfile_entry
end

def gem_for_database
# %w( mysql oracle postgresql sqlite3 frontbase ibm_db )
# %w( mysql oracle postgresql sqlite3 frontbase ibm_db jdbcmysql jdbcsqlite3)
case options[:database]
when "oracle" then "ruby-oci8"
when "postgresql" then "pg"
when "frontbase" then "ruby-frontbase"
when "mysql" then "mysql2"
when "jdbcmysql" then "activerecord-jdbcmysql-adapter"
when "jdbcsqlite3" then "activerecord-jdbcsqlite3-adapter"
else options[:database]
end
end
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install activerecord-jdbcmysql-adapter
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: jdbcmysql
database: <%= app_name %>_development
username: root
password:
host: localhost

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: jdbcmysql
database: <%= app_name %>_test
username: root
password:
host: localhost

production:
adapter: jdbcmysql
database: <%= app_name %>_production
username: root
password:
host: localhost
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# SQLite version 3.x
# gem 'activerecord-jdbcsqlite3-adapter'

development:
adapter: jdbcsqlite3
database: db/development.sqlite3

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: jdbcsqlite3
database: db/test.sqlite3

production:
adapter: jdbcsqlite3
database: db/production.sqlite3
12 changes: 12 additions & 0 deletions railties/test/generators/app_generator_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,18 @@ def test_config_another_database
assert_file "Gemfile", /^gem\s+["']mysql2["']$/
end

def test_config_jdbcmysql_database
run_generator([destination_root, "-d", "jdbcmysql"])
assert_file "config/database.yml", /jdbcmysql/
assert_file "Gemfile", /^gem\s+["']activerecord-jdbcmysql-adapter["']$/
end

def test_config_jdbcsqlite3_database
run_generator([destination_root, "-d", "jdbcsqlite3"])
assert_file "config/database.yml", /jdbcsqlite3/
assert_file "Gemfile", /^gem\s+["']activerecord-jdbcsqlite3-adapter["']$/
end

def test_generator_if_skip_active_record_is_given
run_generator [destination_root, "--skip-active-record"]
assert_no_file "config/database.yml"
Expand Down

0 comments on commit 17fec02

Please sign in to comment.