Sha256: 94c97ea89a830e45a36082ad4a83a6fb5cfa52f69b4061e5e318febf4fba60ec

Contents?: true

Size: 911 Bytes

Versions: 16

Compression:

Stored size: 911 Bytes

Contents

module Unidom::Category::Concerns::AsDescendantCategory

  extend ActiveSupport::Concern

  included do |includer|

    has_many :ancestor_category_rollups, class_name: 'Unidom::Category::CategoryRollup', foreign_key: :descendant_category_id, source: :descendant_category
    has_many :ancestor_categories,       class_name: 'Unidom::Category::Category',       through:     :ancestor_category_rollups

    def is_rolled_up!(it, at: Time.now, primary: true)
      rollup = ancestor_category_rollups.ancestor_category_is(it).valid_at(now: at).alive.first_or_create! elemental: primary, opened_at: at
      rollup.elemental = primary if rollup.elemental!=primary
      rollup.save!
      rollup
    end

    def is_rolled_up?(it, at: Time.now, primary: true)
      ancestor_category_rollups.ancestor_category_is(it).primary(primary).valid_at(now: at).alive.exists?
    end

  end

  module ClassMethods
  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
unidom-category-2.0 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.8 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.7 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.6 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.5 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.4 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.3 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.2 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6.1 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.6 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.5.5 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.5.4 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.5.3 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.5.2 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.5.1 app/models/unidom/category/concerns/as_descendant_category.rb
unidom-category-1.5 app/models/unidom/category/concerns/as_descendant_category.rb