Sha256: c6068cb5238b3bee40f7a99ad2632801fab044d2c7b9d24732acec4ba2158a71

Contents?: true

Size: 987 Bytes

Versions: 18

Compression:

Stored size: 987 Bytes

Contents

module Unidom::Category::Concerns::AsCategorized

  extend ActiveSupport::Concern

  included do |includer|

    has_many :categorizings, class_name: 'Unidom::Category::Categorizing', as:     :categorized
    has_many :categories,    through:    :categorizings,                   source: :category

    def is_categorized!(into: nil, at: Time.now, primary: true)

      raise ArgumentError('The into argument is required.') if into.blank?
      raise ArgumentError('The at argument is required.'  ) if at.blank?

      categorizings.category_is(into).valid_at(now: at).alive.first_or_create! elemental: primary, opened_at: at

    end

    def is_categorized?(into: nil, at: Time.now, primary: true)

      raise ArgumentError('The into argument is required.') if into.blank?
      raise ArgumentError('The at argument is required.'  ) if at.blank?

      categorizings.category_is(into).valid_at(now: at).alive.primary(primary).exists?

    end

  end

  module ClassMethods
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

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