module QueryInterface::Server::Transformations
Public Class Methods
included(base)
click to toggle source
# File lib/query-interface-server/transformations.rb, line 5 def self.included(base) base.extend(ClassMethods) base.dataset_module do def query_transformation(type, name, *args) block = model.instance_variable_get(:@query_transformations)[type][name] if block self.instance_exec(*args, &block) elsif type == :order and args.count == 1 self.order_append(Sequel.send(args[0], name.to_sym)) else raise "No #{type} implementation for #{name}" end end end base.instance_variable_set(:@query_transformations, { exclude: {}, filter: {}, with: {}, order: {}, update: {}, }) end
Public Instance Methods
query_transformation(type, name, *args)
click to toggle source
# File lib/query-interface-server/transformations.rb, line 8 def query_transformation(type, name, *args) block = model.instance_variable_get(:@query_transformations)[type][name] if block self.instance_exec(*args, &block) elsif type == :order and args.count == 1 self.order_append(Sequel.send(args[0], name.to_sym)) else raise "No #{type} implementation for #{name}" end end