Merged rails-3.2 branch.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9528 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-04-25 17:17:49 +00:00
parent 34e20c4373
commit 5e57a1a9d9
457 changed files with 20215 additions and 5352 deletions
+1
View File
@@ -7,3 +7,4 @@ end
deprecated_task :load_default_data, "redmine:load_default_data"
deprecated_task :migrate_from_mantis, "redmine:migrate_from_mantis"
deprecated_task :migrate_from_trac, "redmine:migrate_from_trac"
deprecated_task "db:migrate_plugins", "redmine:plugins:migrate"
+10 -20
View File
@@ -1,34 +1,24 @@
desc 'Generates a configuration file for cookie store sessions.'
desc 'Generates a secret token for the application.'
file 'config/initializers/session_store.rb' do
path = File.join(Rails.root, 'config', 'initializers', 'session_store.rb')
secret = ActiveSupport::SecureRandom.hex(40)
file 'config/initializers/secret_token.rb' do
path = File.join(Rails.root, 'config', 'initializers', 'secret_token.rb')
secret = SecureRandom.hex(40)
File.open(path, 'w') do |f|
f.write <<"EOF"
# This file was generated by 'rake config/initializers/session_store.rb',
# and should not be made visible to public.
# This file was generated by 'rake generate_secret_token', and should
# not be made visible to public.
# If you have a load-balancing Redmine cluster, you will need to use the
# same version of this file on each machine. And be sure to restart your
# server when you modify this file.
#
# Your secret key for verifying cookie session data integrity. If you
# change this key, all old sessions will become invalid! Make sure the
# secret is at least 30 characters and all random, no regular words or
# you'll be exposed to dictionary attacks.
ActionController::Base.session = {
:key => '_redmine_session',
#
# Uncomment and edit the :session_path below if are hosting your Redmine
# at a suburi and don't want the top level path to access the cookies
#
# See: http://www.redmine.org/issues/3968
#
# :session_path => '/url_path_to/your/redmine/',
:secret => '#{secret}'
}
RedmineApp::Application.config.secret_token = '#{secret}'
EOF
end
end
desc 'Generates a configuration file for cookie store sessions.'
task :generate_session_store => ['config/initializers/session_store.rb']
desc 'Generates a secret token for the application.'
task :generate_secret_token => ['config/initializers/secret_token.rb']
-15
View File
@@ -1,15 +0,0 @@
namespace :db do
desc 'Migrates installed plugins.'
task :migrate_plugins => :environment do
if Rails.respond_to?('plugins')
Rails.plugins.each do |plugin|
next unless plugin.respond_to?('migrate')
puts "Migrating #{plugin.name}..."
plugin.migrate
end
else
puts "Undefined method plugins for Rails!"
puts "Make sure engines plugin is installed."
end
end
end
-38
View File
@@ -1,38 +0,0 @@
require 'source_annotation_extractor'
# Modified version of the SourceAnnotationExtractor in railties
# Will search for runable code that uses <tt>call_hook</tt>
class PluginSourceAnnotationExtractor < SourceAnnotationExtractor
# Returns a hash that maps filenames under +dir+ (recursively) to arrays
# with their annotations. Only files with annotations are included, and only
# those with extension +.builder+, +.rb+, +.rxml+, +.rjs+, +.rhtml+, and +.erb+
# are taken into account.
def find_in(dir)
results = {}
Dir.glob("#{dir}/*") do |item|
next if File.basename(item)[0] == ?.
if File.directory?(item)
results.update(find_in(item))
elsif item =~ /(hook|test)\.rb/
# skip
elsif item =~ /\.(builder|(r(?:b|xml|js)))$/
results.update(extract_annotations_from(item, /\s*(#{tag})\(?\s*(.*)$/))
elsif item =~ /\.(rhtml|erb)$/
results.update(extract_annotations_from(item, /<%=\s*\s*(#{tag})\(?\s*(.*?)\s*%>/))
end
end
results
end
end
namespace :redmine do
namespace :plugins do
desc "Enumerate all Redmine plugin hooks and their context parameters"
task :hook_list do
PluginSourceAnnotationExtractor.enumerate 'call_hook'
end
end
end
+24
View File
@@ -41,4 +41,28 @@ namespace :redmine do
task :fetch_changesets => :environment do
Repository.fetch_changesets
end
desc 'Migrates and copies plugins assets.'
task :plugins do
Rake::Task["redmine:plugins:migrate"].invoke
Rake::Task["redmine:plugins:assets"].invoke
end
namespace :plugins do
desc 'Migrates installed plugins.'
task :migrate => :environment do
Redmine::Plugin.all.each do |plugin|
puts "Migrating #{plugin.name}..."
plugin.migrate
end
end
desc 'Copies plugins assets into the public directory.'
task :assets => :environment do
Redmine::Plugin.all.each do |plugin|
puts "Copying #{plugin.name} assets..."
plugin.mirror_assets
end
end
end
end