Skip to content

Commit

Permalink
Fix rake tasks for initialization.
Browse files Browse the repository at this point in the history
  • Loading branch information
scotdalton committed Mar 7, 2013
1 parent 38b8284 commit 947870f
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions lib/tasks/exlibris-aleph_tasks.rake
Original file line number Diff line number Diff line change
@@ -1,50 +1,54 @@
namespace :exlibris do
namespace :aleph do
desc "Initialize the Exlibris::Aleph environment"
task :initialize, :config_file do |task, args|
task :initialize, :config_file, :tab_path, :yml_path, :adms do |task, args|
args.with_defaults(:config_file => '', :tab_path => '', :adms => [])
# If we're in the Rails environment, use Rails initializers
if defined?(::Rails) && ::Rails.version >= '3.1.0'
Rake::Task[:initialize_via_rails_initializers].invoke
elsif args[:config_file]
Rake::Task[:initialize_via_config_file].invoke(args)
elsif args[:tab_path] and args[:adms]
Rake::Task[:initialize_via_config].invoke(args)
Rake::Task['exlibris:aleph:initialize_via_rails_initializers'].invoke
elsif (not args[:config_file].empty?)
Rake::Task['exlibris:aleph:initialize_via_config_file'].invoke(args[:config_file])
elsif (not args[:tab_path].empty?) and (not args[:adms].empty?)
Rake::Task['exlibris:aleph:initialize_via_args'].invoke(args[:tab_path], args[:yml_path], args[:adms])
else
raise
raise Rake::TaskArgumentError.new("Insufficient arguments.")
end
p "Configured tab path: #{Exlibris::Aleph::TabHelper.tab_path}"
p "Configured yml path: #{Exlibris::Aleph::TabHelper.yml_path}"
p "Configured ADMs: #{Exlibris::Aleph::TabHelper.adms}"
end

desc "Initialize the Exlibris::Aleph environment via the given yaml config file"
task :initialize_via_config_file, :config_file do |task, args|
config_file = args[:config_file]
# Load Aleph configuration via given config_file
Exlibris::Aleph.configure do |config|
config.load_yaml File.expand_path(config_file, __FILE__)
config.load_yaml config_file
end
end

desc "Initialize the Exlibris::Aleph environment via the given args"
task :initialize_via_args, :tab_path, :yaml_path, :adms do |task, args|
desc "Initialize the Exlibris::Aleph environment via the given args.\nADMs should be separated by semicolons."
task :initialize_via_args, :tab_path, :yml_path, :adms do |task, args|
tab_path = args[:tab_path]
yaml_path = args[:yaml_path]
adms = args[:adms]
yml_path = args[:yml_path]
adms = args[:adms].split(";")
# Load Aleph configuration via given config_file
Exlibris::Aleph.configure do |config|
config.tab_path = tab_path
config.yaml_path = yaml_path
config.yml_path = yml_path
config.adms = adms
end
end

desc "Initialize the Exlibris::Aleph environment via the Rails initializers"
task :initialize_via_rails_initializers do
Dir.glob("config/initializers/*.rb").each do |initializer|
require File.expand_path(File.join(Rails.root, initializer), __FILE__)
require File.join(Rails.root, initializer)
end
end

desc "Refresh the Exlibris::Aleph tables"
task :refresh, [:config_file, :tab_path, :yaml_path, :adms] => :initialize do
task :refresh, [:config_file, :tab_path, :yml_path, :adms] => :initialize do
Exlibris::Aleph::TabHelper.refresh_yml
end
end
Expand Down

0 comments on commit 947870f

Please sign in to comment.