module ReeDao::DSL::InstanceMethods
def build
def build dataset_class = db.dataset_class klass = self.class.const_set(:Dao, Class.new(dataset_class)) filters = self.class.instance_variable_get(:@filters) || [] filters.each do |filter| klass.define_method(filter.name, &filter.proc) end db.dataset_class = klass dao = build_dao( connection: db, table_name: self.class.instance_variable_get(:@table), mapper: get_schema_mapper, primary_key: self.class.instance_variable_get(:@primary_key), default_select_columns: self.class.instance_variable_get(:@default_select_columns), ) db.dataset_class = dataset_class dao end
def get_schema_mapper
def get_schema_mapper mapper = self .class .instance_variable_get(:@schema_mapper) if mapper.nil? raise Ree::Error.new("Dao schema mapper is not set. Use `schema` DSL to define it", :invalid_dsl_usage) end mapper end