module RoadForest::Graph::Helpers::Payloads

Public Instance Methods

backfill_payload(domain, type, root) click to toggle source
# File lib/roadforest/interface/rdf.rb, line 31
def backfill_payload(domain, type, root)
  if payload_blocks.has_key?([domain, type])
    start_focus(nil, root) do |focus|
      payload_blocks[[domain, type]][focus]
    end
  end
end
payload_block(domain, type, &block) click to toggle source
# File lib/roadforest/interface/rdf.rb, line 27
def payload_block(domain, type, &block)
  payload_blocks[[domain, type]] = block
end
payload_blocks() click to toggle source
# File lib/roadforest/interface/rdf.rb, line 23
def payload_blocks
  @payload_blocks ||= {}
end
payload_for_create(domain = nil, &block) click to toggle source
# File lib/roadforest/interface/rdf.rb, line 62
def payload_for_create(domain = nil, &block)
  payload_method(:create_payload, domain || :general, :create, &block)
end
payload_for_update(domain = nil, &block) click to toggle source
# File lib/roadforest/interface/rdf.rb, line 58
def payload_for_update(domain = nil, &block)
  payload_method(:update_payload, domain || :general, :update, &block)
end
payload_method(method_name, domain, type, &block) click to toggle source
# File lib/roadforest/interface/rdf.rb, line 39
def payload_method(method_name, domain, type, &block)
  payload_block(domain, type, &block)
  define_method method_name do
    backfill_route = path_provider.find_route do |route|
      klass = route.interface_class
      next if klass.nil?
      next unless klass.respond_to? :domains
      next unless klass.respond_to? :types
      klass.domains.include?(domain) and klass.types.include?(type)
    end
    return nil if backfill_route.nil?

    klass = backfill_route.interface_class

    root_node = url_for(backfill_route.name) + klass.fragment_for(route_name, type)
    return Payload.new(root_node, nil)
  end
end