Class: Collavre::Creatives::TreeBuilder
- Inherits:
-
Object
- Object
- Collavre::Creatives::TreeBuilder
- Defined in:
- app/services/collavre/creatives/tree_builder.rb
Constant Summary collapse
- FILTER_IGNORED_KEYS =
%w[id controller action format level select_mode].freeze
Instance Method Summary collapse
- #build(collection, level: 1) ⇒ Object
-
#initialize(user:, params:, view_context:, expanded_state_map:, select_mode:, max_level:, allowed_creative_ids: nil, progress_map: nil) ⇒ TreeBuilder
constructor
A new instance of TreeBuilder.
Constructor Details
#initialize(user:, params:, view_context:, expanded_state_map:, select_mode:, max_level:, allowed_creative_ids: nil, progress_map: nil) ⇒ TreeBuilder
Returns a new instance of TreeBuilder.
6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/services/collavre/creatives/tree_builder.rb', line 6 def initialize(user:, params:, view_context:, expanded_state_map:, select_mode:, max_level:, allowed_creative_ids: nil, progress_map: nil) @user = user @view_context = view_context @raw_params = params.respond_to?(:to_unsafe_h) ? params.to_unsafe_h : params.to_h @expanded_state_map = || {} @select_mode = select_mode @max_level = max_level @allowed_creative_ids = allowed_creative_ids @progress_map = progress_map @permission_cache = {} end |
Instance Method Details
#build(collection, level: 1) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'app/services/collavre/creatives/tree_builder.rb', line 18 def build(collection, level: 1) return [] if collection.blank? creatives = Array(collection) # Preload permissions for all creatives in this batch to avoid N+1 (creatives) build_nodes(creatives, level: level) end |