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
search(column,&block)
click to toggle source
# File lib/getto/repository/sequel/search.rb, line 114 def search(column,&block) if @query.has_key?(column.to_sym) @where << block.call(@query[column.to_sym]) end end