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