Sha256: 7e54456c43b5bc837d120182a076d96a02624a02ce0fbc0dc632aac52df779db

Contents?: true

Size: 620 Bytes

Versions: 4

Compression:

Stored size: 620 Bytes

Contents

require "active_record"

module ActiveRecord
  module QueryMethods
    module Like
      def like(opts, *rest)
        chain_node(Arel::Nodes::Matches, opts, *rest)
      end

      def not_like(opts, *rest)
        chain_node(Arel::Nodes::DoesNotMatch, opts, *rest)
      end

    private
      def chain_node(node_type, opts, *rest)
        @scope.tap do |s|
          s.where_values += s.send(:build_where, opts, *rest).map do |r|
            node_type.new(r.left, r.right)
          end
        end
      end
    end
  end
end

ActiveRecord::QueryMethods::WhereChain.send(:include, ActiveRecord::QueryMethods::Like)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
activerecord-like-0.0.5 lib/active_record/like.rb
activerecord-like-0.0.4 lib/active_record/like.rb
activerecord-like-0.0.3 lib/active_record/like.rb
activerecord-like-0.0.2 lib/active_record/like.rb