Class: Eco::API::Organization::PresetsFactory
- Inherits:
-
Object
- Object
- Eco::API::Organization::PresetsFactory
- Defined in:
- lib/eco/api/organization/presets_factory.rb
Constant Summary collapse
- ABILITIES =
File.join(__dir__, 'presets_values.json')
- DEFAULT_CUSTOM =
'presets_custom.json'
- DEFAULT_MAP =
'presets_map.json'
Instance Method Summary collapse
-
#initialize(presets_custom: DEFAULT_CUSTOM, presets_map: DEFAULT_MAP, enviro: nil, policy_groups: nil) ⇒ PresetsFactory
constructor
A new instance of PresetsFactory.
-
#keys ⇒ Array<String>
All the abilities.
- #new(*policy_group_ids_or_names) ⇒ Object
Constructor Details
#initialize(presets_custom: DEFAULT_CUSTOM, presets_map: DEFAULT_MAP, enviro: nil, policy_groups: nil) ⇒ PresetsFactory
Returns a new instance of PresetsFactory.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/eco/api/organization/presets_factory.rb', line 10 def initialize(presets_custom: DEFAULT_CUSTOM, presets_map: DEFAULT_MAP, enviro: nil, policy_groups: nil) @abilities = JSON.load(File.open(ABILITIES)) @habilities = @abilities.map do |key, values| h_values = values.map { |v| [v, true] }.to_h [key, h_values] end.to_h fatal("Expecting Environment object. Given: #{enviro}") if enviro && !enviro.is_a?(Eco::API::Common::Session::Environment) @enviro = enviro policy_groups = policy_groups || @enviro&.api&.policy_groups.to_a if policy_groups.is_a?(Eco::API::Organization::PolicyGroups) @policy_groups = policy_groups else @policy_groups = Eco::API::Organization::PolicyGroups.new(policy_groups) end init_custom(presets_custom) init_map(presets_map) end |
Instance Method Details
#keys ⇒ Array<String>
Returns all the abilities.
46 47 48 |
# File 'lib/eco/api/organization/presets_factory.rb', line 46 def keys @abilities.keys end |
#new(*policy_group_ids_or_names) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/eco/api/organization/presets_factory.rb', line 31 def new(*policy_group_ids_or_names) names = policy_group_ids_or_names.map do |id_name| @policy_groups.to_name(id_name)&.downcase end.compact if @presets_map preset_names = names.map { |name| @presets_map.fetch(name, nil) } else # option to do not use preset mapping (so just the policy group name) preset_names = names end compile(*preset_names) end |