module SqliteExt::DbTracksCreatedFunctions
Public Class Methods
included(other)
click to toggle source
# File lib/sqlite_ext/db_tracks_created_functions.rb, line 18 def self.included(other) orig_create_function = other.instance_method(:create_function) other.send :define_method, :create_function, proc{ |name, arity, *other_args, &block| orig_create_function.bind(self).call name, arity, *other_args, &block created_function_names << name_key_from(name) } end
Public Instance Methods
create_function(name, arity, *other_args, &block)
click to toggle source
Calls superclass method
# File lib/sqlite_ext/db_tracks_created_functions.rb, line 11 def create_function(name, arity, *other_args, &block) super created_function_names << name_key_from(name) end
function_created?(name)
click to toggle source
Given a name, returns true if a function of that hane has been created on the target instance. The name lookup is case-insensitive, and either a string or a symbol may be supplied.
# File lib/sqlite_ext/db_tracks_created_functions.rb, line 32 def function_created?(name) name_key = name_key_from(name) created_function_names.include?(name_key) end
Private Instance Methods
created_function_names()
click to toggle source
# File lib/sqlite_ext/db_tracks_created_functions.rb, line 43 def created_function_names @created_function_names ||= Set.new end
name_key_from(name)
click to toggle source
# File lib/sqlite_ext/db_tracks_created_functions.rb, line 39 def name_key_from(name) "#{name}".upcase end