openstudio-analysis 1.0.1 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.travis.yml +2 -3
  4. data/CHANGELOG.md +25 -0
  5. data/Gemfile +1 -5
  6. data/LICENSE.md +1 -1
  7. data/Rakefile +1 -1
  8. data/lib/openstudio-analysis.rb +2 -1
  9. data/lib/openstudio/analysis.rb +23 -27
  10. data/lib/openstudio/analysis/algorithm_attributes.rb +1 -1
  11. data/lib/openstudio/analysis/formulation.rb +1 -1
  12. data/lib/openstudio/analysis/server_api.rb +8 -14
  13. data/lib/openstudio/analysis/support_files.rb +1 -1
  14. data/lib/openstudio/analysis/translator/datapoints.rb +24 -38
  15. data/lib/openstudio/analysis/translator/excel.rb +2 -2
  16. data/lib/openstudio/analysis/translator/workflow.rb +10 -13
  17. data/lib/openstudio/analysis/version.rb +2 -2
  18. data/lib/openstudio/analysis/workflow.rb +9 -18
  19. data/lib/openstudio/analysis/workflow_step.rb +67 -78
  20. data/lib/openstudio/helpers/hash.rb +1 -1
  21. data/lib/openstudio/helpers/string.rb +1 -1
  22. data/{spec/openstudio/server_api_spec.rb → lib/openstudio/helpers/utils.rb} +26 -28
  23. data/lib/openstudio/weather/epw.rb +1 -1
  24. data/openstudio-analysis.gemspec +17 -14
  25. data/update_license.rb +3 -3
  26. metadata +57 -194
  27. data/spec/files/0_1_09_no_variables.xlsx +0 -0
  28. data/spec/files/0_1_09_outputvars.xlsx +0 -0
  29. data/spec/files/0_1_09_setup_version_2.xlsx +0 -0
  30. data/spec/files/0_1_09_small_list.xlsx +0 -0
  31. data/spec/files/0_1_09_small_list_incomplete.xlsx +0 -0
  32. data/spec/files/0_1_09_small_list_repeat_vars.xlsx +0 -0
  33. data/spec/files/0_1_09_small_list_validation_errors.xlsx +0 -0
  34. data/spec/files/0_1_10_proxy.xlsx +0 -0
  35. data/spec/files/0_1_10_proxy_user.xlsx +0 -0
  36. data/spec/files/0_1_10_template_input.xlsx +0 -0
  37. data/spec/files/0_1_11_discrete_variables.xlsx +0 -0
  38. data/spec/files/0_1_12_discrete_dynamic_columns.xlsx +0 -0
  39. data/spec/files/0_2_0_template.xlsx +0 -0
  40. data/spec/files/0_2_0_template_simpletest.xlsx +0 -0
  41. data/spec/files/0_3_0_dynamic_uuids.xlsx +0 -0
  42. data/spec/files/0_3_0_measure_existence.xlsx +0 -0
  43. data/spec/files/0_3_0_outputs.xlsx +0 -0
  44. data/spec/files/0_3_3_short_names.xlsx +0 -0
  45. data/spec/files/0_3_5_multiple_measure_paths.xlsx +0 -0
  46. data/spec/files/0_3_7_unique_measure_names.xlsx +0 -0
  47. data/spec/files/0_3_7_worker_init_final.xlsx +0 -0
  48. data/spec/files/0_4_0_lhs_discrete_continuous.xlsx +0 -0
  49. data/spec/files/0_4_0_multiple_seeds.xlsx +0 -0
  50. data/spec/files/0_4_0_pivot_test.xlsx +0 -0
  51. data/spec/files/analysis/examples/discrete_lhs_example.json +0 -809
  52. data/spec/files/analysis/examples/medium_office_example.json +0 -1674
  53. data/spec/files/analysis/examples/medium_office_workflow.json +0 -1298
  54. data/spec/files/measures/ActualMeasureNoJson/measure.rb +0 -80
  55. data/spec/files/measures/ActualMeasureNoJson/measure.xml +0 -2
  56. data/spec/files/measures/ExampleMeasure/measure.json +0 -3
  57. data/spec/files/measures/ExampleMeasure/measure.rb +0 -5
  58. data/spec/files/measures/ExampleMeasure/measure.xml +0 -1
  59. data/spec/files/measures/IncreaseInsulationRValueForRoofs/measure.json +0 -36
  60. data/spec/files/measures/IncreaseInsulationRValueForRoofs/measure.rb +0 -22
  61. data/spec/files/measures/IncreaseInsulationRValueForRoofs/measure.xml +0 -5
  62. data/spec/files/measures/NoMeasureRbFile/.gitkeep +0 -0
  63. data/spec/files/measures/ReduceLightingLoadsByPercentage/measure.json +0 -3
  64. data/spec/files/measures/ReduceLightingLoadsByPercentage/measure.rb +0 -5
  65. data/spec/files/measures/ReduceLightingLoadsByPercentage/measure.xml +0 -1
  66. data/spec/files/measures/SetThermostatSchedules/measure.json +0 -63
  67. data/spec/files/measures/SetThermostatSchedules/measure.rb +0 -254
  68. data/spec/files/measures/SetThermostatSchedules/measure.xml +0 -2
  69. data/spec/files/measures/example_measure_auto_directory_name/measure.json +0 -3
  70. data/spec/files/measures/example_measure_auto_directory_name/measure.rb +0 -5
  71. data/spec/files/measures/example_measure_auto_directory_name/measure.xml +0 -1
  72. data/spec/files/measures/reduce_lighting_loads_by_percentage/measure.json +0 -3
  73. data/spec/files/measures/reduce_lighting_loads_by_percentage/measure.rb +0 -5
  74. data/spec/files/measures/reduce_lighting_loads_by_percentage/measure.xml +0 -1
  75. data/spec/files/measures/reduce_space_infiltration_by_percentage/measure.rb +0 -5
  76. data/spec/files/measures/reduce_space_infiltration_by_percentage/measure.xml +0 -1
  77. data/spec/files/measures/rotate_building/measure.rb +0 -5
  78. data/spec/files/measures/rotate_building/measure.xml +0 -1
  79. data/spec/files/measures/set_window_to_wall_ratio_by_facade/measure.rb +0 -5
  80. data/spec/files/measures/set_window_to_wall_ratio_by_facade/measure.xml +0 -1
  81. data/spec/files/measures_second_path/measure_in_another_dir/measure.json +0 -3
  82. data/spec/files/measures_second_path/measure_in_another_dir/measure.rb +0 -5
  83. data/spec/files/measures_second_path/measure_in_another_dir/measure.xml +0 -1
  84. data/spec/files/partial_weather.epw +0 -32
  85. data/spec/files/partial_weather_2.epw +0 -32
  86. data/spec/files/small_seed.osm +0 -4622
  87. data/spec/files/worker_init/first_file.rb +0 -15
  88. data/spec/files/worker_init/second_file.sh +0 -4
  89. data/spec/files/workflow/analysis.osa +0 -1334
  90. data/spec/files/workflow/datapoint_0.osd +0 -65
  91. data/spec/files/workflow/datapoint_1.osd +0 -65
  92. data/spec/files/workflow/datapoint_2.osd +0 -65
  93. data/spec/files/workflow/datapoint_wrong_osa_id.osd +0 -65
  94. data/spec/integration/server_api_spec.rb +0 -83
  95. data/spec/openstudio/excel_spec.rb +0 -606
  96. data/spec/openstudio/formulation_spec.rb +0 -200
  97. data/spec/openstudio/hash_spec.rb +0 -56
  98. data/spec/openstudio/osw_spec.rb +0 -129
  99. data/spec/openstudio/string_spec.rb +0 -34
  100. data/spec/openstudio/support_files_spec.rb +0 -89
  101. data/spec/openstudio/weather_spec.rb +0 -80
  102. data/spec/openstudio/workflow_spec.rb +0 -126
  103. data/spec/openstudio/workflow_step_spec.rb +0 -158
  104. data/spec/schema/osa.json +0 -613
  105. data/spec/schema/osa.png +0 -0
  106. data/spec/schema/osd.json +0 -110
  107. data/spec/schema/osd.png +0 -0
  108. data/spec/spec_helper.rb +0 -56
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -60,7 +60,7 @@ module OpenStudio
60
60
  @name = ''
