# File lib/boxgrinder-core/helpers/appliance-transformation-helper.rb, line 23 def initialize(latest_schema_version, options = {}) @latest_schema_version = latest_schema_version @log = options[:log] || LogHelper.new @versions = ['0.9.0'] end
# File lib/boxgrinder-core/helpers/appliance-transformation-helper.rb, line 51 def to_0_9_0(appliance_definition) packages = appliance_definition['packages']['includes'] @log.warn "BoxGrinder no longer supports package exclusion, the following packages will be not be explicitly excluded: #{appliance_definition['packages']['excludes'].join(", ")}." unless appliance_definition['packages']['excludes'].nil? appliance_definition['packages'] = packages appliance_definition end
# File lib/boxgrinder-core/helpers/appliance-transformation-helper.rb, line 30 def transform(appliance_definition, version) return appliance_definition if version == @latest_schema_version @log.debug "Transforming appliance definition from schema version #{version} to #{@latest_schema_version}..." transformations = [version] definition = appliance_definition @versions.each do |v| if (transformations.last <=> v) < 0 @log.trace "Round #{transformations.size}: transforming from version #{transformations.last} to #{v}..." definition = self.send("to_#{v.gsub(/[-\.]/, '_')}", definition) transformations << v end end @log.debug "Following transformation were applied: #{transformations.join(' => ')}." if transformations.size > 1 definition end