Class: Plutonium::UI::Display::Resource

Inherits:
Base
  • Object
show all
Defined in:
lib/plutonium/ui/display/resource.rb

Direct Known Subclasses

Definition::Base::Display

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Component::Behaviour

#around_template

Methods included from Component::Tokens

#classes, #tokens

Methods included from Component::Kit

#BuildActionButton, #BuildActionsDropdown, #BuildBlock, #BuildBreadcrumbs, #BuildBulkActionsToolbar, #BuildColorModeSelector, #BuildDynaFrameContent, #BuildDynaFrameHost, #BuildEmptyCard, #BuildFrameNavigatorPanel, #BuildModalCentered, #BuildModalSlideover, #BuildPageHeader, #BuildPanel, #BuildRowActionsDropdown, #BuildSkeletonTable, #BuildTabList, #BuildTableFilterPills, #BuildTableInfo, #BuildTablePagination, #BuildTableScopesBar, #BuildTableScopesPills, #BuildTableSearchBar, #BuildTableToolbar, #BuildTableViewSwitcher, #method_missing, #respond_to_missing?

Constructor Details

#initialize(resource_fields:, resource_associations:, resource_definition:) ⇒ Resource

Returns a new instance of Resource.



9
10
11
12
13
14
# File 'lib/plutonium/ui/display/resource.rb', line 9

def initialize(*, resource_fields:, resource_associations:, resource_definition:, **, &)
  super(*, **, &)
  @resource_fields = resource_fields
  @resource_associations = resource_associations
  @resource_definition = resource_definition
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Plutonium::UI::Component::Kit

Instance Attribute Details

#resource_associationsObject (readonly)

Returns the value of attribute resource_associations.



7
8
9
# File 'lib/plutonium/ui/display/resource.rb', line 7

def resource_associations
  @resource_associations
end

#resource_definitionObject (readonly)

Returns the value of attribute resource_definition.



7
8
9
# File 'lib/plutonium/ui/display/resource.rb', line 7

def resource_definition
  @resource_definition
end

#resource_fieldsObject (readonly)

Returns the value of attribute resource_fields.



7
8
9
# File 'lib/plutonium/ui/display/resource.rb', line 7

def resource_fields
  @resource_fields
end

Instance Method Details

#display_templateObject



24
25
26
27
28
29
30
# File 'lib/plutonium/ui/display/resource.rb', line 24

def display_template
  if associations_present?
    render_tablist_with_details
  else
    render_fields
  end
end

#metadata_fieldsObject

Metadata fields the user is permitted to see — intersection of the definition’s declared metadata with the policy-filtered ‘resource_fields`. Computed lazily so we don’t run the intersection when the resource doesn’t declare any metadata.



20
21
22
# File 'lib/plutonium/ui/display/resource.rb', line 20

def 
  @metadata_fields ||= resource_definition. & resource_fields
end