61
61
  @display_name = ''
62
62
 
63
- # The type of item being added (RubyMeasure, EnergyPlusMeasure, ...)
63
+ # The type of item being added (ModelMeasure, EnergyPlusMeasure, ...)
64
64
  @type = nil
65
65
 
66
66
  @measure_definition_class_name = nil
@@ -267,15 +267,12 @@ module OpenStudio
267
267
  #
268
268
  # @param instance_name [String] Machine name of the instance
269
269
  # @param instance_display_name [String] Display name of the instance
270
- # @param path_to_measure [String] This is the local path to the measure directroy, relative or absolute. It is used when zipping up all the measures.
271
- # @param hash [Hash] Measure hash in the format of the measure.json (from the Analysis Spreadsheet project)
270
+ # @param path_to_measure [String] This is the local path to the measure directory, relative or absolute. It is used when zipping up all the measures.
271
+ # @param hash [Hash] Measure hash in the format of a converted measure.xml hash (from the Analysis Spreadsheet project)
272
272
  # @param options [Hash] Optional arguments
273
273
  # @option options [Boolean] :ignore_not_found Do not raise an exception if the measure could not be found on the machine
274
274
  # @return [Object] Returns the OpenStudio::Analysis::WorkflowStep
275
275
  def self.from_measure_hash(instance_name, instance_display_name, path_to_measure, hash, options = {})
