class Rake::Funnel::Support::ArgumentMapper::Styles::MSDeploy
Attributes
prefix[R]
separator[R]
value_list_separator[R]
value_separator[R]
Public Class Methods
new()
click to toggle source
# File lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb, line 11 def initialize @prefix = '-' @separator = ':' @value_separator = '=' @value_list_separator = ',' end
Public Instance Methods
generate_from(model)
click to toggle source
# File lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb, line 18 def generate_from(model) model.flat_map do |switch| switch.values.map do |item| values = if item.is_a?(Enumerable) item.map.with_index { |nested, index| nested(nested, index) } else nested(item) end (top_level(switch) + values).flatten end end end
Private Instance Methods
nested(value, index = 0)
click to toggle source
# File lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb, line 38 def nested(value, index = 0) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity res = [] res << value_list_separator unless index.zero? res << separator unless value.key.nil? && value.value.nil? || index != 0 res << quote(value.key) res << value_separator unless value.key.nil? || value.value.nil? res << quote(value.value) res.compact end
quote(value)
click to toggle source
# File lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb, line 48 def quote(value) value = value.gsub(/"/, '""') if value.is_a?(String) return %("#{value}") if value.to_s =~ /\s/ value end
top_level(switch)
click to toggle source
# File lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb, line 34 def top_level(switch) [prefix, quote(switch.switch)] end