openstudio-extension 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cc5634df3c8c1a9c8a711707cd6b6a9d07b4a0f0f01aed1726576e244a0c5b2
4
- data.tar.gz: 8e433cbc4b7cc8b6737544771bb5273d8a7a267b8153ea936a2af3dccb61b486
3
+ metadata.gz: 26988c39ed89e37921a6a42330ad8e499571fca8c7fe3c11b626ad7e01fef336
4
+ data.tar.gz: 94e01bc35378f6a13f6415084c013b5a8667892f1b0924095f5a12e1cbed2d8f
5
5
  SHA512:
6
- metadata.gz: 455200a3b2e03ae2b5ef3d15f67690297c04f7886ce31a5f358f02a907a394a5cc0f0ba57b7b44efa96633443f4d23316e391716548cbcaf70af11881389fe44
7
- data.tar.gz: 9f478fb250845c5e99b9d1d12ba4261b5b7c82fb2f69bffcd594c5ec1f8a5463d76c4de51202cac29b2f875d07bfffd35cc6fa53ae4e8d4baa3732a0d0c57e22
6
+ metadata.gz: 2d309ada8c6984ef040af1b2b0ace8562bfdddcf12d0f790564d977bdbbd19c2a3191e439de9aba640c053145061b5c99daad6ed028404bd05d31c07bbad14b5
7
+ data.tar.gz: 77458bd7a6789412d6881a376418b08c694522b1b4e767df0e5a539d0e5ad95aa134b27a101bf29edd0a17b841f46eaf2e4d44c1ec7d109a90c0a33cbb2d50bd
data/.gitignore CHANGED
@@ -13,6 +13,8 @@
13
13
  /test/
14
14
  /lib/measures/test_results
15
15
  /lib/measures/.rubocop*
16
+ /lib/measures/staged
17
+ /lib/measures/staged/*
16
18
 
17
19
  # rspec failure tracking
18
20
  .rspec_status
@@ -6,5 +6,5 @@ AllCops:
6
6
  - lib/openstudio/extension/core/**/*
7
7
 
8
8
  inherit_from:
9
- - http://s3.amazonaws.com/openstudio-resources/styles/rubocop.yml
9
+ - http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v3.yml
10
10
 
@@ -1,5 +1,40 @@
1
1
  # OpenStudio Extension Gem
2
2
 