276
- # TODO: Validate the hash
277
- # TODO: validate that the measure exists?
278
-
279
276
  if File.directory? path_to_measure
280
277
  path_to_measure = File.join(path_to_measure, 'measure.rb')
281
278
  end
@@ -312,40 +309,36 @@ module OpenStudio
312
309
  # do not allow the choice variable_type
313
310
 
314
311
  s.type = hash[:measure_type] # this is actually the measure type
315
- if hash[:arguments]
316
- hash[:arguments].each do |arg|
317
- # warn the user to we need to deprecate variable_type and use value_type (which is what os server uses)
318
- var_type = arg[:variable_type] ? arg[:variable_type].downcase : arg[:value_type]
319
-
320
- if var_type == 'choice'
321
- # WARN the user that the measure had a "choice data type"
322
- var_type = 'string'
323
- end
312
+ hash[:arguments]&.each do |arg|
313
+ # warn the user to we need to deprecate variable_type and use value_type (which is what os server uses)
314
+ var_type = arg[:variable_type] ? arg[:variable_type].downcase : arg[:value_type]
324
315
 
325
- s.arguments << {
326
- display_name: arg[:display_name],
327
- display_name_short: arg[:display_name_short],
328
- name: arg[:name],
329
- value_type: var_type,
330
- default_value: arg[:default_value],
331
- value: arg[:default_value]
332
- }
316
+ if var_type == 'choice'
317
+ # WARN the user that the measure had a "choice data type"
318
+ var_type = 'string'
333
319
  end
320
+
321
+ s.arguments << {
322
+ display_name: arg[:display_name],
323
+ display_name_short: arg[:display_name_short],
324
+ name: arg[:name],
325
+ value_type: var_type,
326
+ default_value: arg[:default_value],
327
+ value: arg[:default_value]
328
+ }
334
329
  end
335
330
 
336
331
  # Load the arguments of variables, but do not make them variables. This format is more about arugments, than variables
337
- if hash[:variables]
338
- hash[:variables].each do |variable|
339
- # add the arguments first
340
- s.arguments << {
341
- display_name: variable[:argument][:display_name],
342
- display_name_short: variable[:argument][:display_name_short],
343
- name: variable[:argument][:name],
344
- value_type: variable[:argument][:value_type],
345
- default_value: variable[:argument][:default_value],
346
- value: variable[:argument][:default_value]
347
- }
348
- end
332
+ hash[:variables]&.each do |variable|
333
+ # add the arguments first
334
+ s.arguments << {
335
+ display_name: variable[:argument][:display_name],
336
+ display_name_short: variable[:argument][:display_name_short],
337
+ name: variable[:argument][:name],
338
+ value_type: variable[:argument][:value_type],
339
+ default_value: variable[:argument][:default_value],
340
+ value: variable[:argument][:default_value]
341
+ }
349
342
  end
350
343
 
351
344
  s
@@ -356,7 +349,7 @@ module OpenStudio
356
349
  # @param instance_name [String] Machine name of the instance
357
350
  # @param instance_display_name [String] Display name of the instance
358
351
  # @param path_to_measure [String] This is the local path to the measure directroy, relative or absolute. It is used when zipping up all the measures.
359
- # @param hash [Hash] Measure hash in the format of the measure.json (from the Analysis Spreadsheet project)
352
+ # @param hash [Hash] Measure hash in the format of the measure.xml converted to JSON (from the Analysis Spreadsheet project)
360
353
  # @param options [Hash] Optional arguments
361
354
  # @option options [Boolean] :ignore_not_found Do not raise an exception if the measure could not be found on the machine
362
355
  # @return [Object] Returns the OpenStudio::Analysis::WorkflowStep
@@ -398,51 +391,47 @@ module OpenStudio
398
391
  s.measure_definition_version_uuid = hash[:measure_definition_version_uuid]
399
392
 
400
393
  s.type = hash[:measure_type] # this is actually the measure type
401
- if hash[:arguments]
402
- hash[:arguments].each do |arg|
403
- # warn the user to we need to deprecate variable_type and use value_type (which is what os server uses)
404
- var_type = arg[:value_type]
405
-
406
- if var_type == 'choice'
407
- # WARN the user that the measure had a "choice data type"
408
- var_type = 'string'
409
- end
394
+ hash[:arguments]&.each do |arg|
395
+ # warn the user to we need to deprecate variable_type and use value_type (which is what os server uses)
396
+ var_type = arg[:value_type]
410
397
 
