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',