Class: UniProp::PropertyMetaData

Inherits:
Object
  • Object
show all
Defined in:
lib/uniprop/inspects.rb,
lib/uniprop/metadata_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prop_data, metadata_path) ⇒ PropertyMetaData

Returns a new instance of PropertyMetaData.

Parameters:

  • prop_data (PropData)
  • metadata_path (Pathname)


514
515
516
517
518
519
520
521
522
523
# File 'lib/uniprop/metadata_processor.rb', line 514

def initialize(prop_data, )
  @prop_data = prop_data
  @metadata_path = 

  if @metadata_path.exist?
    @raw_metadata = JSON.parse(File.read(@metadata_path))
  else
    raise FileNotFoundError, "#{@metadata_path} is not found."
  end
end

Instance Attribute Details

#metadata_pathObject (readonly)

Returns the value of attribute metadata_path.



510
511
512
# File 'lib/uniprop/metadata_processor.rb', line 510

def 
  @metadata_path
end

#prop_dataObject (readonly)

Returns the value of attribute prop_data.



510
511
512
# File 'lib/uniprop/metadata_processor.rb', line 510

def prop_data
  @prop_data
end

#raw_metadataObject (readonly)

Returns the value of attribute raw_metadata.



510
511
512
# File 'lib/uniprop/metadata_processor.rb', line 510

def 
  @raw_metadata
end

Instance Method Details

#find_raw_version_metadata(version_name) ⇒ Hash<String,Object>

メタデータから、version_nameと同じweightのバージョンに関する記述を取得

Parameters:

  • version_name (String)

Returns:

  • (Hash<String,Object>)


533
534
535
536
537
538
539
540
541
542
# File 'lib/uniprop/metadata_processor.rb', line 533

def (version_name)
  weight = Version.name_to_weight(version_name)
  result = raw_version_metadatas.find { Version.name_to_weight(_1["version_name"])==weight }

  if result
    return result
  else
    raise MetaDataNotFoundError, "metadata for #{version_name} is not found."
  end
end

#find_version_property_metadata(version) ⇒ Hash<String,Object>

Parameters:

Returns:

  • (Hash<String,Object>)


552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
# File 'lib/uniprop/metadata_processor.rb', line 552

def (version)
  @version_property_metadatas ||= []

  vpm = @version_property_metadatas.find { _1.version==version }
  return vpm if vpm

  # プロパティ中心のメタデータが存在しない場合、生成を試みる
  if !has_raw_version_metadata?(version.version_name)
    prop_data.(, version)
  end

  vpm = VersionPropertyMetaData.new(version, (version.version_name))
  @version_property_metadatas << vpm
  vpm
end

#has_raw_version_metadata?(version_name) ⇒ Boolean

Returns:

  • (Boolean)


544
545
546
547
548
# File 'lib/uniprop/metadata_processor.rb', line 544

def has_raw_version_metadata?(version_name)
  !!(version_name)
rescue
  false
end

#inspectObject



98
99
100
# File 'lib/uniprop/inspects.rb', line 98

def inspect
  "#<#{self.class.name}>"
end

#raw_version_metadatasArray<Hash<String,Object>>

Returns:

  • (Array<Hash<String,Object>>)


526
527
528
# File 'lib/uniprop/metadata_processor.rb', line 526

def raw_version_metadatas
  @raw_version_metadatas ||= .sort { Version.name_to_weight(_1["version_name"]) }
end