Merge remote branch 'mikel/master'

This commit is contained in:
José Valim 2010-02-03 10:32:27 +01:00
commit b13504303b
5 changed files with 36 additions and 78 deletions

@ -24,6 +24,17 @@ def self.sqlite3_connection(config) # :nodoc:
module ConnectionAdapters #:nodoc: module ConnectionAdapters #:nodoc:
class SQLite3Adapter < SQLiteAdapter # :nodoc: class SQLite3Adapter < SQLiteAdapter # :nodoc:
# Returns the current database encoding format as a string, eg: 'UTF-8'
def encoding
if @connection.respond_to?(:encoding)
@connection.encoding[0]['encoding']
else
encoding = @connection.send(:get_query_pragma, 'encoding')
encoding[0]['encoding']
end
end
end end
end end
end end

@ -26,8 +26,12 @@ namespace :db do
end end
end end
desc 'Create the database defined in config/database.yml for the current Rails.env' desc 'Create the database defined in config/database.yml for the current Rails.env - also makes test database if in development mode'
task :create => :load_config do task :create => :load_config do
# Make the test database at the same time as the development one
if Rails.env == 'development'
create_database(ActiveRecord::Base.configurations['test'])
end
create_database(ActiveRecord::Base.configurations[Rails.env]) create_database(ActiveRecord::Base.configurations[Rails.env])
end end
@ -196,6 +200,9 @@ namespace :db do
when 'postgresql' when 'postgresql'
ActiveRecord::Base.establish_connection(config) ActiveRecord::Base.establish_connection(config)
puts ActiveRecord::Base.connection.encoding puts ActiveRecord::Base.connection.encoding
when 'sqlite3'
ActiveRecord::Base.establish_connection(config)
puts ActiveRecord::Base.connection.encoding
else else
puts 'sorry, your database adapter is not supported yet, feel free to submit a patch' puts 'sorry, your database adapter is not supported yet, feel free to submit a patch'
end end

@ -6,13 +6,14 @@
usage: rails COMMAND [ARGS] usage: rails COMMAND [ARGS]
The most common rails commands are: The most common rails commands are:
generate Generate new code (short-cut alias: "g") generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c") console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s") server Start the Rails server (short-cut alias: "s")
dbconsole Start a console for the database specified in config/database.yml
(short-cut alias: "db")
In addition to those, there are: In addition to those, there are:
application Generate the Rails application code application Generate the Rails application code
dbconsole Start a console for the database specified in config/database.yml
destroy Undo code generated with "generate" destroy Undo code generated with "generate"
benchmarker See how fast a piece of code runs benchmarker See how fast a piece of code runs
profiler Get profile information from a piece of code profiler Get profile information from a piece of code
@ -35,13 +36,13 @@
require 'rails/commands/server' require 'rails/commands/server'
Dir.chdir(ROOT_PATH) Dir.chdir(ROOT_PATH)
Rails::Server.start Rails::Server.start
when 'db', 'dbconsole'
when 'application'
require 'rails/commands/application'
when 'dbconsole'
require 'rails/commands/dbconsole' require 'rails/commands/dbconsole'
require APP_PATH require APP_PATH
Rails::DBConsole.start(Rails::Application) Rails::DBConsole.start(Rails::Application)
when 'application'
require 'rails/commands/application'
when 'destroy' when 'destroy'
require ENV_PATH require ENV_PATH
require 'rails/commands/destroy' require 'rails/commands/destroy'

@ -13,7 +13,7 @@ namespace :notes do
end end
end end
desc "Enumerate a custom annotation, specify with ANNOTATION=WTFHAX" desc "Enumerate a custom annotation, specify with ANNOTATION=CUSTOM"
task :custom do task :custom do
SourceAnnotationExtractor.enumerate ENV['ANNOTATION'] SourceAnnotationExtractor.enumerate ENV['ANNOTATION']
end end

@ -1,80 +1,19 @@
namespace :rails do namespace :rails do
namespace :freeze do namespace :freeze do
desc "Lock this application to the current gems (by unpacking them into vendor/rails)" desc "The rails:freeze:gems is deprecated, please use bundle install instead"
task :gems do task :gems do
deps = %w(actionpack activerecord actionmailer activesupport activeresource) puts "The rails:freeze:gems is deprecated, please use bundle install instead"
require 'rubygems'
require 'rubygems/gem_runner'
rails = (version = ENV['VERSION']) ?
Gem.cache.find_name('rails', "= #{version}").first :
Gem.cache.find_name('rails').sort_by { |g| g.version }.last
version ||= rails.version
unless rails
puts "No rails gem #{version} is installed. Do 'gem list rails' to see what you have available."
exit
end
puts "Freezing to the gems for Rails #{rails.version}"
rm_rf "vendor/rails"
mkdir_p "vendor/rails"
begin
chdir("vendor/rails") do
rails.dependencies.select { |g| deps.include? g.name }.each do |g|
Gem::GemRunner.new.run(["unpack", g.name, "--version", g.version_requirements.to_s])
mv(Dir.glob("#{g.name}*").first, g.name)
end
Gem::GemRunner.new.run(["unpack", "rails", "--version", "=#{version}"])
FileUtils.mv(Dir.glob("rails*").first, "railties")
end
rescue Exception
rm_rf "vendor/rails"
raise
end
end end
desc 'Lock to latest Edge Rails, for a specific release use RELEASE=1.2.0' desc 'The freeze:edge command has been deprecated, specify the path setting in your app Gemfile instead and bundle install'
task :edge do task :edge do
require 'open-uri' puts 'The freeze:edge command has been deprecated, specify the path setting in your app Gemfile instead and bundle install'
version = ENV["RELEASE"] || "edge"
target = "rails_#{version}.zip"
commits = "http://github.com/api/v1/yaml/rails/rails/commits/master"
url = "http://dev.rubyonrails.org/archives/#{target}"
chdir 'vendor' do
latest_revision = YAML.load(open(commits))["commits"].first["id"]
puts "Downloading Rails from #{url}"
File.open('rails.zip', 'wb') do |dst|
open url do |src|
while chunk = src.read(4096)
dst << chunk
end
end
end
puts 'Unpacking Rails'
rm_rf 'rails'
`unzip rails.zip`
%w(rails.zip rails/Rakefile rails/cleanlogs.sh rails/pushgems.rb rails/release.rb).each do |goner|
rm_f goner
end
touch "rails/REVISION_#{latest_revision}"
end
puts 'Updating current scripts, javascripts, and configuration settings'
Rake::Task['rails:update'].invoke
end end
end end
desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems" desc 'The unfreeze command has been deprecated, please use bundler commands instead'
task :unfreeze do task :unfreeze do
rm_rf "vendor/rails" puts 'The unfreeze command has been deprecated, please use bundler commands instead'
end end
desc "Update both configs, scripts and public/javascripts from Rails" desc "Update both configs, scripts and public/javascripts from Rails"
@ -112,7 +51,7 @@ namespace :rails do
invoke_from_app_generator :create_prototype_files invoke_from_app_generator :create_prototype_files
end end
desc "Add new scripts to the application script/ directory" desc "Adds new scripts to the application script/ directory"
task :scripts do task :scripts do
invoke_from_app_generator :create_script_files invoke_from_app_generator :create_script_files
end end