Methods
Instance Public methods
folderable(**options) Link
Source: show
# File app/models/concerns/folderable.rb, line 5 def folderable(**options) cattr_accessor :remove_to_above, :remove_to_below scope :foldered, -> { joins(:folder) } scope :unfoldered, -> { where(folder_id: nil) } belongs_to :folder, optional: true, touch: true options[:remove_to] ||= {} self.remove_to_above = options[:remove_to][:above] || ->(s) { s } self.remove_to_below = options[:remove_to][:below] || ->(s) { s } end
remove_from_folder(id:, site:) Link
Source: show
# File app/models/concerns/folderable.rb, line 18 def remove_from_folder(id:, site:) id = Array(id) where(id:, site:).update_all(folder_id: nil) extending(Sortable).move_to_bottom( id:, site:, below: ->(s) { remove_to_below.call(s.unfoldered) }, above: ->(s) { remove_to_above.call(s.unfoldered) } ) end