Class: Criteria::Column

Inherits:
Object
  • Object
show all
Defined in:
lib/criteria.rb

Direct Known Subclasses

Association

Instance Method Summary collapse

Constructor Details

#initialize(clazz, column, adapter = ActiveRecord::Base.connection) ⇒ Column

Returns a new instance of Column.



231
232
233
234
235
236
237
238
239
# File 'lib/criteria.rb', line 231

def initialize(clazz, column, adapter=ActiveRecord::Base.connection)
  @adapter = adapter
  if clazz.is_a? Class
    @clazz = clazz
  else
    @clazz = (clazz.is_a? Symbol) ? clazz : clazz.intern
  end
  @column = (column.is_a? String) ? column.intern : column
end

Instance Method Details

#<(value) ⇒ Object



313
314
315
# File 'lib/criteria.rb', line 313

def <(value)
  lt(value)
end

#<=(value) ⇒ Object



317
318
319
# File 'lib/criteria.rb', line 317

def <=(value)
  le(value)
end

#==(value) ⇒ Object



301
302
303
# File 'lib/criteria.rb', line 301

def ==(value)
  eq(value)
end

#>(value) ⇒ Object



305
306
307
# File 'lib/criteria.rb', line 305

def >(value)
  gt(value)
end

#>=(value) ⇒ Object



309
310
311
# File 'lib/criteria.rb', line 309

def >=(value)
  ge(value)
end

#adapterObject



249
250
251
# File 'lib/criteria.rb', line 249

def adapter
  @adapter
end

#ascObject



261
262
263
# File 'lib/criteria.rb', line 261

def asc
  Order.asc(self)
end

#column_nameObject



241
242
243
# File 'lib/criteria.rb', line 241

def column_name
  (@column.is_a? Symbol) ? @column : @column.name.intern
end

#descObject



265
266
267
# File 'lib/criteria.rb', line 265

def desc
  Order.desc(self)
end

#eq(value) ⇒ Object



281
282
283
# File 'lib/criteria.rb', line 281

def eq(value)
  create_criterion(Criterion::EQUAL, value)
end

#ge(value) ⇒ Object



289
290
291
# File 'lib/criteria.rb', line 289

def ge(value)
  create_criterion(Criterion::GREATER_THAN_OR_EQUAL, value)
end

#gt(value) ⇒ Object



285
286
287
# File 'lib/criteria.rb', line 285

def gt(value)
  create_criterion(Criterion::GREATER_THAN, value)
end

#in(values) ⇒ Object



273
274
275
# File 'lib/criteria.rb', line 273

def in(values)
  create_criterion(Criterion::IN, values)
end

#le(value) ⇒ Object



297
298
299
# File 'lib/criteria.rb', line 297

def le(value)
  create_criterion(Criterion::LESS_THAN_OR_EQUAL, value)
end

#lt(value) ⇒ Object



293
294
295
# File 'lib/criteria.rb', line 293

def lt(value)
  create_criterion(Criterion::LESS_THAN, value)
end

#ne(value) ⇒ Object



277
278
279
# File 'lib/criteria.rb', line 277

def ne(value)
  create_criterion(Criterion::NOT_EQUAL, value)
end

#not_in(values) ⇒ Object



269
270
271
# File 'lib/criteria.rb', line 269

def not_in(values)
  create_criterion(Criterion::NOT_IN, values)
end

#quote_value(val) ⇒ Object



245
246
247
# File 'lib/criteria.rb', line 245

def quote_value(val)
  @adapter.quote(val, (@column.is_a? Symbol) ? nil : @column)
end

#table_nameObject



253
254
255
256
257
258
259
# File 'lib/criteria.rb', line 253

def table_name
  if @clazz.is_a? Class
    @clazz.table_name.intern
  else
    @clazz
  end
end

#to_sObject



325
326
327
# File 'lib/criteria.rb', line 325

def to_s
  self.to_sql_name
end

#to_sql_nameObject



321
322
323
# File 'lib/criteria.rb', line 321

def to_sql_name
  "#{@adapter.quote_table_name(table_name)}.#{@adapter.quote_column_name(column_name)}"
end