class Parse::Relation
Public Class Methods
new(parent, column_name, hash)
click to toggle source
# File lib/parse/relation.rb, line 4 def initialize parent, column_name, hash @parent_object = parent @column_name = column_name @raw_hash = hash @added_pointers = [] @removed_pointers = [] end
Public Instance Methods
add(item)
click to toggle source
# File lib/parse/relation.rb, line 12 def add item unless @removed_pointers.empty? raise ArgumentError.new('Please save for removed items before adding') end item = item.pointer if item.is_a?(Parse::Object) @added_pointers.push item end
changed?()
click to toggle source
# File lib/parse/relation.rb, line 53 def changed? (@added_pointers.size + @removed_pointers.size) != 0 end
load(parse_client=Parse::Client.default)
click to toggle source
# File lib/parse/relation.rb, line 28 def load parse_client=Parse::Client.default unless @objects pointer = @parent_object.pointer key = @column_name related_class = Parse::Object @raw_hash['className'] @objects = related_class.find :where => proc { related_to key, pointer } end @objects end
load!(parse_client=Parse::Client.default)
click to toggle source
TODO should be refactored
# File lib/parse/relation.rb, line 41 def load! parse_client=Parse::Client.default unless @objects pointer = @parent_object.pointer key = @column_name related_class = Parse::Object @raw_hash['className'] @objects = related_class.find! :where => proc { related_to key, pointer } end @objects end
remove(item)
click to toggle source
# File lib/parse/relation.rb, line 20 def remove item unless @added_pointers.empty? raise ArgumentError.new('Please save for added items before removing') end item = item.pointer if item.is_a?(Parse::Object) @removed_pointers.push item end
to_h()
click to toggle source
# File lib/parse/relation.rb, line 57 def to_h if not @added_pointers.empty? { "__op" => "AddRelation", "objects" => @added_pointers.map(&:to_h) } elsif not @removed_pointers.empty? { "__op" => "RemoveRelation", "objects" => @removed_pointers.map(&:to_h) } else { "__op" => "AddRelation", "objects" => [nil] } end end
to_json(*args)
click to toggle source
# File lib/parse/relation.rb, line 76 def to_json *args to_h.to_json end