Sha256: 396668dc29fe47fe9f0a17332376a39df0fc947418c8add0c8d8af57036edcd9

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

module ActsAsTaggableOnScopedByDomain
  RAILS_DEFAULT_LOGGER.info "** Extended acts_as_taggable_on for domain scoping."

  ActiveRecord::Acts::TaggableOn::SingletonMethods.module_eval do
    # Had to not use this method of scoping by domain because there's no way here to use the same 
    # table alias as what's being used for the tagging.
    #
    # def find_options_for_find_tagged_with_with_domain_id(tags, options = {})
    #   options = options.reverse_merge!(:conditions => ["domain_id = ?", Domain.current_domain_id])
    #   find_options_for_find_tagged_with_without_domain_id(tags, options)
    # end
    # alias_method_chain :find_options_for_find_tagged_with, :domain_id

    def find_options_for_tag_counts_with_domain_id(options = {})
      options = options.reverse_merge!(:conditions => "`taggings`.domain_id = #{Domain.current_domain_id}")
      find_options_for_tag_counts_without_domain_id(options)
    end
    alias_method_chain :find_options_for_tag_counts, :domain_id
  end

  Tagging.instance_eval <<-EOV
    before_validation :set_domain_id
    validates_presence_of :domain_id
  EOV

  Tagging.class_eval <<-EOV
    def set_domain_id
      self.domain_id = Domain.current_domain_id if self.domain_id.nil?
    end
  EOV
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
acts-as-taggable-on-for-domains-0.1.1 lib/acts_as_taggable_on/acts_as_taggable_on_scoped_by_domain.rb