esp-idf-lib/devtools/spec/copyright.rb

Mon, 17 Apr 2023 16:53:38 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 17 Apr 2023 16:53:38 +0200
changeset 33
5bd5f6668f71
parent 1
1c9894662795
permissions
-rw-r--r--

Removed all BLE code. It is not usefull in this application.

# frozen_string_literal: true

require_relative "person"

class Copyright
  VALID_KEYS = %w[
    author
    name
    year
  ].freeze

  def initialize(hash)
    raise ArgumentError, "expect Hash, got `#{hash.class}`" unless hash.is_a?(Hash)

    validate_keys(hash)
    @metadata = hash
  end

  attr_reader :metadata

  def validate_keys(hash)
    hash.each_key do |k|
      raise ArgumentError, "unknown key: `#{k}`. valid keys are: #{VALID_KEYS.join(' ')}" unless VALID_KEYS.include? k
    end
  end

  def author?
    metadata.key?("author")
  end

  def author
    Person.new(metadata["author"])
  end

  def name
    Person.new("name" => metadata["name"])
  end

  def name?
    metadata.key?("name")
  end

  def year
    metadata["year"]
  end

  def year?
    metadata.key?("year")
  end
end

mercurial