Sha256: 5895cd3987969bcd3b73e53b4e1961897e41fdebcf2a05e876a28591f1397744

Contents?: true

Size: 888 Bytes

Versions: 4

Compression:

Stored size: 888 Bytes

Contents

module ActsAsTaggableOn
  module Utils
    def self.included(base)
      
      base.send :include, ActsAsTaggableOn::Utils::OverallMethods
      base.extend ActsAsTaggableOn::Utils::OverallMethods      
    end

    module OverallMethods
      def using_postgresql?
        ::ActiveRecord::Base.connection && ::ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
      end
      
      def using_sqlite?
        ::ActiveRecord::Base.connection && ::ActiveRecord::Base.connection.adapter_name == 'SQLite'
      end 
        
      private
      def like_operator
        using_postgresql? ? 'ILIKE' : 'LIKE'
      end
      
      # escape _ and % characters in strings, since these are wildcards in SQL.
       def escape_like(str)
         return str if using_sqlite? # skip escaping for SQLite
         str.to_s.gsub("_", "\\\_").gsub("%", "\\\%")
       end
    end

  end
end

Version data entries

4 entries across 3 versions & 2 rubygems

Version Path
rylwin-acts-as-taggable-on-2.1.1a lib/acts_as_taggable_on/taggable/utils.rb
rylwin-acts-as-taggable-on-2.1.1a lib/acts_as_taggable_on/utils.rb
acts-as-taggable-on-2.1.1 lib/acts_as_taggable_on/utils.rb
acts-as-taggable-on-2.1.0 lib/acts_as_taggable_on/utils.rb