lib/rake/funnel/tasks/environments.rb in rake-funnel-0.3.2.pre vs lib/rake/funnel/tasks/environments.rb in rake-funnel-0.4.0.pre

- old
+ new

@@ -1,89 +1,89 @@ -require 'configatron' -require 'rake/tasklib' - -Dir["#{File.dirname(__FILE__)}/environments_support/*.rb"].each do |path| - require path -end - -module Rake::Funnel::Tasks - class Environments < Rake::TaskLib - include Rake::Funnel::Support::Environments - - attr_accessor :base_dir, :store, :default_env, :default_config, :local_config, :customizer - - def initialize(*args, &task_block) - setup_ivars(args) - - define(args, &task_block) - end - - private - def setup_ivars(_args) - @store = configatron - @default_env = nil - @default_config = 'default' - @local_config = 'local' - @base_dir = 'config' - end - - def define(args, &task_block) - task_block.call(*[self].slice(0, task_block.arity)) if task_block - - environments.each do |env| - desc "Configure for the #{env[:name]} environment" - - task(env[:name], *args) do |_, task_args| - Loader.load_configuration(env, store, customizer) - end - end - - default_environment_setup - end - - def environments - default = File.join(base_dir, config_ext(default_config)) - local = File.join(base_dir, config_ext(local_config)) - - Dir[File.join(base_dir, config_ext('*'))] - .reject { |config| config == default || config == local } - .map do |config| - { - name: File.basename(config, '.*'), - config_files: [ - File.exists?(default) ? default : nil, - config, - File.exists?(local) ? local : nil - ].compact - } - end - end - - def config_ext(name) - "#{name}.yaml" - end - - def default_environment_setup - return unless default_env - - top_level_envs = top_level_env_tasks - if top_level_envs.empty? - task = Rake.application.current_scope.path_with_task_name(default_env) - prepend_task(task) - else - top_level_envs.each do |task| - Rake.application.top_level_tasks.delete(task) - prepend_task(task) - end - end - end - - def prepend_task(task) - Rake.application.top_level_tasks.unshift(task) - end - - def top_level_env_tasks - expect_user_defined = environments.map { |env| Rake.application.current_scope.path_with_task_name(env[:name]) } - Rake.application.top_level_tasks.select { |t| expect_user_defined.include?(t) } - end - end -end +require 'configatron' +require 'rake/tasklib' + +module Rake + module Funnel + module Tasks + class Environments < Rake::TaskLib + include Rake::Funnel::Support::Environments + + attr_accessor :base_dir, :store, :default_env, :default_config, :local_config, :customizer + + def initialize(*args, &task_block) + setup_ivars(args) + + define(args, &task_block) + end + + private + def setup_ivars(_args) + @store = configatron + @default_env = nil + @default_config = 'default' + @local_config = 'local' + @base_dir = 'config' + end + + def define(args, &task_block) + task_block.call(*[self].slice(0, task_block.arity)) if task_block + + environments.each do |env| + desc "Configure for the #{env[:name]} environment" + + task(env[:name], *args) do |_, _task_args| + Loader.load_configuration(env, store, customizer) + end + end + + default_environment_setup + end + + def environments + default = File.join(base_dir, config_ext(default_config)) + local = File.join(base_dir, config_ext(local_config)) + + Dir[File.join(base_dir, config_ext('*'))] + .reject { |config| config == default || config == local } + .map do |config| + { + name: File.basename(config, '.*'), + config_files: [ + File.exist?(default) ? default : nil, + config, + File.exist?(local) ? local : nil + ].compact + } + end + end + + def config_ext(name) + "#{name}.yaml" + end + + def default_environment_setup + return unless default_env + + top_level_envs = top_level_env_tasks + if top_level_envs.empty? + task = Rake.application.current_scope.path_with_task_name(default_env) + prepend_task(task) + else + top_level_envs.each do |task| + Rake.application.top_level_tasks.delete(task) + prepend_task(task) + end + end + end + + def prepend_task(task) + Rake.application.top_level_tasks.unshift(task) + end + + def top_level_env_tasks + expect_user_defined = environments.map { |env| Rake.application.current_scope.path_with_task_name(env[:name]) } + Rake.application.top_level_tasks.select { |t| expect_user_defined.include?(t) } + end + end + end + end +end