class OData::AbstractQuery::Segments::LinksSegment

Public Class Methods

can_follow?(anOtherSegment) click to toggle source
# File lib/o_data/abstract_query/segments/links_segment.rb, line 25
def self.can_follow?(anOtherSegment)
  if anOtherSegment.is_a?(Class)
    anOtherSegment == CollectionSegment || anOtherSegment == NavigationPropertySegment
  else
    (anOtherSegment.is_a?(CollectionSegment) || anOtherSegment.is_a?(NavigationPropertySegment)) # && anOtherSegment.countable?
  end
end
countable?() click to toggle source
# File lib/o_data/abstract_query/segments/links_segment.rb, line 17
def self.countable?
  true
end
new(query) click to toggle source
Calls superclass method OData::AbstractQuery::Segment::new
# File lib/o_data/abstract_query/segments/links_segment.rb, line 21
def initialize(query)
  super(query, self.class.segment_name)
end
parse!(query, str) click to toggle source
# File lib/o_data/abstract_query/segments/links_segment.rb, line 7
def self.parse!(query, str)
  return nil unless str.to_s == segment_name

  query.Segment(self)
end
segment_name() click to toggle source
# File lib/o_data/abstract_query/segments/links_segment.rb, line 13
def self.segment_name
  "$links"
end

Public Instance Methods

execute!(acc) click to toggle source
# File lib/o_data/abstract_query/segments/links_segment.rb, line 33
def execute!(acc)
  [acc].flatten.compact.collect { |one|
    if entity_type = self.query.schema.entity_types.find { |et| et.name == one.class.name }
      [one, entity_type.plural_name + '(' + entity_type.primary_key_for(one).to_s + ')']
    else
      [one, nil]
    end
  }
end
valid?(results) click to toggle source
# File lib/o_data/abstract_query/segments/links_segment.rb, line 43
def valid?(results)
  results.all? { |pair| !pair[1].blank? }
end