lib/compass/commands/installer_command.rb in compass-edge-0.9.3 vs lib/compass/commands/installer_command.rb in compass-edge-0.9.4

- old
+ new

@@ -4,31 +4,31 @@ module Commands module InstallerCommand include Compass::Installers def configure! - Compass.add_configuration(installer.default_configuration) - Compass.add_project_configuration - Compass.add_configuration(options) - Compass.add_configuration(installer.completed_configuration) + if respond_to?(:is_project_creation?) && is_project_creation? + Compass.add_configuration(options.delete(:project_type) || :stand_alone) + else + Compass.add_project_configuration(:project_type => options.delete(:project_type)) + end + Compass.add_configuration(options, 'command_line') if File.exists?(Compass.configuration.extensions_path) Compass::Frameworks.discover(Compass.configuration.extensions_path) end + Compass.add_configuration(installer.completed_configuration, 'installer') end + def app + @app ||= Compass::AppIntegration.lookup(Compass.configuration.project_type) + end + def installer - installer_class = if options[:bare] - "Compass::Installers::BareInstaller" + @installer ||= if options[:bare] + Compass::Installers::BareInstaller.new(*installer_args) else - project_type = options[:project_type] || Compass.configuration.project_type - "Compass::AppIntegration::#{camelize(project_type)}::Installer" + app.installer(*installer_args) end - @installer = eval("#{installer_class}.new *installer_args") - end - - # Stolen from ActiveSupport - def camelize(s) - s.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } end def installer_args [template_directory(options[:pattern] || "project"), project_directory, options] end