class ActiveForce::Query
Attributes
table[R]
Public Class Methods
new(table)
click to toggle source
# File lib/active_force/query.rb, line 5 def initialize table @table = table @conditions = [] @table_id = 'Id' @query_fields = [@table_id] end
Public Instance Methods
all()
click to toggle source
# File lib/active_force/query.rb, line 16 def all self end
count()
click to toggle source
# File lib/active_force/query.rb, line 84 def count @query_fields = ["count(Id)"] self end
fields(fields_collection = [])
click to toggle source
# File lib/active_force/query.rb, line 12 def fields fields_collection = [] @query_fields += fields_collection.to_a end
find(id)
click to toggle source
# File lib/active_force/query.rb, line 66 def find id where "#{ @table_id } = '#{ id }'" limit 1 end
first()
click to toggle source
# File lib/active_force/query.rb, line 71 def first limit 1 end
join(object_query)
click to toggle source
# File lib/active_force/query.rb, line 79 def join object_query fields ["(#{ object_query.to_s })"] self end
last()
click to toggle source
# File lib/active_force/query.rb, line 75 def last order("Id DESC").limit(1) end
limit(size)
click to toggle source
# File lib/active_force/query.rb, line 48 def limit size @size = size if size self end
limit_value()
click to toggle source
# File lib/active_force/query.rb, line 53 def limit_value @size end
offset(offset)
click to toggle source
# File lib/active_force/query.rb, line 57 def offset offset @offset = offset self end
offset_value()
click to toggle source
# File lib/active_force/query.rb, line 62 def offset_value @offset end
order(order)
click to toggle source
# File lib/active_force/query.rb, line 43 def order order @order = order if order self end
select(*columns)
click to toggle source
# File lib/active_force/query.rb, line 33 def select *columns @query_fields = columns self end
to_s()
click to toggle source
# File lib/active_force/query.rb, line 20 def to_s <<-SOQL.gsub(/\s+/, " ").strip SELECT #{ build_select } FROM #{ @table } #{ build_where } #{ build_order } #{ build_limit } #{ build_offset } SOQL end
where(condition)
click to toggle source
# File lib/active_force/query.rb, line 38 def where condition @conditions << condition if condition self end
Protected Instance Methods
build_limit()
click to toggle source
# File lib/active_force/query.rb, line 98 def build_limit "LIMIT #{ @size }" if @size end
build_offset()
click to toggle source
# File lib/active_force/query.rb, line 106 def build_offset "OFFSET #{ @offset }" if @offset end
build_order()
click to toggle source
# File lib/active_force/query.rb, line 102 def build_order "ORDER BY #{ @order }" if @order end
build_select()
click to toggle source
# File lib/active_force/query.rb, line 90 def build_select @query_fields.compact.uniq.join(', ') end
build_where()
click to toggle source
# File lib/active_force/query.rb, line 94 def build_where "WHERE (#{ @conditions.join(') AND (') })" unless @conditions.empty? end