411
- s.arguments << {
412
- display_name: arg[:display_name],
413
- display_name_short: arg[:display_name_short],
414
- name: arg[:name],
415
- value_type: var_type,
416
- default_value: arg[:default_value],
417
- value: arg[:value]
418
- }
398
+ if var_type == 'choice'
399
+ # WARN the user that the measure had a "choice data type"
400
+ var_type = 'string'
419
401
  end
402
+
403
+ s.arguments << {
404
+ display_name: arg[:display_name],
405
+ display_name_short: arg[:display_name_short],
406
+ name: arg[:name],
407
+ value_type: var_type,
408
+ default_value: arg[:default_value],
409
+ value: arg[:value]
410
+ }
420
411
  end
421
412
 
422
- if hash[:variables]
423
- hash[:variables].each do |variable|
424
- # add the arguments first
425
- s.arguments << {
426
- display_name: variable[:argument][:display_name],
427
- display_name_short: variable[:argument][:display_name_short],
428
- name: variable[:argument][:name],
429
- value_type: variable[:argument][:value_type],
430
- default_value: variable[:argument][:default_value],
431
- value: variable[:argument][:default_value]
432
- }
433
-
434
- var_options = {}
435
- var_options[:variable_type] = variable[:variable_type]
436
- var_options[:variable_display_name_short] = variable[:display_name_short]
437
- var_options[:static_value] = variable[:static_value]
438
- distribution = variable[:uncertainty_description]
439
- distribution[:minimum] = variable[:minimum]
440
- distribution[:mean] = distribution[:attributes].find { |a| a[:name] == 'modes' }[:value]
441
- distribution[:maximum] = variable[:maximum]
442
- distribution[:standard_deviation] = distribution[:attributes].find { |a| a[:name] == 'stddev' }[:value]
443
- distribution[:step_size] = distribution[:attributes].find { |a| a[:name] == 'delta_x' }[:value]
444
- s.make_variable(variable[:argument][:name], variable[:display_name], distribution, var_options)
445
- end
413
+ hash[:variables]&.each do |variable|
414
+ # add the arguments first
415
+ s.arguments << {
416
+ display_name: variable[:argument][:display_name],
417
+ display_name_short: variable[:argument][:display_name_short],
418
+ name: variable[:argument][:name],
419
+ value_type: variable[:argument][:value_type],
420
+ default_value: variable[:argument][:default_value],
421
+ value: variable[:argument][:default_value]
422
+ }
423
+
424
+ var_options = {}
425
+ var_options[:variable_type] = variable[:variable_type]
426
+ var_options[:variable_display_name_short] = variable[:display_name_short]
427
+ var_options[:static_value] = variable[:static_value]
428
+ distribution = variable[:uncertainty_description]
429
+ distribution[:minimum] = variable[:minimum]
430
+ distribution[:mean] = distribution[:attributes].find { |a| a[:name] == 'modes' }[:value]
431
+ distribution[:maximum] = variable[:maximum]
432
+ distribution[:standard_deviation] = distribution[:attributes].find { |a| a[:name] == 'stddev' }[:value]
433
+ distribution[:step_size] = distribution[:attributes].find { |a| a[:name] == 'delta_x' }[:value]
434
+ s.make_variable(variable[:argument][:name], variable[:display_name], distribution, var_options)
446
435
  end
447
436
 
448
437
  s
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -33,36 +33,34 @@
33
33
  # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
  # *******************************************************************************
35
35
 
36
- require 'spec_helper'
36
+ require 'rexml/document'
37
37
 
38
- describe OpenStudio::Analysis::ServerApi do
39
- before :all do
40
- @host = 'http://localhost:8080'
41
- end
42
-
43
- context 'create a new object instance' do
44
- before(:all) do
45
- @api = OpenStudio::Analysis::ServerApi.new
46
- end
38
+ def parse_measure_xml(measure_xml_filename)
39
+ measure_hash = {}
40
+ xml_to_parse = File.open(measure_xml_filename)
41
+ xml_root = REXML::Document.new(xml_to_parse).root
47
42
 
48
- it 'should set the default host to localhost' do
49
- expect(@api.hostname).to eq(@host)
50
- end
43
+ # pull out some information
44
+ measure_hash[:classname] = xml_root.elements['//measure/class_name'].text
45
+ measure_hash[:name] = xml_root.elements['//measure/name'].text
46
+ measure_hash[:display_name] = xml_root.elements['//measure/display_name'].text
47
+ measure_hash[:display_name_titleized] = measure_hash[:name].titleize
48
+ measure_hash[:measure_type] = xml_root.elements['//measure/attributes/attribute[name="Measure Type"]/value'].text
49
+ measure_hash[:description] = xml_root.elements['//measure/description'].text
50
+ measure_hash[:modeler_description] = xml_root.elements['//measure/modeler_description'].text
51
+ measure_hash[:uid] = xml_root.elements['//measure/uid'].text
52
+ measure_hash[:version_id] = xml_root.elements['//measure/version_id'].text
53
+ measure_hash[:arguments] = []
51
54
 
