Refactor: インスタンスで利用可能な機能を検出する処理 (#721)
This commit is contained in:
parent
3af1b90795
commit
389ae9d339
2 changed files with 24 additions and 7 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue