Class: ArchiveHook::ScopeArchiver
- Inherits:
-
Object
- Object
- ArchiveHook::ScopeArchiver
- Defined in:
- lib/archive_hook.rb
Instance Method Summary collapse
- #call(scope) ⇒ Object
-
#initialize(dependencies: {}) ⇒ ScopeArchiver
constructor
A new instance of ScopeArchiver.
Constructor Details
#initialize(dependencies: {}) ⇒ ScopeArchiver
Returns a new instance of ScopeArchiver.
5 6 7 |
# File 'lib/archive_hook.rb', line 5 def initialize(dependencies: {}) @dependencies = dependencies end |
Instance Method Details
#call(scope) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/archive_hook.rb', line 9 def call(scope) parent = scope.model parent_id_groups = scope.in_batches.map { |relation| relation.pluck(:id) } return if parent_id_groups.empty? archive_children(parent, parent_id_groups) parent_id_groups.each do |parent_ids| archive_by_scope(parent.unscoped.where(id: parent_ids)) end end |