52
- # it 'should load a new analysis' do
53
- # file = File.expand_path(File.join('spec/files/analysis/examples/medium_office_example.json'))
54
- # #file = file.gsub("/", "\\")
55
- # options = { formulation_file: file}
56
- # # puts options
57
- # @api.new_analysis('a-project-id', options)
58
- # end
55
+ REXML::XPath.each(xml_root, '//measure/arguments/argument') do |arg|
56
+ measure_hash[:arguments] << {
57
+ name: arg.elements['name'].text,
58
+ display_name: arg.elements['display_name'].text,
59
+ variable_type: arg.elements['type'].text.downcase,
60
+ default_value: arg.elements['default_value'].text,
61
+ units: arg.elements['units'] ? arg.elements['units'].text : ''
62
+ }
59
63
  end
60
64
 
61
- context 'test not localhost' do
62
- it 'should have a not localhost URL' do
63
- options = { hostname: 'http://abc.def.ghi' }
64
- api = OpenStudio::Analysis::ServerApi.new(options)
65
- expect(api.hostname).to eq(options[:hostname])
66
- end
67
- end
65
+ measure_hash
68
66
  end
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,6 +1,5 @@
1
1
  lib = File.expand_path('lib', __dir__)
2
- $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
3
-
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'openstudio/analysis/version'
5
4
 
6
5
  Gem::Specification.new do |s|
@@ -9,26 +8,30 @@ Gem::Specification.new do |s|
9
8
  s.platform = Gem::Platform::RUBY
10
9
  s.authors = ['Nicholas Long']
11
10
  s.email = ['Nicholas.Long@nrel.gov']
11
+
12
12
  s.homepage = 'http://openstudio.nrel.gov'
13
13
  s.summary = 'Create JSON, ZIP to communicate with OpenStudio Distributed Analysis in the Cloud'
14
14
  s.description = 'Basic classes for generating the files needed for OpenStudio-Server'
15
15
  s.license = 'BSD'
16
16
 
17
- s.required_ruby_version = '>= 2.2'
18
- s.required_rubygems_version = '>= 1.3.6'
19
-
20
- s.files = `git ls-files -z`.split("\x0")
21
- s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
17
+ s.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ s.bindir = 'exe'
21
+ s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
22
  s.require_paths = ['lib']
24
23
 
25
- s.add_dependency 'bcl', '~> 0.5.8'
24
+ s.required_ruby_version = '~> 2.5.0'
25
+
26
+ s.add_dependency 'bcl', '~> 0.6.1'
26
27
  s.add_dependency 'dencity', '~> 0.1.0'
27
- s.add_dependency 'faraday', '~> 0.14'
28
- s.add_dependency 'nokogiri', '~> 1.6.8' # keep at 1.6.8 until OpenStudio updates its version
29
- s.add_dependency 'roo', '~> 2.7.1'
30
- s.add_dependency 'rubyzip', '~> 1.2'
28
+ s.add_dependency 'faraday', '~> 1.0.1'
29
+ s.add_dependency 'roo', '~> 2.8.3'
30
+ s.add_dependency 'rubyzip', '~> 2.3.0'
31
31
  s.add_dependency 'semantic', '~> 1.4'
32
32
 
33
- s.add_development_dependency 'rake', '~> 12.3.1'
33
+ s.add_development_dependency 'rake', '~> 13.0'
34
+ s.add_development_dependency 'rspec', '~> 3.9'
35
+ s.add_development_dependency 'rubocop', '~> 0.54.0'
36
+ s.add_development_dependency 'rubocop-checkstyle_formatter', '~> 0.4.0'
34
37
  end
@@ -6,7 +6,7 @@ js_regex = /^\/\* @preserve.*Copyright.*license.{2}\*\//m
6
6
 
7
7
  ruby_header_text = <<EOT
8
8
  # *******************************************************************************
9
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
9
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
10
10
  # All rights reserved.
11
11
  # Redistribution and use in source and binary forms, with or without
12
12
  # modification, are permitted provided that the following conditions are met:
@@ -45,7 +45,7 @@ ruby_header_text.strip!
45
45
  erb_header_text = <<EOT
46
46
  <%
47
47
  # *******************************************************************************
48
- # OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC.
48
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
49
49
  # All rights reserved.
50
50
  # Redistribution and use in source and binary forms, with or without
51
51
  # modification, are permitted provided that the following conditions are met:
@@ -84,7 +84,7 @@ erb_header_text.strip!
84
84
 
