Class: Types::BaseEnum
- Inherits:
-
GraphQL::Schema::Enum
- Object
- GraphQL::Schema::Enum
- Types::BaseEnum
- Defined in:
- app/graphql/types/base_enum.rb
Direct Known Subclasses
AccessLevelEnum, Admin::Analytics::UsageTrends::MeasurementIdentifierEnum, AlertManagement::DomainFilterEnum, AlertManagement::IntegrationTypeEnum, AlertManagement::SeverityEnum, AlertManagement::StatusEnum, AssigneeWildcardIdEnum, AvailabilityEnum, Types::BlobViewers::TypeEnum, Ci::CodeQualityDegradationSeverityEnum, Ci::Config::IncludeTypeEnum, Ci::Config::StatusEnum, Ci::FreezePeriodStatusEnum, Ci::GroupVariablesSortEnum, Ci::JobArtifactFileTypeEnum, Ci::JobFailureReasonEnum, Ci::JobKindEnum, Ci::JobStatusEnum, Ci::JobTokenScope::DirectionEnum, Ci::PipelineConfigSourceEnum, Ci::PipelineMergeRequestEventTypeEnum, Ci::PipelineScheduleStatusEnum, Ci::PipelineScopeEnum, Ci::PipelineStatusEnum, Ci::RunnerAccessLevelEnum, Ci::RunnerJobExecutionStatusEnum, Ci::RunnerMembershipFilterEnum, Ci::RunnerSortEnum, Ci::RunnerStatusEnum, Ci::RunnerTypeEnum, Ci::RunnerUpgradeStatusEnum, Ci::TestCaseStatusEnum, Ci::VariableSortEnum, Ci::VariableTypeEnum, CiConfiguration::Sast::UiComponentSizeEnum, Clusters::AgentTokenStatusEnum, CommitActionModeEnum, CommitEncodingEnum, CommitSignatures::VerificationStatusEnum, ContainerExpirationPolicyCadenceEnum, ContainerExpirationPolicyKeepEnum, ContainerExpirationPolicyOlderThanEnum, ContainerRepositoryCleanupStatusEnum, ContainerRepositoryStatusEnum, ContainerRepositoryTagsSortEnum, CustomerRelations::ContactStateEnum, CustomerRelations::OrganizationStateEnum, DataVisualizationPalette::ColorEnum, DataVisualizationPalette::WeightEnum, DeploymentStatusEnum, DeploymentTierEnum, DesignManagement::DesignCollectionCopyStateEnum, DesignManagement::DesignVersionEventEnum, ErrorTracking::SentryErrorStatusEnum, EventActionEnum, GroupMemberRelationEnum, GroupReleaseSortEnum, IncidentManagement::EscalationStatusEnum, IssuableSearchableFieldEnum, IssuableSeverityEnum, IssuableStateEnum, IssuableSubscriptionEventEnum, IssueStateEventEnum, IssueTypeEnum, MemberAccessLevelEnum, MergeRequestReviewStateEnum, MergeRequestStateEventEnum, MergeRequests::DetailedMergeStatusEnum, MergeRequests::MergeStatusEnum, MergeStrategyEnum, MilestoneStateEnum, MilestoneWildcardIdEnum, MutationOperationModeEnum, NegatedMilestoneWildcardIdEnum, Notes::PositionTypeEnum, Organizations::GroupSortEnum, Packages::Cleanup::KeepDuplicatedPackageFilesEnum, Packages::Conan::MetadatumFileTypeEnum, Packages::PackageDependencyTypeEnum, Packages::PackageSortEnum, Packages::PackageStatusEnum, Packages::PackageTypeEnum, PermissionTypes::GroupEnum, ProjectMemberRelationEnum, Projects::NamespaceProjectSortEnum, Projects::ServiceTypeEnum, RefTypeEnum, RelativePositionTypeEnum, ReleaseAssetLinkTypeEnum, ReleaseSortEnum, ReleaseTagWildcardIdEnum, Security::CodequalityReportsComparer::StatusEnum, Security::ReportTypeEnum, ShaFormatEnum, Snippets::BlobActionEnum, Snippets::TypeEnum, Snippets::VisibilityScopesEnum, SortDirectionEnum, SortEnum, TodoActionEnum, TodoStateEnum, TodoTargetEnum, Tree::TypeEnum, UserCalloutFeatureNameEnum, UserStateEnum, VisibilityLevelsEnum, VisibilityPipelineIdTypeEnum, WorkItemStateEnum, WorkItems::AvailableExportFieldsEnum, WorkItems::AwardEmojiUpdateActionEnum, WorkItems::NotesFilterTypeEnum, WorkItems::RelatedLinkTypeEnum, WorkItems::StateEventEnum, WorkItems::TodoUpdateActionEnum, WorkItems::WidgetTypeEnum
Defined Under Namespace
Classes: CustomValue
Class Method Summary collapse
- .authorization ⇒ Object
- .authorize(*abilities) ⇒ Object
- .authorized?(object, context) ⇒ Boolean
-
.declarative_enum(enum_mod, use_name: true, use_description: true) ⇒ Object
Registers enum definition by the given DeclarativeEnum module.
-
.enum ⇒ Object
Returns an indifferent access hash with the key being the downcased name of the attribute and the value being the Ruby value (either the explicit ‘value` passed or the same as the value attr).
-
.from_rails_enum(enum, description:) ⇒ Object
Helper to define an enum member for each element of a Rails AR enum.
- .value(*args, **kwargs, &block) ⇒ Object
Class Method Details
.authorization ⇒ Object
65 66 67 |
# File 'app/graphql/types/base_enum.rb', line 65 def @authorization ||= ::Gitlab::Graphql::Authorize::ObjectAuthorization.new() end |
.authorize(*abilities) ⇒ Object
69 70 71 |
# File 'app/graphql/types/base_enum.rb', line 69 def (*abilities) @abilities = abilities end |
.authorized?(object, context) ⇒ Boolean
73 74 75 |
# File 'app/graphql/types/base_enum.rb', line 73 def (object, context) .ok?(object, context[:current_user]) end |
.declarative_enum(enum_mod, use_name: true, use_description: true) ⇒ Object
Registers enum definition by the given DeclarativeEnum module
Example:
class MyEnum < BaseEnum
declarative_enum MyDeclarativeEnum
end
Disabling descriptions rubocop for a false positive here rubocop: disable Graphql/Descriptions
34 35 36 37 38 39 40 41 |
# File 'app/graphql/types/base_enum.rb', line 34 def declarative_enum(enum_mod, use_name: true, use_description: true) graphql_name(enum_mod.name) if use_name description(enum_mod.description) if use_description enum_mod.definition.each do |key, content| value(key.to_s.upcase, value: key.to_s, description: content[:description]) end end |
.enum ⇒ Object
Returns an indifferent access hash with the key being the downcased name of the attribute and the value being the Ruby value (either the explicit ‘value` passed or the same as the value attr).
61 62 63 |
# File 'app/graphql/types/base_enum.rb', line 61 def enum @enum_values ||= {}.with_indifferent_access end |
.from_rails_enum(enum, description:) ⇒ Object
Helper to define an enum member for each element of a Rails AR enum
45 46 47 48 49 50 51 |
# File 'app/graphql/types/base_enum.rb', line 45 def from_rails_enum(enum, description:) enum.each_key do |name| value name.to_s.upcase, value: name, description: format(description, name: name) end end |
.value(*args, **kwargs, &block) ⇒ Object
53 54 55 56 57 |
# File 'app/graphql/types/base_enum.rb', line 53 def value(*args, **kwargs, &block) enum[args[0].downcase] = kwargs[:value] || args[0] super(*args, **kwargs, &block) end |