Sha256: d5b83005ce90ff14ebf436897caa004816921dfcc15bac0ffb6b1cf12ab603a8

Contents?: true

Size: 1.72 KB

Versions: 18

Compression:

Stored size: 1.72 KB

Contents

Sequel.extension :escaped_like

module PactBroker
  module Repositories
    module Helpers

      extend self

      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

      def pacticipant_id_for_name pacticipant_name
        Sequel::Model.db[:pacticipants].select(:id).where(name_like(:name, pacticipant_name)).limit(1)
      end

      def order_ignore_case column_name = :name
        order(Sequel.function(:lower, column_name))
      end

      def order_append_ignore_case column_name = :name
        order_append(Sequel.function(:lower, column_name))
      end

      def mysql?
        Sequel::Model.db.adapter_scheme.to_s =~ /mysql/
      end

      def postgres?
        Sequel::Model.db.adapter_scheme.to_s == "postgres"
      end

      def select_all_qualified
        select(Sequel[model.table_name].*)
      end

      def select_append_all_qualified
        select_append(Sequel[model.table_name].*)
      end

      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

      def no_columns_selected?
        opts[:select].nil?
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pact_broker-2.93.3 lib/pact_broker/repositories/helpers.rb
pact_broker-2.93.2 lib/pact_broker/repositories/helpers.rb
pact_broker-2.93.1 lib/pact_broker/repositories/helpers.rb
pact_broker-2.93.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.92.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.91.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.90.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.89.1 lib/pact_broker/repositories/helpers.rb
pact_broker-2.89.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.88.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.87.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.86.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.85.1 lib/pact_broker/repositories/helpers.rb
pact_broker-2.85.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.84.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.83.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.82.0 lib/pact_broker/repositories/helpers.rb
pact_broker-2.81.0 lib/pact_broker/repositories/helpers.rb