85
85
  js_header_text = <<EOT
86
86
  /* @preserve
87
- * OpenStudio(R), Copyright (c) 2008-2019, Alliance for Sustainable Energy, LLC. All rights reserved.
87
+ * OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
88
88
  * Use of this source code is governed by a BSD-style license that can be found at openstudio.net/license.
89
89
  */
90
90
  EOT
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-analysis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Long
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-22 00:00:00.000000000 Z
11
+ date: 2020-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcl
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.8
19
+ version: 0.6.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.8
26
+ version: 0.6.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dencity
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,84 +44,112 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.14'
47
+ version: 1.0.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.14'
54
+ version: 1.0.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: nokogiri
56
+ name: roo
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.6.8
61
+ version: 2.8.3
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.6.8
68
+ version: 2.8.3
69
69
  - !ruby/object:Gem::Dependency
70
- name: roo
70
+ name: rubyzip
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.7.1
75
+ version: 2.3.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.7.1
82
+ version: 2.3.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubyzip
84
+ name: semantic
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.2'
89
+ version: '1.4'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.2'
96
+ version: '1.4'
97
97
  - !ruby/object:Gem::Dependency
98
- name: semantic
98
+ name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.4'
104
- type: :runtime
103
+ version: '13.0'
104
+ type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.4'
110
+ version: '13.0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake
112
+ name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 12.3.1
117
+ version: '3.9'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 12.3.1
124
+ version: '3.9'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.54.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.54.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-checkstyle_formatter
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.4.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.4.0
125
153
  description: Basic classes for generating the files needed for OpenStudio-Server
126
154
  email:
127
155
  - Nicholas.Long@nrel.gov
@@ -152,91 +180,9 @@ files:
152
180
  - lib/openstudio/analysis/workflow_step.rb
153
181
  - lib/openstudio/helpers/hash.rb
154
182
  - lib/openstudio/helpers/string.rb
183
+ - lib/openstudio/helpers/utils.rb
155
184
  - lib/openstudio/weather/epw.rb
156
185
  - openstudio-analysis.gemspec
