lib/docman/docroot_controller.rb in docman-0.0.5 vs lib/docman/docroot_controller.rb in docman-0.0.6

- old
+ new

@@ -1,63 +1,51 @@ require 'docman/builders/builder' -require 'docman/builders/common_builder' -require 'docman/builders/git_builder' +require 'docman/builders/dir_builder' +require 'docman/builders/git_direct_builder' +require 'docman/builders/git_strip_builder' +require 'docman/builders/drupal_drush_builder' require 'docman/deployers/deployer' require 'docman/deployers/git_deployer' require 'docman/deployers/common_deployer' +require 'docman/command' +require 'docman/composite_command' +require 'docman/builders/commands/create_symlink_cmd' +require 'docman/builders/commands/execute_script_cmd' +require 'docman/builders/commands/clean_changed_cmd' +require 'docman/builders/commands/git_commit_cmd' # TODO: make universal logging class. module Docman class DocrootController - attr_reader :docroot_dir + attr_reader :docroot_dir, :docroot_config def initialize(docroot_dir, deploy_target_name, options = {}) @deploy_target = Docman::Application.instance.config['deploy_targets'][deploy_target_name] + @deploy_target_name = deploy_target_name Docman::Application.instance.deploy_target = @deploy_target docroot_config = DocrootConfig.new(docroot_dir, @deploy_target) - @deployer = Docman::Deployers::Deployer.create(@deploy_target['handler'], @deploy_target) @docroot_dir = docroot_dir @docroot_config = docroot_config end - def deploy(name, type, version) - puts "Deploy #{name}, type: #{type}" - @docroot_config.states_dependin_on(name, version).each do |state_name, state| - deploy_dir_chain(state_name, @docroot_config.info_by(name)) - @deployer.push(@docroot_config.root_dir, state_name) - end + def build(state_name) + execute(state_name) end - def build(state) - build_recursive(state) - @deployer.push(@docroot_config.root_dir, state) - end - - def build_recursive(state, info = nil) - info = info ? info : @docroot_config.structure - build_dir(state, info) - - info['children'].each do |child| - build_recursive(state, child) + def deploy(name, type, version) + @docroot_config.states_dependin_on(name, version).keys.each do |state_name| + execute(state_name, name) end end - def deploy_dir_chain(state, info) - @docroot_config.chain(info).each do |name, item| - if item.need_rebuild? - build_recursive(state, item) - return - elsif - build_dir(state, item) - end - end - end - - def build_dir(state, info) - info.state = state - @deployer.build(@docroot_config.root(info), info) + def execute(state, name = nil) + #Docman::Application.instance.config.environment(state_name, @deploy_target_name) + params = @deploy_target + params['state'] = state + params['name'] = name + Docman::Deployers::Deployer.create(params, self).perform end end end \ No newline at end of file