Module: RoadForest::Graph::Helpers::Payloads
- Includes:
- Focus
- Defined in:
- lib/roadforest/interface/rdf.rb
Instance Method Summary collapse
- #backfill_payload(domain, type, root) ⇒ Object
- #payload_block(domain, type, &block) ⇒ Object
- #payload_blocks ⇒ Object
- #payload_for_create(domain = nil, &block) ⇒ Object
- #payload_for_update(domain = nil, &block) ⇒ Object
- #payload_method(method_name, domain, type, &block) ⇒ Object
Methods included from Focus
Instance Method Details
#backfill_payload(domain, type, root) ⇒ Object
31 32 33 34 35 36 37 |
# 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) ⇒ Object
27 28 29 |
# File 'lib/roadforest/interface/rdf.rb', line 27 def payload_block(domain, type, &block) payload_blocks[[domain, type]] = block end |
#payload_blocks ⇒ Object
23 24 25 |
# File 'lib/roadforest/interface/rdf.rb', line 23 def payload_blocks @payload_blocks ||= {} end |
#payload_for_create(domain = nil, &block) ⇒ Object
62 63 64 |
# 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) ⇒ Object
58 59 60 |
# 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) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# 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 |