157
- - spec/files/0_1_09_no_variables.xlsx
158
- - spec/files/0_1_09_outputvars.xlsx
159
- - spec/files/0_1_09_setup_version_2.xlsx
160
- - spec/files/0_1_09_small_list.xlsx
161
- - spec/files/0_1_09_small_list_incomplete.xlsx
162
- - spec/files/0_1_09_small_list_repeat_vars.xlsx
163
- - spec/files/0_1_09_small_list_validation_errors.xlsx
164
- - spec/files/0_1_10_proxy.xlsx
165
- - spec/files/0_1_10_proxy_user.xlsx
166
- - spec/files/0_1_10_template_input.xlsx
167
- - spec/files/0_1_11_discrete_variables.xlsx
168
- - spec/files/0_1_12_discrete_dynamic_columns.xlsx
169
- - spec/files/0_2_0_template.xlsx
170
- - spec/files/0_2_0_template_simpletest.xlsx
171
- - spec/files/0_3_0_dynamic_uuids.xlsx
172
- - spec/files/0_3_0_measure_existence.xlsx
173
- - spec/files/0_3_0_outputs.xlsx
174
- - spec/files/0_3_3_short_names.xlsx
175
- - spec/files/0_3_5_multiple_measure_paths.xlsx
176
- - spec/files/0_3_7_unique_measure_names.xlsx
177
- - spec/files/0_3_7_worker_init_final.xlsx
178
- - spec/files/0_4_0_lhs_discrete_continuous.xlsx
179
- - spec/files/0_4_0_multiple_seeds.xlsx
180
- - spec/files/0_4_0_pivot_test.xlsx
181
- - spec/files/analysis/examples/discrete_lhs_example.json
182
- - spec/files/analysis/examples/medium_office_example.json
183
- - spec/files/analysis/examples/medium_office_workflow.json
184
- - spec/files/measures/ActualMeasureNoJson/measure.rb
185
- - spec/files/measures/ActualMeasureNoJson/measure.xml
186
- - spec/files/measures/ExampleMeasure/measure.json
187
- - spec/files/measures/ExampleMeasure/measure.rb
188
- - spec/files/measures/ExampleMeasure/measure.xml
189
- - spec/files/measures/IncreaseInsulationRValueForRoofs/measure.json
190
- - spec/files/measures/IncreaseInsulationRValueForRoofs/measure.rb
191
- - spec/files/measures/IncreaseInsulationRValueForRoofs/measure.xml
192
- - spec/files/measures/NoMeasureRbFile/.gitkeep
193
- - spec/files/measures/ReduceLightingLoadsByPercentage/measure.json
194
- - spec/files/measures/ReduceLightingLoadsByPercentage/measure.rb
195
- - spec/files/measures/ReduceLightingLoadsByPercentage/measure.xml
196
- - spec/files/measures/SetThermostatSchedules/measure.json
197
- - spec/files/measures/SetThermostatSchedules/measure.rb
198
- - spec/files/measures/SetThermostatSchedules/measure.xml
199
- - spec/files/measures/example_measure_auto_directory_name/measure.json
200
- - spec/files/measures/example_measure_auto_directory_name/measure.rb
201
- - spec/files/measures/example_measure_auto_directory_name/measure.xml
202
- - spec/files/measures/reduce_lighting_loads_by_percentage/measure.json
203
- - spec/files/measures/reduce_lighting_loads_by_percentage/measure.rb
204
- - spec/files/measures/reduce_lighting_loads_by_percentage/measure.xml
205
- - spec/files/measures/reduce_space_infiltration_by_percentage/measure.rb
206
- - spec/files/measures/reduce_space_infiltration_by_percentage/measure.xml
207
- - spec/files/measures/rotate_building/measure.rb
208
- - spec/files/measures/rotate_building/measure.xml
209
- - spec/files/measures/set_window_to_wall_ratio_by_facade/measure.rb
210
- - spec/files/measures/set_window_to_wall_ratio_by_facade/measure.xml
211
- - spec/files/measures_second_path/measure_in_another_dir/measure.json
212
- - spec/files/measures_second_path/measure_in_another_dir/measure.rb
213
- - spec/files/measures_second_path/measure_in_another_dir/measure.xml
214
- - spec/files/partial_weather.epw
215
- - spec/files/partial_weather_2.epw
216
- - spec/files/small_seed.osm
217
- - spec/files/worker_init/first_file.rb
218
- - spec/files/worker_init/second_file.sh
219
- - spec/files/workflow/analysis.osa
220
- - spec/files/workflow/datapoint_0.osd
221
- - spec/files/workflow/datapoint_1.osd
222
- - spec/files/workflow/datapoint_2.osd
223
- - spec/files/workflow/datapoint_wrong_osa_id.osd
224
- - spec/integration/server_api_spec.rb
225
- - spec/openstudio/excel_spec.rb
226
- - spec/openstudio/formulation_spec.rb
227
- - spec/openstudio/hash_spec.rb
228
- - spec/openstudio/osw_spec.rb
229
- - spec/openstudio/server_api_spec.rb
230
- - spec/openstudio/string_spec.rb
231
- - spec/openstudio/support_files_spec.rb
232
- - spec/openstudio/weather_spec.rb
233
- - spec/openstudio/workflow_spec.rb
234
- - spec/openstudio/workflow_step_spec.rb
235
- - spec/schema/osa.json
236
- - spec/schema/osa.png
237
- - spec/schema/osd.json
238
- - spec/schema/osd.png
239
- - spec/spec_helper.rb
240
186
  - update_license.rb
241
187
  homepage: http://openstudio.nrel.gov
242
188
  licenses:
@@ -248,102 +194,19 @@ require_paths:
248
194
  - lib
249
195
  required_ruby_version: !ruby/object:Gem::Requirement
250
196
  requirements:
251
- - - ">="
197
+ - - "~>"
252
198
  - !ruby/object:Gem::Version
253
- version: '2.2'
199
+ version: 2.5.0
254
200
  required_rubygems_version: !ruby/object:Gem::Requirement
255
201
  requirements:
256
202
  - - ">="
257
203
  - !ruby/object:Gem::Version
258
- version: 1.3.6
204
+ version: '0'
259
205
  requirements: []
260
206
  rubyforge_project:
261
- rubygems_version: 2.7.6
207
+ rubygems_version: 2.7.6.2
262
208
  signing_key:
263
209
  specification_version: 4
264
210
  summary: Create JSON, ZIP to communicate with OpenStudio Distributed Analysis in the
265
211
  Cloud
