Class: Parse::Query::Condition
- Inherits:
-
Object
- Object
- Parse::Query::Condition
- Defined in:
- lib/parse/query.rb
Instance Method Summary collapse
- #exists(val = true) ⇒ Object
-
#initialize(query, column_name) ⇒ Condition
constructor
A new instance of Condition.
- #max_distance_in_kilometers(kilometers) ⇒ Object
- #max_distance_in_miles(miles) ⇒ Object
- #max_distance_in_radians(radians) ⇒ Object
-
#near_sphere(geo_point) ⇒ Object
conditions for GeoPoints.
- #or(cond) ⇒ Object
- #regex(regex) ⇒ Object
- #starts_with(str) ⇒ Object
- #to_s ⇒ Object
- #within(southwest_geo_point, northeast_geo_point) ⇒ Object
Constructor Details
#initialize(query, column_name) ⇒ Condition
Returns a new instance of Condition.
174 175 176 177 178 |
# File 'lib/parse/query.rb', line 174 def initialize query, column_name @query = query @column_name = column_name @conditions = [] end |
Instance Method Details
#exists(val = true) ⇒ Object
206 207 208 209 |
# File 'lib/parse/query.rb', line 206 def exists val=true @conditions.push ['$exists', val] self end |
#max_distance_in_kilometers(kilometers) ⇒ Object
254 255 256 257 |
# File 'lib/parse/query.rb', line 254 def max_distance_in_kilometers kilometers @conditions.push ['$maxDistanceInKilometers', kilometers] self end |
#max_distance_in_miles(miles) ⇒ Object
249 250 251 252 |
# File 'lib/parse/query.rb', line 249 def max_distance_in_miles miles @conditions.push ['$maxDistanceInMiles', miles] self end |
#max_distance_in_radians(radians) ⇒ Object
259 260 261 262 |
# File 'lib/parse/query.rb', line 259 def max_distance_in_radians radians @conditions.push ['$maxDistanceInRadians', radians] self end |
#near_sphere(geo_point) ⇒ Object
conditions for GeoPoints
244 245 246 247 |
# File 'lib/parse/query.rb', line 244 def near_sphere geo_point @conditions.push ['$nearSphere', geo_point] self end |
#or(cond) ⇒ Object
233 234 235 236 237 238 239 240 |
# File 'lib/parse/query.rb', line 233 def or cond # quite dirty!! @query.where.delete self @query.where.delete cond or_cond = Condition.new @query, '$or' or_cond.eq [self, cond] @query.where.push or_cond end |
#regex(regex) ⇒ Object
269 270 271 272 |
# File 'lib/parse/query.rb', line 269 def regex regex @conditions.push ['$regex', regex.source] self end |
#starts_with(str) ⇒ Object
275 276 277 |
# File 'lib/parse/query.rb', line 275 def starts_with str regex %r|^\Q#{str}\E| end |
#to_s ⇒ Object
279 280 281 282 283 284 285 286 287 288 |
# File 'lib/parse/query.rb', line 279 def to_s if @conditions.size == 1 && !@conditions[0].is_a?(Array) "#{@column_name.to_s.inspect}:#{condition_to_s @conditions[0]}" elsif @conditions.size == 1 && @conditions[0][0].to_s[0] != '$' # $or "#{@column_name.to_s.inspect}:#{condition_to_s @conditions[0]}" else "#{@column_name.to_s.inspect}:{#{@conditions.map{|c| condition_to_s c}.join ','}}" end end |
#within(southwest_geo_point, northeast_geo_point) ⇒ Object
264 265 266 267 |
# File 'lib/parse/query.rb', line 264 def within southwest_geo_point, northeast_geo_point @conditions.push WithinCondition.new(southwest_geo_point, northeast_geo_point) self end |