Refactor: インスタンスで利用可能な機能を検出する処理 (#721)

This commit is contained in:
KMY(雪あすか) 2024-04-19 09:04:45 +09:00 committed by GitHub
parent 3af1b90795
commit 389ae9d339
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 7 deletions

View file

@ -77,15 +77,18 @@ class InstanceInfo < ApplicationRecord
def feature_available?(info, softwares, feature_name)
return false if info.nil?
return true if softwares.include?(info['software'])
return false unless info.data.is_a?(Hash)
return false unless info.data['metadata'].is_a?(Hash)
softwares.include?(software_name(info)) || metadata_features(info)&.include?(feature_name) || false
end
features = info.data.dig('metadata', 'features')
return false unless features.is_a?(Array)
def metadata_features(info)
return nil unless info.data.is_a?(Hash) && info.data['metadata'].is_a?(Hash) && info.data['metadata']['features'].is_a?(Array)
features.include?(feature_name)
info.data['metadata']['features']
end
def software_name(info)
info.software
end
end