Class: LinkedRails::Menus::Item
- Inherits:
-
Object
- Object
- LinkedRails::Menus::Item
- Includes:
- ActiveModel::Model, CallableVariable, LinkedRails::Model
- Defined in:
- app/models/linked_rails/menus/item.rb
Constant Summary
Constants included from LinkedRails::Model::Collections
LinkedRails::Model::Collections::COLLECTION_CUSTOMIZABLE_OPTIONS, LinkedRails::Model::Collections::COLLECTION_OPTIONS, LinkedRails::Model::Collections::COLLECTION_STATIC_OPTIONS
Instance Attribute Summary collapse
-
#action ⇒ Object
writeonly
Sets the attribute action.
-
#href ⇒ Object
writeonly
Sets the attribute href.
-
#image ⇒ Object
writeonly
Sets the attribute image.
-
#iri_base ⇒ Object
writeonly
Sets the attribute iri_base.
-
#item_type ⇒ Object
Returns the value of attribute item_type.
-
#label ⇒ Object
writeonly
Sets the attribute label.
- #menus ⇒ Object
-
#parent ⇒ Object
Returns the value of attribute parent.
-
#resource ⇒ Object
Returns the value of attribute resource.
-
#tag ⇒ Object
Returns the value of attribute tag.
-
#type ⇒ Object
Returns the value of attribute type.
Class Method Summary collapse
Instance Method Summary collapse
- #iri_opts ⇒ Object
- #iri_template ⇒ Object
- #menu_sequence ⇒ Object
- #menu_sequence_iri ⇒ Object
- #rdf_type ⇒ Object
- #route_fragment ⇒ Object
- #route_tag ⇒ Object
Methods included from LinkedRails::Model
Methods included from LinkedRails::Model::Singularable
#root_relative_iri, #root_relative_singular_iri, #singular_iri, #singular_iri?, #singular_iri_opts, #singular_iri_template, #singular_resource?
Methods included from LinkedRails::Model::Serialization
#preview_includes, #show_includes
Methods included from LinkedRails::Model::Menuable
Methods included from LinkedRails::Model::IRI
#anonymous_iri, #anonymous_iri?, #iri, #iri_elements, #reload, #root_relative_iri
Methods included from LinkedRails::Model::Enhancements
Methods included from LinkedRails::Model::Dirty
Methods included from LinkedRails::Model::Collections
#collection_for, #collection_iri, #collection_options_for, #collection_root_relative_iri, #parent_collections
Methods included from LinkedRails::Model::Actionable
#action, #action_list, #action_triples, #actions, #collection_actions, #favorite_actions
Instance Attribute Details
#action=(value) ⇒ Object (writeonly)
Sets the attribute action
11 12 13 |
# File 'app/models/linked_rails/menus/item.rb', line 11 def action=(value) @action = value end |
#href=(value) ⇒ Object (writeonly)
Sets the attribute href
11 12 13 |
# File 'app/models/linked_rails/menus/item.rb', line 11 def href=(value) @href = value end |
#image=(value) ⇒ Object (writeonly)
Sets the attribute image
11 12 13 |
# File 'app/models/linked_rails/menus/item.rb', line 11 def image=(value) @image = value end |
#iri_base=(value) ⇒ Object (writeonly)
Sets the attribute iri_base
11 12 13 |
# File 'app/models/linked_rails/menus/item.rb', line 11 def iri_base=(value) @iri_base = value end |
#item_type ⇒ Object
Returns the value of attribute item_type.
10 11 12 |
# File 'app/models/linked_rails/menus/item.rb', line 10 def item_type @item_type end |
#label=(value) ⇒ Object (writeonly)
Sets the attribute label
11 12 13 |
# File 'app/models/linked_rails/menus/item.rb', line 11 def label=(value) @label = value end |
#menus ⇒ Object
55 56 57 58 59 |
# File 'app/models/linked_rails/menus/item.rb', line 55 def return @menus unless @menus.respond_to?(:call) @menus = parent.instance_exec(&@menus).compact.each { || .parent = self } end |
#parent ⇒ Object
Returns the value of attribute parent.
10 11 12 |
# File 'app/models/linked_rails/menus/item.rb', line 10 def parent @parent end |
#resource ⇒ Object
Returns the value of attribute resource.
10 11 12 |
# File 'app/models/linked_rails/menus/item.rb', line 10 def resource @resource end |
#tag ⇒ Object
Returns the value of attribute tag.
10 11 12 |
# File 'app/models/linked_rails/menus/item.rb', line 10 def tag @tag end |
#type ⇒ Object
Returns the value of attribute type.
10 11 12 |
# File 'app/models/linked_rails/menus/item.rb', line 10 def type @type end |
Class Method Details
.preview_includes ⇒ Object
76 77 78 |
# File 'app/models/linked_rails/menus/item.rb', line 76 def preview_includes [menu_sequence: [members: [menu_sequence: :members]]] end |
.requested_index_resource(params, user_context) ⇒ Object
80 81 82 83 84 85 |
# File 'app/models/linked_rails/menus/item.rb', line 80 def requested_index_resource(params, user_context) parent = parent_from_params(params, user_context) return if parent.blank? parent.try(:menu_sequence) end |
Instance Method Details
#iri_opts ⇒ Object
19 20 21 22 23 24 |
# File 'app/models/linked_rails/menus/item.rb', line 19 def iri_opts parent.iri_opts.merge( tag: route_tag, fragment: route_fragment ) end |
#iri_template ⇒ Object
26 27 28 29 30 31 32 |
# File 'app/models/linked_rails/menus/item.rb', line 26 def iri_template return parent.send(:iri_template) unless parent.is_a?(LinkedRails::Menus::List) return LinkedRails::URITemplate.new("#{iri_base}{/tag}{#fragment}") if iri_base (parent.send(:iri_template), '{/tag}') end |
#menu_sequence ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/models/linked_rails/menus/item.rb', line 34 def return if @menus.nil? @menu_sequence ||= LinkedRails::Sequence.new( -> { }, id: , parent: self, scope: false ) end |
#menu_sequence_iri ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'app/models/linked_rails/menus/item.rb', line 46 def return @menu_sequence_iri if @menu_sequence_iri sequence_iri = iri.dup sequence_iri.path ||= '' sequence_iri.path += '/menu_items' sequence_iri end |
#rdf_type ⇒ Object
61 62 63 |
# File 'app/models/linked_rails/menus/item.rb', line 61 def rdf_type type || Vocab.ontola[:MenuItem] end |
#route_fragment ⇒ Object
65 66 67 68 69 |
# File 'app/models/linked_rails/menus/item.rb', line 65 def route_fragment return if parent.is_a?(LinkedRails::Menus::List) [parent.route_fragment, tag].compact.join('.') end |
#route_tag ⇒ Object
71 72 73 |
# File 'app/models/linked_rails/menus/item.rb', line 71 def route_tag parent.is_a?(LinkedRails::Menus::List) ? tag : parent.route_tag end |