提交 b1350430 编写于 作者: J José Valim

Merge remote branch 'mikel/master'

......@@ -24,6 +24,17 @@ def self.sqlite3_connection(config) # :nodoc:
module ConnectionAdapters #: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
......@@ -26,8 +26,12 @@ namespace :db do
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
# 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])
end
......@@ -196,6 +200,9 @@ namespace :db do
when 'postgresql'
ActiveRecord::Base.establish_connection(config)
puts ActiveRecord::Base.connection.encoding
when 'sqlite3'
ActiveRecord::Base.establish_connection(config)
puts ActiveRecord::Base.connection.encoding
else
puts 'sorry, your database adapter is not supported yet, feel free to submit a patch'
end
......
......@@ -6,13 +6,14 @@
usage: rails COMMAND [ARGS]
The most common rails commands are:
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s")
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
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:
application Generate the Rails application code
dbconsole Start a console for the database specified in config/database.yml
destroy Undo code generated with "generate"
benchmarker See how fast a piece of code runs
profiler Get profile information from a piece of code
......@@ -35,13 +36,13 @@
require 'rails/commands/server'
Dir.chdir(ROOT_PATH)
Rails::Server.start
when 'application'
require 'rails/commands/application'
when 'dbconsole'
when 'db', 'dbconsole'
require 'rails/commands/dbconsole'
require APP_PATH
Rails::DBConsole.start(Rails::Application)
when 'application'
require 'rails/commands/application'
when 'destroy'
require ENV_PATH
require 'rails/commands/destroy'
......
......@@ -13,7 +13,7 @@ namespace :notes do
end
end
desc "Enumerate a custom annotation, specify with ANNOTATION=WTFHAX"
desc "Enumerate a custom annotation, specify with ANNOTATION=CUSTOM"
task :custom do
SourceAnnotationExtractor.enumerate ENV['ANNOTATION']
end
......
namespace :rails 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
deps = %w(actionpack activerecord actionmailer activesupport activeresource)
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
puts "The rails:freeze:gems is deprecated, please use bundle install instead"
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
require 'open-uri'
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
puts 'The freeze:edge command has been deprecated, specify the path setting in your app Gemfile instead and bundle install'
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
rm_rf "vendor/rails"
puts 'The unfreeze command has been deprecated, please use bundler commands instead'
end
desc "Update both configs, scripts and public/javascripts from Rails"
......@@ -112,7 +51,7 @@ namespace :rails do
invoke_from_app_generator :create_prototype_files
end
desc "Add new scripts to the application script/ directory"
desc "Adds new scripts to the application script/ directory"
task :scripts do
invoke_from_app_generator :create_script_files
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册