266
- test_files:
267
- - spec/files/0_1_09_no_variables.xlsx
268
- - spec/files/0_1_09_outputvars.xlsx
269
- - spec/files/0_1_09_setup_version_2.xlsx
270
- - spec/files/0_1_09_small_list.xlsx
271
- - spec/files/0_1_09_small_list_incomplete.xlsx
272
- - spec/files/0_1_09_small_list_repeat_vars.xlsx
273
- - spec/files/0_1_09_small_list_validation_errors.xlsx
274
- - spec/files/0_1_10_proxy.xlsx
275
- - spec/files/0_1_10_proxy_user.xlsx
276
- - spec/files/0_1_10_template_input.xlsx
277
- - spec/files/0_1_11_discrete_variables.xlsx
278
- - spec/files/0_1_12_discrete_dynamic_columns.xlsx
279
- - spec/files/0_2_0_template.xlsx
280
- - spec/files/0_2_0_template_simpletest.xlsx
281
- - spec/files/0_3_0_dynamic_uuids.xlsx
282
- - spec/files/0_3_0_measure_existence.xlsx
283
- - spec/files/0_3_0_outputs.xlsx
284
- - spec/files/0_3_3_short_names.xlsx
285
- - spec/files/0_3_5_multiple_measure_paths.xlsx
286
- - spec/files/0_3_7_unique_measure_names.xlsx
287
- - spec/files/0_3_7_worker_init_final.xlsx
288
- - spec/files/0_4_0_lhs_discrete_continuous.xlsx
289
- - spec/files/0_4_0_multiple_seeds.xlsx
290
- - spec/files/0_4_0_pivot_test.xlsx
291
- - spec/files/analysis/examples/discrete_lhs_example.json
292
- - spec/files/analysis/examples/medium_office_example.json
293
- - spec/files/analysis/examples/medium_office_workflow.json
294
- - spec/files/measures/ActualMeasureNoJson/measure.rb
295
- - spec/files/measures/ActualMeasureNoJson/measure.xml
296
- - spec/files/measures/ExampleMeasure/measure.json
297
- - spec/files/measures/ExampleMeasure/measure.rb
298
- - spec/files/measures/ExampleMeasure/measure.xml
299
- - spec/files/measures/IncreaseInsulationRValueForRoofs/measure.json
300
- - spec/files/measures/IncreaseInsulationRValueForRoofs/measure.rb
301
- - spec/files/measures/IncreaseInsulationRValueForRoofs/measure.xml
302
- - spec/files/measures/NoMeasureRbFile/.gitkeep
303
- - spec/files/measures/ReduceLightingLoadsByPercentage/measure.json
304
- - spec/files/measures/ReduceLightingLoadsByPercentage/measure.rb
305
- - spec/files/measures/ReduceLightingLoadsByPercentage/measure.xml
306
- - spec/files/measures/SetThermostatSchedules/measure.json
307
- - spec/files/measures/SetThermostatSchedules/measure.rb
308
- - spec/files/measures/SetThermostatSchedules/measure.xml
309
- - spec/files/measures/example_measure_auto_directory_name/measure.json
310
- - spec/files/measures/example_measure_auto_directory_name/measure.rb
311
- - spec/files/measures/example_measure_auto_directory_name/measure.xml
312
- - spec/files/measures/reduce_lighting_loads_by_percentage/measure.json
313
- - spec/files/measures/reduce_lighting_loads_by_percentage/measure.rb
314
- - spec/files/measures/reduce_lighting_loads_by_percentage/measure.xml
315
- - spec/files/measures/reduce_space_infiltration_by_percentage/measure.rb
316
- - spec/files/measures/reduce_space_infiltration_by_percentage/measure.xml
317
- - spec/files/measures/rotate_building/measure.rb
318
- - spec/files/measures/rotate_building/measure.xml
319
- - spec/files/measures/set_window_to_wall_ratio_by_facade/measure.rb
320
- - spec/files/measures/set_window_to_wall_ratio_by_facade/measure.xml
321
- - spec/files/measures_second_path/measure_in_another_dir/measure.json
322
- - spec/files/measures_second_path/measure_in_another_dir/measure.rb
323
- - spec/files/measures_second_path/measure_in_another_dir/measure.xml
324
- - spec/files/partial_weather.epw
325
- - spec/files/partial_weather_2.epw
326
- - spec/files/small_seed.osm
327
- - spec/files/worker_init/first_file.rb
328
- - spec/files/worker_init/second_file.sh
329
- - spec/files/workflow/analysis.osa
330
- - spec/files/workflow/datapoint_0.osd
331
- - spec/files/workflow/datapoint_1.osd
332
- - spec/files/workflow/datapoint_2.osd
333
- - spec/files/workflow/datapoint_wrong_osa_id.osd
334
- - spec/integration/server_api_spec.rb
335
- - spec/openstudio/excel_spec.rb
336
- - spec/openstudio/formulation_spec.rb
337
- - spec/openstudio/hash_spec.rb
338
- - spec/openstudio/osw_spec.rb
339
- - spec/openstudio/server_api_spec.rb
340
- - spec/openstudio/string_spec.rb
341
- - spec/openstudio/support_files_spec.rb
342
- - spec/openstudio/weather_spec.rb
343
- - spec/openstudio/workflow_spec.rb
344
- - spec/openstudio/workflow_step_spec.rb
345
- - spec/schema/osa.json
346
- - spec/schema/osa.png
347
- - spec/schema/osd.json
348
- - spec/schema/osd.png
349
- - spec/spec_helper.rb
212
+ test_files: []