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, options = {}, adapter = ActiveRecord::Base.connection) ⇒ Column

Returns a new instance of Column.



300
301
302
303
304
305
306
307
308
309
# File 'lib/criteria.rb', line 300

def initialize(clazz, column, options={}, adapter=ActiveRecord::Base.connection)
  @options = {}
  @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



387
388
389
# File 'lib/criteria.rb', line 387

def <(value)
  lt(value)
end

#<=(value) ⇒ Object



391
392
393
# File 'lib/criteria.rb', line 391

def <=(value)
  le(value)
end

#==(value) ⇒ Object



375
376
377
# File 'lib/criteria.rb', line 375

def ==(value)
  eq(value)
end

#>(value) ⇒ Object



379
380
381
# File 'lib/criteria.rb', line 379

def >(value)
  gt(value)
end

#>=(value) ⇒ Object



383
384
385
# File 'lib/criteria.rb', line 383

def >=(value)
  ge(value)
end

#adapterObject



323
324
325
# File 'lib/criteria.rb', line 323

def adapter
  @adapter
end

#ascObject



335
336
337
# File 'lib/criteria.rb', line 335

def asc
  Order.asc(self)
end

#bound_classObject



311
312
313
# File 'lib/criteria.rb', line 311

def bound_class
  @clazz if @clazz.is_a? Class
end

#column_nameObject



315
316
317
# File 'lib/criteria.rb', line 315

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

#descObject



339
340
341
# File 'lib/criteria.rb', line 339

def desc
  Order.desc(self)
end

#eq(value) ⇒ Object



355
356
357
# File 'lib/criteria.rb', line 355

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

#ge(value) ⇒ Object



363
364
365
# File 'lib/criteria.rb', line 363

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

#gt(value) ⇒ Object



359
360
361
# File 'lib/criteria.rb', line 359

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

#in(values) ⇒ Object



347
348
349
# File 'lib/criteria.rb', line 347

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

#le(value) ⇒ Object



371
372
373
# File 'lib/criteria.rb', line 371

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

#lt(value) ⇒ Object



367
368
369
# File 'lib/criteria.rb', line 367

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

#ne(value) ⇒ Object



351
352
353
# File 'lib/criteria.rb', line 351

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

#not_in(values) ⇒ Object



343
344
345
# File 'lib/criteria.rb', line 343

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

#quote_value(val) ⇒ Object



319
320
321
# File 'lib/criteria.rb', line 319

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

#table_nameObject



327
328
329
330
331
332
333
# File 'lib/criteria.rb', line 327

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

#to_sObject



412
413
414
# File 'lib/criteria.rb', line 412

def to_s
  self.to_sql_name
end

#to_sql_nameObject



395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
# File 'lib/criteria.rb', line 395

def to_sql_name
  out = ""
  if @adapter.methods.include? "quote_table_name"
    # puts @adapter.method(:quote_table_name).inspect
    out+="#{@adapter.quote_table_name(table_name)}"
  else
    out+="#{table_name}"
  end
  out+="."
  if @adapter.methods.include? "quote_column_name"
    out+="#{@adapter.quote_column_name(column_name)}"
  else
    out+="#{column_name}"
  end
  out
end