esp-idf-lib/devtools/spec/group.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

class Group
  VALID_KEYS = %w[name description].freeze

  def initialize(arg)
    validate_arg(arg)
    validate_keys(arg) if arg.is_a? Hash

    @metadata = if arg.is_a? String
                  { "name" => arg }
                else
                  arg
                end
  end

  def validate_keys(arg)
    arg.each_key do |k|
      raise ArgumentError, "unknown key: `#{k}`. valid keys are: #{VALID_KEYS.join(' ')}" unless VALID_KEYS.include? k
    end
    raise ArgumentError, "a key, `name` is required, but missing" unless arg.key?("name")
  end

  def validate_arg(arg)
    raise ArgumentError, "argument must be String or Hash" unless arg.is_a?(String) || arg.is_a?(Hash)
  end

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

  def name
    @metadata["name"]
  end

  def description?
    @metadata.key?("description")
  end

  def description
    @metadata["description"]
  end

  def to_s
    @metadata["name"]
  end
end

mercurial