| Class | ActiveRecord::Extensions::SqliteRegexp |
| In: |
lib/ar-extensions/extensions.rb
|
| Parent: | RegexpBase |
ActiveRecord::Extension for implementing Regexp implementation for MySQL. See documention for RegexpBase.
# 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
# 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