lib/tasks/exlibris-aleph_tasks.rake in exlibris-aleph-1.0.2 vs lib/tasks/exlibris-aleph_tasks.rake in exlibris-aleph-1.0.3

- old
+ new

@@ -1,8 +1,55 @@ namespace :exlibris do namespace :aleph do - desc "Refresh Aleph YAML Config" - task :refresh do + desc "Initialize the Exlibris::Aleph environment" + 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['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 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 config_file + end + end + + 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] + 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.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.join(Rails.root, initializer) + end + end + + desc "Refresh the Exlibris::Aleph tables" + task :refresh, [:config_file, :tab_path, :yml_path, :adms] => :initialize do Exlibris::Aleph::TabHelper.refresh_yml end end end \ No newline at end of file