Class: Compass::Commands::WriteConfiguration
Instance Attribute Summary
Attributes inherited from ProjectBase
#options, #project_name
Attributes inherited from Base
#options, #working_path
Attributes included from Actions
#logger
Class Method Summary
collapse
Instance Method Summary
collapse
#app, #configure!, #installer
Methods inherited from ProjectBase
#execute
Methods inherited from Base
#execute, #failed!, register, #successful?
Methods included from Actions
#basename, #copy, #directory, #log_action, #process_erb, #relativize, #remove, #separate, #strip_trailing_separator, #write_file
Constructor Details
#initialize(working_path, options) ⇒ WriteConfiguration
Returns a new instance of WriteConfiguration.
36
37
38
39
|
# File 'lib/compass/commands/write_configuration.rb', line 36
def initialize(working_path, options)
super
assert_project_directory_exists!
end
|
Class Method Details
.description(command) ⇒ Object
100
101
102
|
# File 'lib/compass/commands/write_configuration.rb', line 100
def description(command)
"Generate a configuration file for the provided command line options."
end
|
.option_parser(arguments) ⇒ Object
.parse!(arguments) ⇒ Object
104
105
106
107
108
109
|
# File 'lib/compass/commands/write_configuration.rb', line 104
def parse!(arguments)
parser = option_parser(arguments)
parser.parse!
parse_arguments!(parser, arguments)
parser.options
end
|
.parse_arguments!(parser, arguments) ⇒ Object
111
112
113
114
115
116
117
118
119
|
# File 'lib/compass/commands/write_configuration.rb', line 111
def parse_arguments!(parser, arguments)
if arguments.size == 1
parser.options[:configuration_file] = arguments.shift
elsif arguments.size == 0
else
raise Compass::Error, "Too many arguments were specified."
end
end
|
.usage ⇒ Object
96
97
98
|
# File 'lib/compass/commands/write_configuration.rb', line 96
def usage
option_parser([]).to_s
end
|
Instance Method Details
#add_project_configuration ⇒ Object
#explicit_config_file_must_be_readable? ⇒ Boolean
83
84
85
|
# File 'lib/compass/commands/write_configuration.rb', line 83
def explicit_config_file_must_be_readable?
false
end
|
#installer_args ⇒ Object
79
80
81
|
# File 'lib/compass/commands/write_configuration.rb', line 79
def installer_args
[nil, project_directory, options]
end
|
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/compass/commands/write_configuration.rb', line 45
def perform
if options[:display]
if Compass.configuration.respond_to?(options[:display])
puts Compass.configuration.send(options[:display])
else
raise Compass::Error, "ERROR: configuration property '#{options[:display]}' does not exist"
end
elsif options[:debug]
puts "Configuration sources:"
c = Compass.configuration
while c
print c.name
c = c.inherited_data
print ", " if c
end
print "\n"
Compass.configuration.debug.each do |prop, values|
if options[:debug].is_a?(Symbol)
next unless prop == options[:debug]
end
puts "***** #{prop} = #{values.first[:resolved].inspect} *****"
[:default, :value, :raw, :resolved].each do |kind|
puts "#{kind}: " + values.inject([]){|m, v| m << v[kind]}.map{|v| v.nil? ? '-' : v.inspect}.join(", ")
end
end
else
config_file = options[:configuration_file]
config_file ||= Compass.detect_configuration_file
config_file ||= Compass::Configuration::Helpers::KNOWN_CONFIG_LOCATIONS.first
directory File.dirname(config_file)
installer.write_configuration_files(config_file)
end
end
|