module Medic::Predicate
Public Instance Methods
predicate(args={})
click to toggle source
# File lib/medic/predicate.rb, line 6 def predicate(args={}) return args if args.is_a? NSPredicate if args[:where] args[:where] elsif args[:predicate] args[:predicate] elsif args[:sample_predicate] args[:sample_predicate] elsif args[:uuid] || args[:uuids] uuids = Array(args[:uuid] || args[:uuids]).map{ |s| NSUUID.alloc.initWithUUIDString(s.to_s) } HKQuery.predicateForObjectsWithUUIDs(uuids) elsif args[:source] || args[:sources] HKQuery.predicateForObjectsFromSources(Array(args[:source] || args[:sources])) elsif args[:meta_data] && (args[:allowed_value] || args[:allowed_values]) HKQuery.predicateForObjectsWithMetadataKey(args[:meta_data].to_s, allowedValues: Array(args[:allowed_value] || args[:allowed_values])) elsif args[:meta_data] HKQuery.predicateForObjectsWithMetadataKey(args[:meta_data].to_s) elsif args[:no_correlation] HKQuery.predicateForObjectsWithNoCorrelation elsif args[:start_date] && args[:end_date] options = query_options(args[:query_options]) || HKQueryOptionNone HKQuery.predicateForSamplesWithStartDate(args[:start_date], endDate: args[:end_date], options: options) elsif args[:workout] HKQuery.predicateForObjectsFromWorkout(args[:workout]) elsif args[:workout_activity_type] || args[:activity_type] activity_type = args[:workout_activity_type] || args[:activity_type] HKQuery.predicateForWorkoutsWithWorkoutActivityType(activity_type) else nil end end