Class: Wharel::VirtualRow
- Inherits:
- BasicObject
- Defined in:
- lib/wharel.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(klass) ⇒ VirtualRow
constructor
A new instance of VirtualRow.
- #method_missing(m) ⇒ Object
Constructor Details
#initialize(klass) ⇒ VirtualRow
Returns a new instance of VirtualRow.
18 19 20 |
# File 'lib/wharel.rb', line 18 def initialize(klass) @klass = klass end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m) ⇒ Object
22 23 24 |
# File 'lib/wharel.rb', line 22 def method_missing(m, *) @klass.column_names.include?(m.to_s) ? @klass.arel_table[m] : super end |
Class Method Details
.build_query(klass, &block) ⇒ Object
27 28 29 30 31 |
# File 'lib/wharel.rb', line 27 def build_query(klass, &block) row = new(klass) query = (block.arity == 0) ? row.instance_eval(&block) : block.call(row) ::ActiveRecord::Relation === query ? query.arel.constraints.inject(&:and) : query end |