3
+ ## Version 0.3.0
4
+
5
+ * remove the os_lib_reporting.rb helpers. This file is only used for OS reporting measure and should not be shared with other users.
6
+ * Upgrade dependency to openstudio-workflow gem to `~> 2.1.0`
7
+ * This version works only with EnergyPlus 9.4 since it depends on OpenStudio workflow `~> 2.1.0`
8
+
9
+ ## Version 0.2.5
10
+
11
+ * Support runner options for bundle_install_path and gemfile_path
12
+ * Laboratory and Data Center Support
13
+
14
+ - Fixed [#71]( https://github.com/NREL/openstudio-extension-gem/pull/71 ), another fix for bcl rake tasks
15
+ - Fixed [#72]( https://github.com/NREL/openstudio-extension-gem/pull/72 ), Add laboratory and data centers to os_lib_model_generation
16
+ - Fixed [#74]( https://github.com/NREL/openstudio-extension-gem/pull/74 ), adding bundle path and gemfile path options
17
+
18
+ ## Version 0.2.4
19
+
20
+ * Fixed upload of measures to BCL using rake tasks.
21
+ * Support economizer modeling when create_typical measure is split into two parts
22
+
23
+ Closed Issues: 1
24
+ - Fixed [#64]( https://github.com/NREL/openstudio-extension-gem/issues/64 ), README updates
25
+
26
+ ## Version 0.2.3
27
+
28
+ * Use new version of rubocop style from S3
29
+ * Remove frozen string literals in comments
30
+
31
+ ## Version 0.2.2
32
+
33
+ * Exclude measure tests from being released with the gem (reduces the size of the installed gem significantly)
34
+ * Add BCL commands to upload measures
35
+ * Update GitHub changelog gem to use Octokit compared to github_api (which was last released 3 years ago)
36
+ * Promote GitHub changelog creation to a rake task to be inherited by all downstream extension gems
37
+
3
38
  ## Version 0.2.1
4
39
 
5
40
  * Changes from 0.1.5 (runner.conf bug)
@@ -40,4 +75,4 @@
40
75
 
41
76
  ## Version 0.1.1
42
77
 
43
- * Initial release
78
+ * Initial release
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  source 'http://rubygems.org'
4
2
 
5
3
  # Specify your gem's dependencies in openstudio-extension.gemspec
data/README.md CHANGED
@@ -146,14 +146,17 @@ Common Rake Tasks that are available to derivative extension gems include:
146
146
 
147
147
  | Rake Task | Description |
148
148
  | --------- | ----------- |
149
+ | openstudio:bcl:test_login | Test BCL login |
150
+ | openstudio:bcl:search_measures | Search BCL |
151
+ | openstudio:bcl:stage[reset] | Copy the measures/components to a staging location |
152
+ | openstudio:bcl:push | Upload measures from the staging location |
153
+ | openstudio:change_log[start_date,end_date,apikey] | Print the change log from GitHub. Specify dates in yyyy-mm-dd format |
149
154
  | openstudio:list_measures | List all measures in the calling gem |
150
155
  | openstudio:measures:add_license | Add License File to measures in the calling gem |
151
156
  | openstudio:measures:add_readme | Add README.md.erb file if it and the README markdown file do not already exist for a measure |
152
157
  | openstudio:measures:copy_resources | Copy the resources files to individual measures in the calling gem |
153
158
  | openstudio:measures:update_copyright | Update copyright on measure files in the calling gem |
154
159
  | openstudio`:runner:`init | Create a runner.conf file running simulations |
155
- | openstudio:stage_bcl | Copy the measures to a location that can be uploaded to BCL |
156
- | openstudio:push_bcl | Upload measures from the specified location to the BCL |
157
160
  | openstudio:test_with_docker | Use openstudio docker image to run tests |
158
161
  | openstudio:test_with_openstudio | Use openstudio system ruby to run tests |
159
162
  | openstudio:update_measures | Run the CLI task to check for measure updates and update the measure xml files |
@@ -176,8 +179,12 @@ The following table contains all current extension gems.
176
179
  | OpenStudio Common Measures Gem | openstudio-common-measures | https://github.com/NREL/openstudio-common-measures-gem |
177
180
  | OpenStudio Model Articulation Gem | openstudio-model-articulation | https://github.com/NREL/openstudio-model-articulation-gem |
178
181
  | OpenStudio AEDG Gem | openstudio-aedg | https://github.com/NREL/openstudio-aedg-gem |
182
+ | OpenStudio Calibration Gem | openstudio-calibration | https://github.com/NREL/openstudio-calibration-gem |
183
+ | OpenStudio EE Gem | openstudio-ee | https://github.com/NREL/openstudio-ee-gem |
179
184
  | OpenStudio District Systems Gem | openstudio-district-systems | https://github.com/NREL/openstudio-district-systems-gem |
180
- | UrbanOpt GeoJSON Gem | urbanopt-geojson | https://github.com/urbanopt/urbanopt-geojson-gem |
185
+ | URBANopt Core Gem | urbanopt-core | https://github.com/urbanopt/urbanopt-core-gem |
186
+ | URBANopt GeoJSON Gem | urbanopt-geojson | https://github.com/urbanopt/urbanopt-geojson-gem |
187
+ | URBANopt Scenario Gem | urbanopt-scenario | https://github.com/urbanopt/urbanopt-scenario-gem |
181
188
  | BuildingSync Gem | buildingsync | https://github.com/BuildingSync/BuildingSync-gem |
182
189
 
183
190
  ### Initializing a new Extension Gem
@@ -236,8 +243,6 @@ Or install it yourself as:
236
243
 
237
244
  # TODO
238
245
 
239
- - [ ] Rake task ```stage_bcl``` _DLM: BCL gem should be a development dependency only until we can reduce its dependencies and remove native dependencies? should probably put it into a special group so we can bundle without it in openstudio-gems._
240
- - [ ] Rake task ```push_bcl``` _DLM: how do we want to test this?
241
246
  - [ ] Capture useful output from Travis (measure dashboard results, log files, zip of build products, etc) and put it somewhere (s3? naming convention?)
242
247
  - [ ] ```Extension::files_dir``` _DLM: I think this can have a default implementation, right?_
243
248
  - [ ] ```Extension::minimum_openstudio_version``` _DLM: should we rename? should people overwrite this in their class?_
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  ########################################################################################################################
4
2
  # openstudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
5
3
  #
@@ -36,7 +34,7 @@ RSpec::Core::RakeTask.new(:spec)
36
34
  require 'openstudio/extension/rake_task'
37
35
  require 'openstudio/extension'
38
36
  rake_task = OpenStudio::Extension::RakeTask.new
39
- rake_task.set_extension_class(OpenStudio::Extension::Extension)
37
+ rake_task.set_extension_class(OpenStudio::Extension::Extension, 'nrel/openstudio-extension-gem')
40
38
 
41
39
  require 'rubocop/rake_task'
42
40
  RuboCop::RakeTask.new
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
2
 
4
3
  require 'bundler/setup'
5
4
  require 'openstudio/extension'
@@ -1,148 +1,157 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'github_api'
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ #
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
+ #
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ #
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
35
+
36
+ require 'octokit'
5
37
  require 'date'
6
38
  require 'optparse'
7
39
  require 'optparse/date'
8
40
 
9
- # Instructions:
10
- # Get a token from github's settings (https://github.com/settings/tokens)
11
- #
12
- # Example:
13
- # ruby change_log.rb -t abcdefghijklmnopqrstuvwxyz -s 2017-09-06
14
- #
15
-
16
- options = {}
17
- OptionParser.new do |opts|
18
- opts.banner = "Usage: change_log.rb [options]\n" \
19
- 'Prints New, Open, Closed Issues, and number of accepted PRs'
20
- opts.separator ''
21
-
22
- # defaults, go back 90 days
23
- options[:start_date] = Date.today - 90
24
- options[:end_date] = Date.today
25
-
26
- opts.on('-s', '--start-date [DATE]', Date, 'Start of data (e.g. 2017-09-06)') do |v|
27
- options[:start_date] = v
28
- end
29
- opts.on('-e', '--end-date [DATE]', Date, 'End of data (e.g. 2017-09-13)') do |v|
30
- options[:end_date] = v
31
- end
32
- opts.on('-t', '--token [String]', String, 'Github API Token') do |v|
33
- options[:token] = v
41
+ class ChangeLog
42
+ def initialize(user_and_repo, start_date = Date.today - 90, end_date = Date.today, apikey = nil)
43
+ @user_and_repo = user_and_repo
44
+ @apikey = apikey
45
+ @start_date = start_date
46
+ @end_date = end_date
47
+
48
+ # Convert dates to time objects
49
+ @start_date = Time.parse(@start_date.to_s) if start_date.is_a? String
50
+ @end_date = Time.parse(@end_date.to_s) if end_date.is_a? String
51
+ # GitHub API uses Time and not the Date class, so ensure that we have Time
52
+ @start_date = Time.parse(@start_date.to_s)
53
+ @end_date = Time.parse(@end_date.to_s)
54
+
55
+ @total_open_issues = []
56
+ @total_open_pull_requests = []
57
+ @new_issues = []
58
+ @closed_issues = []
59
+ @accepted_pull_requests = []
60
+
61
+ begin
62
+ @github = Octokit::Client.new
63
+ if apikey
64
+ @github = Octokit::Client.new(access_token: apikey)
65
+ end
66
+ @github.auto_paginate = true
67
+ rescue StandardError => e
68
+ puts e.message
69
+ # write out the help message
70
+ ChangeLog.help
71
+ exit(1)
72
+ end
34
73
  end
35
- end.parse!
36
-
37
- # Convert dates to time objects
38
- options[:start_date] = Time.parse(options[:start_date].to_s)
39
- options[:end_date] = Time.parse(options[:end_date].to_s)
40
- puts options
41
74
 
42
- ### Repository options
43
- repo_owner = 'NREL'
44
- repo = 'openstudio-extension-gem'
45
-
46
- github = Github.new
47
- if options[:token]
48
- puts 'Using github token'
49
- github = Github.new oauth_token: options[:token]
50
- end
51
-
52
- total_open_issues = []
53
- total_open_pull_requests = []
54
- new_issues = []
55
- closed_issues = []
56
- accepted_pull_requests = []
57
-
58
- def get_num(issue)
59
- issue.html_url.split('/')[-1].to_i
60
- end
61
-
62
- def get_issue_num(issue)
63
- "\##{get_num(issue)}"
64
- end
65
-
66
- def get_html_url(issue)
67
- issue.html_url
68
- end
69
-
70
- def get_title(issue)
71
- issue.title
72
- end
73
-
74
- def print_issue(issue)
75
- is_feature = false
76
- issue.labels.each { |label| is_feature = true if label.name == 'Feature Request' }
77
-
78
- if is_feature
79
- "- Improved [#{get_issue_num(issue)}]( #{get_html_url(issue)} ), #{get_title(issue)}"
80
- else
81
- "- Fixed [#{get_issue_num(issue)}]( #{get_html_url(issue)} ), #{get_title(issue)}"
75
+ # Class method to show how to use the API through Rake.
76
+ def self.help
77
+ puts 'Usage: bundle exec rake openstudio:change_log[<start_date>,<end_date>,<apikey>]'
78
+ puts ' <start_date> = [Optional] Start of data (e.g., 2020-09-06), defaults to 90 days before today'
79
+ puts ' <end_date> = [Optional] End of data (e.g., 2020-10-06), default to today'
80
+ puts ' <apikey> = [Optional] GitHub API Key (used for private repos)'
81
+ puts
82
+ puts ' Ensure that the GitHub user/repo is set in your Rakefile, for example, '
83
+ puts " rake_task.set_extension_class(OpenStudio::Extension::Extension, 'nrel/openstudio-extension-gem')"
84
+ puts
85
+ puts ' Example usages:'
86
+ puts ' bundle exec rake openstudio:change_log[2020-01-01]'
87
+ puts ' bundle exec rake openstudio:change_log[2020-01-01,2020-06-30]'
88
+ puts ' bundle exec rake openstudio:change_log[2020-01-01,2020-01-10,<private_api_key>]'
89
+ puts
90
+ puts ' Notes:'
91
+ puts ' For creating token, see https://github.com/settings/tokens.'
92
+ puts ' Note that if passing apikey, then you must pass start_date and end_date as well. There must be no spaces'
93
+ puts ' between the arguments (see examples above).'
82
94
  end
83
- end
84
95
 
85
- # Process Open Issues
86
- results = -1
87
- page = 1
88
- while results != 0
89
- resp = github.issues.list user: repo_owner, repo: repo, sort: 'created', direction: 'asc',
90
- state: 'open', per_page: 100, page: page
91
- results = resp.length
92
- resp.env[:body].each do |issue, _index|
93
- created = Time.parse(issue.created_at)
94
- if !issue.key?(:pull_request)
95
- total_open_issues << issue
96
- if created >= options[:start_date] && created <= options[:end_date]
97
- new_issues << issue
96
+ # Process Open Issues
97
+ def process
98
+ @github.list_issues(@user_and_repo, state: 'all').each do |issue|
99
+ if issue.state == 'open'
100
+ if issue.pull_request
101
+ if issue.created_at >= @start_date && issue.created_at <= @end_date
102
+ @total_open_pull_requests << issue
103
+ end
104
+ else
105
+ @total_open_issues << issue
106
+ if issue.created_at >= @start_date && issue.created_at <= @end_date
107
+ @new_issues << issue
108
+ end
109
+ end
110
+ else
111
+ # the issue is closed
112
+ if issue.closed_at >= @start_date && issue.closed_at <= @end_date
113
+ if issue.pull_request
114
+ @accepted_pull_requests << issue
115
+ else
116
+ @closed_issues << issue
117
+ end
118
+ end
98
119
  end
99
- else
100
- total_open_pull_requests << issue
101
120
  end
121
+
122
+ @closed_issues.sort! { |x, y| x.number <=> y.number }
123
+ @new_issues.sort! { |x, y| x.number <=> y.number }
124
+ @accepted_pull_requests.sort! { |x, y| x.number <=> y.number }
125
+ @total_open_pull_requests.sort! { |x, y| x.number <=> y.number }
126
+ rescue StandardError => e
127
+ puts e.message
128
+ ChangeLog.help
129
+ exit(1)
102
130
  end
103
131
 
104
- page += 1
105
- end
132
+ def print_issue(issue)
133
+ is_feature = false
134
+ issue.labels.each { |label| is_feature = true if label.name == 'Feature Request' }
106
135
 
107
- # Process Closed Issues
108
- results = -1
109
- page = 1
110
- while results != 0
111
- resp = github.issues.list user: repo_owner, repo: repo, sort: 'created', direction: 'asc',
112
- state: 'closed', per_page: 100, page: page
113
- results = resp.length
114
- resp.env[:body].each do |issue, _index|
115
- created = Time.parse(issue.created_at)
116
- closed = Time.parse(issue.closed_at)
117
- if !issue.key?(:pull_request)
118
- if created >= options[:start_date] && created <= options[:end_date]
119
- new_issues << issue
120
- end
121
- if closed >= options[:start_date] && closed <= options[:end_date]
122
- closed_issues << issue
123
- end
124
- elsif closed >= options[:start_date] && closed <= options[:end_date]
125
- accepted_pull_requests << issue
136
+ if is_feature
137
+ "- Improved [##{issue.number}]( #{issue.html_url} ), #{issue.title}"
138
+ else
139
+ "- Fixed [\##{issue.number}]( #{issue.html_url} ), #{issue.title}"
126
140
  end
127
141
  end
128
142
 
129
- page += 1
130
- end
131
-
132
- closed_issues.sort! { |x, y| get_num(x) <=> get_num(y) }
133
- new_issues.sort! { |x, y| get_num(x) <=> get_num(y) }
134
- accepted_pull_requests.sort! { |x, y| get_num(x) <=> get_num(y) }
135
- total_open_pull_requests.sort! { |x, y| get_num(x) <=> get_num(y) }
136
-
137
- puts "Total Open Issues: #{total_open_issues.length}"
138
- puts "Total Open Pull Requests: #{total_open_pull_requests.length}"
139
- puts "\nDate Range: #{options[:start_date].strftime('%m/%d/%y')} - #{options[:end_date].strftime('%m/%d/%y')}:"
140
- puts "\nNew Issues: #{new_issues.length} (" + new_issues.map { |issue| get_issue_num(issue) }.join(', ') + ')'
143
+ def print_issues
144
+ puts "Total Open Issues: #{@total_open_issues.length}"
145
+ puts "Total Open Pull Requests: #{@total_open_pull_requests.length}"
146
+ puts "\nDate Range: #{@start_date.strftime('%m/%d/%y')} - #{@end_date.strftime('%m/%d/%y')}:"
147
+ puts "\nNew Issues: #{@new_issues.length} (" + @new_issues.map(&:number).join(', ') + ')'
141
148
 
142
- puts "\nClosed Issues: #{closed_issues.length}"
143
- closed_issues.each { |issue| puts print_issue(issue) }
149
+ puts "\nClosed Issues: #{@closed_issues.length}"
150
+ @closed_issues.each { |issue| puts print_issue(issue) }
144
151
 
145
- puts "\nAccepted Pull Requests: #{accepted_pull_requests.length}"
146
- accepted_pull_requests.each { |issue| puts print_issue(issue) }
152
+ puts "\nAccepted Pull Requests: #{@accepted_pull_requests.length}"
153
+ @accepted_pull_requests.each { |issue| puts print_issue(issue) }
147
154
 
148
- puts "\nAll Open Issues: #{total_open_issues.length} (" + total_open_issues.map { |issue| get_issue_num(issue) }.join(', ') + ')'
155
+ puts "\nAll Open Issues: #{@total_open_issues.length} (" + @total_open_issues.map { |issue| "\##{issue.number}" }.join(', ') + ')'
156
+ end
157
+ end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  # *******************************************************************************
4
2
  # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
5
3
  # All rights reserved.
@@ -1,17 +1,18 @@
1
+ <?xml version="1.0"?>
1
2
  <measure>
2
3
  <schema_version>3.0</schema_version>
3
4
  <name>openstudio_extension_test_measure</name>
4
5
  <uid>36b99a29-41e1-4d85-9272-85d43b966e5a</uid>
5
- <version_id>e9fedf04-7619-4c93-a865-0e54adfe3507</version_id>
6
- <version_modified>20190430T155209Z</version_modified>
6
+ <version_id>edf7f103-9f51-4944-a5af-1d8fa2b0c9b7</version_id>
7
+ <version_modified>20200427T230714Z</version_modified>
7
8
  <xml_checksum>49BEF039</xml_checksum>
8
9
  <class_name>OpenStudioExtensionTestMeasure</class_name>
9
10
  <display_name>OpenStudio Extension Test Measure</display_name>
10
- <description>Rotate your building relative to its current orientation. This will not rotate site shading objects.</description>
11
- <modeler_description>Get the North Axis field for the OS:Building object and adjusted it based on the user specified value. If the starting value is 20 degrees and the user value is 5 degrees, then the resulting value is 25 degrees.</modeler_description>
12
- <arguments/>
13
- <outputs/>
14
- <provenances/>
11
+ <description>A measure that tests OpenStudio Extension gem functionality</description>
12
+ <modeler_description>This is a test measure that tests OpenStudio Extension gem functionality.</modeler_description>
13
+ <arguments />
14
+ <outputs />
15
+ <provenances />
15
16
  <tags>
16
17
  <tag>Envelope.Form</tag>
17
18
  </tags>
@@ -38,12 +39,6 @@
38
39
  </attribute>
39
40
  </attributes>
40
41
  <files>
41
- <file>
42
- <filename>LICENSE.md</filename>
43
- <filetype>md</filetype>
44
- <usage_type>license</usage_type>
45
- <checksum>9640B6CB</checksum>
46
- </file>
47
42
  <file>
48
43
  <filename>README.md.erb</filename>
49
44
  <filetype>erb</filetype>
@@ -51,16 +46,16 @@
51
46
  <checksum>703C9964</checksum>
52
47
  </file>
53
48
  <file>
54
- <filename>README.md</filename>
49
+ <filename>LICENSE.md</filename>
55
50
  <filetype>md</filetype>
56
- <usage_type>readme</usage_type>
57
- <checksum>7258830F</checksum>
51
+ <usage_type>license</usage_type>
52
+ <checksum>E0468DD6</checksum>
58
53
  </file>
59
54
  <file>
60
55
  <filename>OpenStudioExtensionTestMeasure_Test.rb</filename>
61
56
  <filetype>rb</filetype>
62
57
  <usage_type>test</usage_type>
63
- <checksum>8452EA9A</checksum>
58
+ <checksum>66A00EA8</checksum>
64
59
  </file>
65
60
  <file>
66
61
  <version>
@@ -71,13 +66,19 @@
71
66
  <filename>measure.rb</filename>
72
67
  <filetype>rb</filetype>
73
68
  <usage_type>script</usage_type>
74
- <checksum>E5793A49</checksum>
69
+ <checksum>51BB85EF</checksum>
75
70
  </file>
76
71
  <file>
77
72
  <filename>os_lib_helper_methods.rb</filename>
78
73
  <filetype>rb</filetype>
79
74
  <usage_type>resource</usage_type>
80
- <checksum>22515A49</checksum>
75
+ <checksum>07B01D67</checksum>
76
+ </file>
77
+ <file>
78
+ <filename>README.md</filename>
79
+ <filetype>md</filetype>
80
+ <usage_type>readme</usage_type>
81
+ <checksum>7258830F</checksum>
81
82
  </file>
82
83
  </files>
83
84
  </measure>