class Getto::Repository::Sequel::Search::Where

Public Class Methods

new(query:, where:) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 109
def initialize(query:, where:)
  @query = query
  @where = where
end

Public Instance Methods

cont(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 40
def cont(column)
  ->(value){ ::Sequel.like(column, "%#{value}%") }
end
cont_as_hira(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 57
def cont_as_hira(column)
  ->(value){
    cont(column).call NKF.nkf("--hiragana -w", value)
  }
end
cont_as_kana(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 51
def cont_as_kana(column)
  ->(value){
    cont(column).call NKF.nkf("--katakana -w", value)
  }
end
cont_hira_or_kana(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 44
def cont_hira_or_kana(column)
  self.or([
    cont_as_kana(column),
    cont_as_hira(column),
  ])
end
eq(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 63
def eq(column)
  ->(value){ { column => value } }
end
gteq(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 67
def gteq(column)
  ->(value){ ::Sequel.lit("? >= ?", column, value) }
end
in(&query) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 88
def in(&query)
  ->(value){
    where = value.map(&query).compact
    unless where.empty?
      ::Sequel.|(*where)
    end
  }
end
is_not_null(column,map) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 75
def is_not_null(column,map)
  ->(value){
    if map.has_key?(value)
      if map[value]
        ::Sequel.~(column => nil)
      else
        {column => nil}
      end
    end
  }
end
lteq(column) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 71
def lteq(column)
  ->(value){ ::Sequel.lit("? <= ?", column, value) }
end
or(wheres) click to toggle source
# File lib/getto/repository/sequel/search.rb, line 98
def or(wheres)
  wheres = wheres.compact

  ->(value){
    unless wheres.empty?
      ::Sequel.|(*wheres.map{|w| w.call(value)})
    end
  }
end