module PactBroker::Dataset
Public Instance Methods
Source
# File lib/pact_broker/dataset.rb, line 67 def all_allowing_lazy_load all.each{ | row | row.allow_lazy_load if row.respond_to?(:allow_lazy_load) } end
Source
# File lib/pact_broker/dataset.rb, line 63 def all_forbidding_lazy_load all.each{ | row | row.forbid_lazy_load if row.respond_to?(:forbid_lazy_load) } end
Source
# File lib/pact_broker/dataset.rb, line 54 def all_with_pagination_options(pagination_options) if pagination_options&.any? query = paginate(pagination_options[:page_number], pagination_options[:page_size]) Page.new(query.all, query) else all end end
Source
# File lib/pact_broker/dataset.rb, line 29 def filter(column_name, query_string) where(Sequel.ilike(column_name, "%" + escape_wildcards(query_string) + "%")) end
Return a dataset that only includes the rows where the specified column includes the given query string. @return [Sequel::Dataset]
Source
# File lib/pact_broker/dataset.rb, line 73 def max_group_by(max_column, group_by_columns, &extra_criteria_block) maximums_base_query = extra_criteria_block ? extra_criteria_block.call(self) : self maximums = maximums_base_query.select_group(*group_by_columns).select_append(Sequel.function(:max, max_column).as(:max_value)) max_join = group_by_columns.each_with_object({ Sequel[:maximums][:max_value] => max_column }) do | column_name, joins | joins[Sequel[:maximums][column_name]] = column_name end join(maximums, max_join, table_alias: :maximums) end
@param [Symbol] max_column the name of the column of which to calculate the maxiumum @param [Array<Symbol>] group_by_columns the names of the columns by which to group
Source
# File lib/pact_broker/dataset.rb, line 33 def name_like column_name, value if PactBroker.configuration.use_case_sensitive_resource_names if mysql? # sigh, mysql, this is the only way to perform a case sensitive search Sequel.like(column_name, value.gsub("_", "\\_"), { case_insensitive: false }) else { column_name => value } end else Sequel.like(column_name, value.gsub("_", "\\_"), { case_insensitive: true }) end end
Source
# File lib/pact_broker/dataset.rb, line 93 def no_columns_selected? opts[:select].nil? end
Source
# File lib/pact_broker/dataset.rb, line 101 def order_append_ignore_case column_name = :name order_append(Sequel.function(:lower, column_name)) end
Source
# File lib/pact_broker/dataset.rb, line 97 def order_ignore_case column_name = :name order(Sequel.function(:lower, column_name)) end
Source
# File lib/pact_broker/dataset.rb, line 50 def select_all_qualified select(Sequel[model.table_name].*) end
Source
# File lib/pact_broker/dataset.rb, line 84 def select_for_subquery column if mysql? #stoopid mysql doesn't allow you to modify datasets with subqueries column_name = column.respond_to?(:alias) ? column.alias : column select(column).collect{ | it | it[column_name] } else select(column) end end
Source
# File lib/pact_broker/dataset.rb, line 46 def where_name_like(column_name, value) where(name_like(column_name, value)) end