Class: PDK::Module::Metadata
- Inherits:
-
Object
- Object
- PDK::Module::Metadata
- Defined in:
- lib/pdk/module/metadata.rb
Constant Summary collapse
- DEFAULTS =
{ 'name' => nil, 'version' => nil, 'author' => nil, 'summary' => '', 'license' => 'Apache-2.0', 'source' => '', 'project_page' => nil, 'issues_url' => nil, 'dependencies' => Set.new.freeze, 'data_provider' => nil, 'operatingsystem_support' => [ { 'operatingsystem' => 'Debian', 'operatingsystemrelease' => ['8'], }, { 'operatingsystem' => 'RedHat', 'operatingsystemrelease' => ['7.0'], }, { 'operatingsystem' => 'Ubuntu', 'operatingsystemrelease' => ['16.04'], }, { 'operatingsystem' => 'windows', 'operatingsystemrelease' => ['2012 R2'], }, ], 'requirements' => Set.new.freeze, }.freeze
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(params = {}) ⇒ Metadata
constructor
A new instance of Metadata.
- #to_json ⇒ Object
- #update!(data) ⇒ Object
Constructor Details
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
6 7 8 |
# File 'lib/pdk/module/metadata.rb', line 6 def data @data end |
Class Method Details
.from_file(metadata_json_path) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/pdk/module/metadata.rb', line 45 def self.from_file() unless File.file?() raise ArgumentError, _("'%{file}' does not exist or is not a file") % { file: } end unless File.readable?() raise ArgumentError, _("Unable to open '%{file}' for reading") % { file: } end begin data = JSON.parse(File.read()) rescue JSON::JSONError => e raise ArgumentError, _('Invalid JSON in metadata.json: %{msg}') % { msg: e. } end new(data) end |
Instance Method Details
#to_json ⇒ Object
70 71 72 |
# File 'lib/pdk/module/metadata.rb', line 70 def to_json JSON.pretty_generate(@data.dup.delete_if { |_key, value| value.nil? }) end |
#update!(data) ⇒ Object
63 64 65 66 67 68 |
# File 'lib/pdk/module/metadata.rb', line 63 def update!(data) # TODO: validate all data process_name(data) if data['name'] @data.merge!(data) self end |