lib/db_mod/statements.rb in db_mod-0.0.3 vs lib/db_mod/statements.rb in db_mod-0.0.4
- old
+ new
@@ -1,6 +1,6 @@
-require_relative 'statements/configurable_method'
+require_relative 'statements/configuration'
require_relative 'statements/statement'
require_relative 'statements/prepared'
module DbMod
# Functions allowing {DbMod} modules to declare
@@ -13,45 +13,8 @@
# Called when a module includes {DbMod},
# defines module-level +def_statement+ and +def_prepared+ dsl methods.
def self.setup(mod)
DbMod::Statements::Prepared.setup(mod)
DbMod::Statements::Statement.setup(mod)
- end
-
- # Used by submodules to when defining a method as declared by
- # +def_statement+ or +def_prepared+. Wraps the defined method
- # so that it may be extended with additional argument and
- # result processing.
- #
- # @param mod [Module] the module where the method has been declared
- # @param name [Symbol] the name of the module that has been defined
- # @param definition [Proc] method definition
- # @return [DbMod::Statements::ConfigurableMethod] dsl object for
- # further extending the method
- def self.configurable_method(mod, name, definition)
- mod.instance_eval { define_method(name, definition) }
-
- ConfigurableMethod.new(mod, name)
- end
-
- # Used by {ConfigurableMethod} (and associated code) to wrap a defined
- # statement method or prepared method with additional parameter or result
- # processing. A wrapper method definition should be provided, which will
- # be called in place of the original method. It will be called with the
- # original method proc as a first argument followed by the original
- # method arguments (before +DbMod+ has made any attempt to validate them!).
- # It is expected to yield to the original proc at some point, although it
- # is allowed to do whatever it wants with the results before returning them.
- #
- # @param mod [Module] the module where the method has been defined
- # @param name [Symbol] the method name
- # @param wrapper [Proc] a function which will be used to wrap the
- # original method definition
- def self.extend_method(mod, name, wrapper)
- mod.instance_eval do
- wrapped = instance_method(name)
-
- define_method name, ->(*args) { wrapper.call wrapped.bind(self), *args }
- end
end
end
end