lib/openstudio/analysis/translator/excel.rb in openstudio-analysis-0.2.0 vs lib/openstudio/analysis/translator/excel.rb in openstudio-analysis-0.2.1
- old
+ new
@@ -165,10 +165,12 @@
@template_json = translate_to_analysis_json_template
@template_json
end
+ # save_analysis will iterate over each model that is defined in the spreadsheet and save the
+ # zip and json file.
def save_analysis
@template_json = create_analysis_hash
# validate_template_json
@@ -307,10 +309,19 @@
# helper method for ERB
def get_binding
binding
end
+ def add_directory_to_zip(zipfile, local_directory, relative_zip_directory)
+ # pp "Add Directory #{local_directory}"
+ Dir[File.join("#{local_directory}", '**', '**')].each do |file|
+ # pp "Adding File #{file}"
+ zipfile.add(file.sub(local_directory, relative_zip_directory), file)
+ end
+ zipfile
+ end
+
# Package up the seed, weather files, and measures
def save_analysis_zip(model)
zipfile_name = "#{@export_path}/#{model[:name]}.zip"
FileUtils.rm_f(zipfile_name) if File.exist?(zipfile_name)
@@ -318,15 +329,53 @@
@weather_files.each do |filename|
# puts " Adding #{filename}"
zipfile.add("./weather/#{File.basename(filename)}", filename)
end
- Dir.glob("#{@measure_path}/**/*.rb").each do |measure|
- next if measure.include?('spec') # don't include the spec folders nor files
- measure_name = measure.split(File::SEPARATOR).last(2).first
- # puts " Adding ./measures/#{measure_name}/#{File.basename(measure)}"
- zipfile.add("./measures/#{measure_name}/#{File.basename(measure)}", measure)
+ # Add only the measures that are defined in the spreadsheet
+ added_measures = []
+ measure_files = Dir.glob("#{@measure_path}/**/measure.rb")
+
+ # go through each of the Variables
+ @variables['data'].each do |v|
+ measure_to_save = nil
+ measure_files.each do |measure|
+ # pp v['measure_file_name_directory']
+ if measure.include? "/#{v['measure_file_name_directory']}/"
+ measure_to_save = File.dirname(measure)
+ # pp "Measure to save is #{measure}"
+ break
+ end
+ end
+
+ if v['measure_file_name_directory'] =~ /baseline/i
+ puts ' Skipping baseline measure'
+ next
+ end
+
+ if measure_to_save && !added_measures.include?(measure_to_save)
+ # pp "Attempting to add measure #{measure_to_save}"
+ if File.exist?(measure_to_save)
+ # pp "Adding measure directory to zip #{measure_to_save}"
+ Dir[File.join(measure_to_save, '**')].each do |file|
+ if File.directory?(file)
+ if File.basename(file) == 'resources'
+ add_directory_to_zip(zipfile, file, "./measures/#{v['measure_file_name_directory']}/#{File.basename(file)}")
+ else
+ # pp "Skipping Directory #{File.basename(file)}"
+ end
+ else
+ # pp "Adding File #{file}"
+ # added_measures << measure_dir unless added_measures.include? measure_dir
+ zipfile.add(file.sub(measure_to_save, "./measures/#{v['measure_file_name_directory']}/"), file)
+ end
+ end
+ added_measures << measure_to_save unless added_measures.include? measure_to_save
+ else
+ fail "Could not find measure to add to zip for #{@measure_path}/#{v['measure_file_name_directory']}"
+ end
+ end
end
# puts "Adding #{model[:path]}"
zipfile.add("./seed/#{File.basename(model[:path])}", model[:path])
@@ -514,10 +563,10 @@
distribution: 'distribution',
source: 'data source',
notes: 'notes',
relation_to_eui: 'typical var to eui relationship',
clean: true)
- elsif @version >= '0.1.12' # add delta x
+ elsif @version >= '0.1.12' # add delta x
rows = @xls.sheet('Variables').parse(enabled: '# variable',
measure_name_or_var_type: 'type',
measure_file_name_or_var_display_name: 'parameter display name.*',
measure_type_or_parameter_name_in_measure: 'parameter name in measure',
sampling_method: 'sampling method',