Class: CommandTower::Configuration::Registry::ClientCompatibility::MinimumOverrides

Inherits:
Object
  • Object
show all
Includes:
ClassComposer::Generator
Defined in:
lib/command_tower/configuration/registry/client_compatibility/minimum_overrides.rb

Overview

Direct per-platform minimum overrides on a host-owned entity requirement (mutually exclusive with a client_contract reference). Authority §6.

Instance Method Summary collapse

Instance Method Details

#any_set? ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/command_tower/configuration/registry/client_compatibility/minimum_overrides.rb', line 18

def any_set?
  [web, ios, android].any?(&:present?)
end

#for_platform(platform) ⇒ Object



22
23
24
# File 'lib/command_tower/configuration/registry/client_compatibility/minimum_overrides.rb', line 22

def for_platform(platform)
  public_send(platform)
end

#validate!(name:) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/command_tower/configuration/registry/client_compatibility/minimum_overrides.rb', line 26

def validate!(name:)
  %i[web ios android].each do |platform|
    value = public_send(platform)
    next if value.blank?

    normalized = CommandTower::ClientCompatibility::Version.normalize(value)
    if normalized.nil?
      raise CommandTower::ClientCompatibility::InvalidVersionError,
        "entity requirement #{name} has invalid minimum.#{platform} #{value.inspect}"
    end

    public_send("#{platform}=", normalized)
  end

  self
end