Class ActiveRecord::Extensions::SqliteRegexp
In: lib/ar-extensions/extensions.rb
Parent: RegexpBase

ActiveRecord::Extension for implementing Regexp implementation for MySQL. See documention for RegexpBase.

Methods

Public Class methods

[Source]

     # File lib/ar-extensions/extensions.rb, line 424
424:     def self.add_rlike_function( connection )
425:       self.connections << connection 
426:       unless connection.respond_to?( 'sqlite_regexp_support?' )
427:         class << connection
428:           def sqlite_regexp_support? ; true ; end
429:         end
430:         connection.instance_eval( '@connection' ).create_function( 'rlike', 3 ) do |func, a, b, negate|
431:           if negate =~ /true/
432:             func.set_result 1 if a.to_s !~ /#{b}/
433:           else
434:             func.set_result 1 if a.to_s =~ /#{b}/
435:           end
436:         end
437:       end
438:     end

[Source]

     # File lib/ar-extensions/extensions.rb, line 440
440:     def self.process( key, val, caller )
441:       return nil unless val.is_a?( Regexp )
442:       r = field_result( key, caller )
443:       unless self.connections.include?( caller.connection )
444:         add_rlike_function( caller.connection )
445:       end
446:       Result.new( "rlike( #{r.fieldname}, ?, '#{r.negate?}' )", val )
447:     end

[Validate]