Class: Paneron::Register::Raw::DataSet
- Inherits:
-
Object
- Object
- Paneron::Register::Raw::DataSet
- Defined in:
- lib/paneron/register/raw/data_set.rb
Constant Summary collapse
- DATA_SET_METADATA_FILENAME =
"/register.yaml"
Instance Attribute Summary collapse
-
#data_set_name ⇒ Object
readonly
Returns the value of attribute data_set_name.
-
#data_set_path ⇒ Object
readonly
Returns the value of attribute data_set_path.
-
#data_set_yaml_path ⇒ Object
readonly
Returns the value of attribute data_set_yaml_path.
-
#extension ⇒ Object
readonly
Returns the value of attribute extension.
-
#register_path ⇒ Object
readonly
Returns the value of attribute register_path.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(register_path, data_set_name, extension = "yaml") ⇒ DataSet
constructor
A new instance of DataSet.
- #item_class_lutamls ⇒ Object
- #item_class_names ⇒ Object
- #item_classes(item_class_name = nil) ⇒ Object
- #item_uuids ⇒ Object
- #metadata ⇒ Object
- #to_lutaml ⇒ Object
Constructor Details
#initialize(register_path, data_set_name, extension = "yaml") ⇒ DataSet
Returns a new instance of DataSet.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/paneron/register/raw/data_set.rb', line 12 def initialize(register_path, data_set_name, extension = "yaml") data_set_path = File.join(register_path, data_set_name) self.class.validate_data_set_path(data_set_path) @register_path = register_path @data_set_name = data_set_name @extension = extension @data_set_path = data_set_path @data_set_yaml_path = File.join(data_set_path, DATA_SET_METADATA_FILENAME) @item_classes = {} @item_class_names = nil @item_uuids = nil = nil end |
Instance Attribute Details
#data_set_name ⇒ Object (readonly)
Returns the value of attribute data_set_name.
9 10 11 |
# File 'lib/paneron/register/raw/data_set.rb', line 9 def data_set_name @data_set_name end |
#data_set_path ⇒ Object (readonly)
Returns the value of attribute data_set_path.
9 10 11 |
# File 'lib/paneron/register/raw/data_set.rb', line 9 def data_set_path @data_set_path end |
#data_set_yaml_path ⇒ Object (readonly)
Returns the value of attribute data_set_yaml_path.
9 10 11 |
# File 'lib/paneron/register/raw/data_set.rb', line 9 def data_set_yaml_path @data_set_yaml_path end |
#extension ⇒ Object (readonly)
Returns the value of attribute extension.
9 10 11 |
# File 'lib/paneron/register/raw/data_set.rb', line 9 def extension @extension end |
#register_path ⇒ Object (readonly)
Returns the value of attribute register_path.
9 10 11 |
# File 'lib/paneron/register/raw/data_set.rb', line 9 def register_path @register_path end |
Class Method Details
.validate_data_set_path(data_set_path) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/paneron/register/raw/data_set.rb', line 30 def self.validate_data_set_path(data_set_path) unless File.exist?(data_set_path) raise Paneron::Register::Error, "Data Set path does not exist" end unless File.directory?(data_set_path) raise Paneron::Register::Error, "Data Set path is not a directory" end unless File.exist?(File.join( data_set_path, DATA_SET_METADATA_FILENAME )) raise Paneron::Register::Error, "Data Set metadata file does not exist" end end |
Instance Method Details
#item_class_lutamls ⇒ Object
54 55 56 57 58 |
# File 'lib/paneron/register/raw/data_set.rb', line 54 def item_class_lutamls item_classes.map do |_item_class_name, item_class| item_class.to_lutaml end end |
#item_class_names ⇒ Object
74 75 76 77 78 |
# File 'lib/paneron/register/raw/data_set.rb', line 74 def item_class_names @item_class_names ||= Dir.glob(File.join(data_set_path, "*/*.#{extension}")) .map { |file| File.basename(File.dirname(file)) }.uniq end |
#item_classes(item_class_name = nil) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/paneron/register/raw/data_set.rb', line 60 def item_classes(item_class_name = nil) if item_class_name.nil? item_class_names.reduce({}) do |acc, item_class_name| acc[item_class_name] = item_classes(item_class_name) acc end else @item_classes[item_class_name] ||= Paneron::Register::Raw::ItemClass.new( data_set_path, item_class_name ) end end |
#item_uuids ⇒ Object
80 81 82 |
# File 'lib/paneron/register/raw/data_set.rb', line 80 def item_uuids item_classes.values.map(&:item_uuids).flatten end |
#metadata ⇒ Object
84 85 86 87 88 89 |
# File 'lib/paneron/register/raw/data_set.rb', line 84 def ||= YAML.safe_load_file( data_set_yaml_path, permitted_classes: [Time], ) end |
#to_lutaml ⇒ Object
47 48 49 50 51 52 |
# File 'lib/paneron/register/raw/data_set.rb', line 47 def to_lutaml Paneron::Register::DataSet.new( name: data_set_name, item_classes: item_class_lutamls, ) end |