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