lib/parse/query.rb in parse-ruby-client-0.1.9 vs lib/parse/query.rb in parse-ruby-client-0.1.10
- old
+ new
@@ -8,10 +8,11 @@
attr_accessor :order_by
attr_accessor :order
attr_accessor :limit
attr_accessor :skip
attr_accessor :count
+ attr_accessor :include
def initialize(cls_name)
@class_name = cls_name
@where = {}
@order = :ascending
@@ -27,10 +28,15 @@
where[field] = constraint
end
end
#private :add_constraint
+ def includes(class_name)
+ @includes = class_name
+ self
+ end
+
def or(query)
raise ArgumentError, "you must pass an entire #{self.class} to \#or" unless query.is_a?(self.class)
@ors << query
self
end
@@ -83,26 +89,15 @@
def exists(field, value = true)
add_constraint field, { "$exists" => value }
self
end
- def in_query(field, query)
+ def in_query(field, query=nil)
query_hash = {Parse::Protocol::KEY_CLASS_NAME => query.class_name, "where" => query.where}
add_constraint(field, "$inQuery" => query_hash)
self
end
-
- def set_limit(num)
- @limit = num
- self
- end
-
- def set_order(field, order = :ascending)
- @order_by = field
- @order = order
- self
- end
def count
@count = true
self
end
@@ -118,15 +113,12 @@
def get
uri = Protocol.class_uri @class_name
if @class_name == Parse::Protocol::CLASS_USER
uri = Protocol.user_uri
end
-
-
query = { "where" => CGI.escape(where_as_json.to_json) }
set_order(query)
- [:count, :limit, :skip].each {|a| merge_attribute(a, query)}
-
+ [:count, :limit, :skip, :include].each {|a| merge_attribute(a, query)}
response = Parse.client.request uri, :get, nil, query
Parse.parse_json class_name, response
end
private
\ No newline at end of file