Class: UniProp::VersionPropertyMetaData

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(version, raw_metadata) ⇒ VersionPropertyMetaData

Returns a new instance of VersionPropertyMetaData.

Parameters:

  • version (EfficientVersion)
  • プロパティ中心のメタデータのproperties項 (Array<Hash<String,Object>>)


574
575
576
577
# File 'lib/uniprop/metadata_processor.rb', line 574

def initialize(version, )
  @version = version
  @raw_metadata = 
end

Instance Attribute Details

#raw_metadataObject (readonly)

Returns the value of attribute raw_metadata.



570
571
572
# File 'lib/uniprop/metadata_processor.rb', line 570

def 
  @raw_metadata
end

#versionObject (readonly)

Returns the value of attribute version.



570
571
572
# File 'lib/uniprop/metadata_processor.rb', line 570

def version
  @version
end

Instance Method Details

#find_property_data(property) ⇒ PropertyData

Parameters:

Returns:



610
611
612
613
614
615
616
617
# File 'lib/uniprop/metadata_processor.rb', line 610

def find_property_data(property)      
  prop = property_datas.find { _1.property==property }
  if prop
    return prop
  else
    raise MetaDataNotFoundError, "MetaData for #{property.longest_alias} is not found."
  end
end

#inspectObject



105
106
107
# File 'lib/uniprop/inspects.rb', line 105

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

#property_datasArray<Hash<String,Object>>

プロパティ中心のメタデータのproperties項をUniPropのデータ構造に変換して取得

Returns:

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


581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
# File 'lib/uniprop/metadata_processor.rb', line 581

def property_datas
  return @property_datas if @property_datas

  @property_datas = []
  ["properties"].each do |raw_prop_data|

    positions = []
    raw_prop_data["positions"].each do |raw_position|
      positions << Position.new(
        version.find_file(raw_position["file_name"]),
        UniPropUtils::RangeProcessor.str_to_range(raw_position["range"]),
        raw_position["block"],
        raw_position["columns"],
      )
    end
      
    @property_datas << PropertyData.new(
      version.find_property(raw_prop_data["property_name"]),
      positions,
      raw_prop_data["unihan"],
      raw_prop_data["derived"],
    )
  end
  
  @property_datas
end