class ActsAsTaggableOn::Taggable::TaggedWithQuery::QueryBase
Attributes
options[R]
tag_list[R]
tag_model[R]
taggable_model[R]
tagging_model[R]
Public Class Methods
new(taggable_model, tag_model, tagging_model, tag_list, options)
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 7 def initialize(taggable_model, tag_model, tagging_model, tag_list, options) @taggable_model = taggable_model @tag_model = tag_model @tagging_model = tagging_model @tag_list = tag_list @options = options end
Private Instance Methods
adjust_taggings_alias(taggings_alias)
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 71 def adjust_taggings_alias(taggings_alias) taggings_alias = "taggings_alias_#{Digest::SHA1.hexdigest(taggings_alias)}" if taggings_alias.size > 75 taggings_alias end
escaped_tag(tag)
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 57 def escaped_tag(tag) tag = tag.downcase unless ActsAsTaggableOn.strict_case_match ActsAsTaggableOn::Utils.escape_like(tag) end
tag_arel_table()
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 23 def tag_arel_table @tag_arel_table ||= tag_model.arel_table end
tag_match_type(tag)
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 31 def tag_match_type(tag) matches_attribute = tag_arel_table[:name] matches_attribute = matches_attribute.lower unless ActsAsTaggableOn.strict_case_match if options[:wild].present? matches_attribute.matches(wildcard_escaped_tag(tag), '!', ActsAsTaggableOn.strict_case_match) else matches_attribute.matches(escaped_tag(tag), '!', ActsAsTaggableOn.strict_case_match) end end
taggable_arel_table()
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 19 def taggable_arel_table @taggable_arel_table ||= taggable_model.arel_table end
tagging_arel_table()
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 27 def tagging_arel_table @tagging_arel_table ||= tagging_model.arel_table end
wildcard_escaped_tag(tag)
click to toggle source
# File lib/acts-as-taggable-on/taggable/tagged_with_query/query_base.rb, line 62 def wildcard_escaped_tag(tag) case options[:wild] when :suffix then "#{escaped_tag(tag)}%" when :prefix then "%#{escaped_tag(tag)}" when true then "%#{escaped_tag(tag)}%" else escaped_tag(tag) end end