module BMT
Constants
- DATA_DIR
Public Instance Methods
current_version()
click to toggle source
# File lib/bmt.rb, line 36 def current_version versions.first end
find(key, version: current_version)
click to toggle source
returns a Methodology
object given a key and a version
# File lib/bmt.rb, line 21 def find(key, version: current_version) raise VersionNotFoundError unless versions.include?(version) raise MethodologyNotFoundError unless methodology_keys(version: version).include?(key) @methodologies[version].nil? && @methodologies[version] = {} @methodologies[version][key] ||= Methodology.new( key: key, version: version, attributes: methodology_json(key, version: version) ) @methodologies[version][key] end
json_dir_names()
click to toggle source
Get names of directories matching lib/data/<major>-<minor>/
# File lib/bmt.rb, line 66 def json_dir_names DATA_DIR.entries .map(&:basename) .map(&:to_s) .select { |dirname| dirname =~ /^[0-9]+\.[0-9]/ }.sort end
methodology_json(key, version: current_version)
click to toggle source
# File lib/bmt.rb, line 57 def methodology_json(key, version: current_version) JSON.parse(methodology_pathname(key, version: version).read) end
methodology_keys(version: current_version)
click to toggle source
returns available methodology keys for a given version
# File lib/bmt.rb, line 41 def methodology_keys(version: current_version) @methodology_keys[version] ||= DATA_DIR.join(version, 'methodologies').entries .map(&:basename) .map(&:to_s) .select { |dirname| dirname =~ /json/ } .map { |filepath| File.basename(filepath, File.extname(filepath)) } end
methodology_pathname(key, version: current_version)
click to toggle source
# File lib/bmt.rb, line 61 def methodology_pathname(key, version: current_version) DATA_DIR.join(version, 'methodologies', "#{key}.json") end
versions()
click to toggle source
Infer the available versions of the BMT
from the names of the files in the repo. The returned list is in order with the current version first.
# File lib/bmt.rb, line 53 def versions @versions ||= json_dir_names.sort.reverse! end