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, Analytics::CycleAnalytics::ValueStreams::StageEventEnum, Analytics::CycleAnalytics::ValueStreams::StageItemsSortEnum, AssigneeWildcardIdEnum, AvailabilityEnum, Types::BlobViewers::TypeEnum, Ci::AnalyticsJobStatusEnum, Ci::Catalog::ResourceScopeEnum, Ci::Catalog::ResourceSortEnum, Ci::Catalog::Resources::Components::InputTypeEnum, Ci::Catalog::Resources::VerificationLevelEnum, Ci::CodeQualityDegradationSeverityEnum, Ci::Config::IncludeTypeEnum, Ci::Config::StatusEnum, Ci::FreezePeriodStatusEnum, Ci::GroupVariablesSortEnum, Ci::JobArtifactFileTypeEnum, Ci::JobFailureReasonEnum, Ci::JobKindEnum, Ci::JobStatusEnum, Ci::JobTokenScope::DirectionEnum, Ci::JobTokenScope::PoliciesEnum, Ci::JobTokenScope::PolicyCategoriesEnum, Ci::JobTokenScope::PolicyTypesEnum, Ci::PipelineConfigSourceEnum, Ci::PipelineMergeRequestEventTypeEnum, Ci::PipelineScheduleSortEnum, Ci::PipelineScheduleStatusEnum, Ci::PipelineScopeEnum, Ci::PipelineStatusEnum, Ci::RunnerAccessLevelEnum, Ci::RunnerCreationMethodEnum, 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, ContainerRegistry::ContainerRepositoryCleanupStatusEnum, ContainerRegistry::ContainerRepositoryStatusEnum, ContainerRegistry::ContainerRepositoryTagsSortEnum, ContainerRegistry::Protection::RuleAccessLevelEnum, CustomerRelations::ContactStateEnum, CustomerRelations::OrganizationStateEnum, DataVisualizationPalette::ColorEnum, DataVisualizationPalette::WeightEnum, DeploymentStatusEnum, DeploymentTierEnum, DesignManagement::DesignCollectionCopyStateEnum, DesignManagement::DesignVersionEventEnum, ErrorTracking::SentryErrorStatusEnum, EventActionEnum, ExtensionsMarketplaceOptInStatusEnum, GroupMemberRelationEnum, GroupReleaseSortEnum, Import::ImportSourceEnum, Import::SourceUserSortEnum, Import::SourceUserStatusEnum, IncidentManagement::EscalationStatusEnum, Integrations::IntegrationTypeEnum, IssuableSearchableFieldEnum, IssuableSeverityEnum, IssuableStateEnum, IssuableSubscriptionEventEnum, Issuables::Labels::SearchFieldListEnum, Issuables::SubscriptionStatusEnum, IssueStateEventEnum, IssueTypeEnum, MemberAccessLevelEnum, MergeRequestReviewStateEnum, MergeRequestStateEventEnum, MergeRequests::DetailedMergeStatusEnum, MergeRequests::MergeStatusEnum, MergeRequests::MergeabilityCheckIdentifierEnum, MergeRequests::MergeabilityCheckStatusEnum, MergeStrategyEnum, MilestoneStateEnum, MilestoneWildcardIdEnum, Ml::ModelVersionsOrderByEnum, Ml::ModelsOrderByEnum, MutationOperationModeEnum, NegatedMilestoneWildcardIdEnum, Notes::PositionTypeEnum, Organizations::GroupsProjectsDisplayEnum, Organizations::OrganizationUserAccessLevelEnum, Packages::Cleanup::KeepDuplicatedPackageFilesEnum, Packages::Conan::MetadatumFileTypeEnum, Packages::PackageDependencyTypeEnum, Packages::PackageSortEnum, Packages::PackageStatusEnum, Packages::PackageTypeEnum, Packages::Protection::RuleAccessLevelEnum, Packages::Protection::RulePackageTypeEnum, PermissionTypes::GroupEnum, PipelineCiSourcesEnum, ProjectFeatureAccessLevelEnum, ProjectMemberRelationEnum, Projects::ArchivedEnum, Projects::NamespaceProjectSortEnum, Projects::ServiceTypeEnum, RefTypeEnum, RelativePositionTypeEnum, ReleaseAssetLinkTypeEnum, ReleaseSortEnum, ReleaseTagWildcardIdEnum, ReviewerWildcardIdEnum, Security::CodequalityReportsComparer::ReportGenerationStatusEnum, Security::CodequalityReportsComparer::StatusEnum, Security::ReportTypeEnum, ShaFormatEnum, Snippets::BlobActionEnum, Snippets::TypeEnum, Snippets::VisibilityScopesEnum, SortDirectionEnum, SortEnum, TodoActionEnum, TodoStateEnum, TodoTargetEnum, Tree::TypeEnum, UserCalloutFeatureNameEnum, UserStateEnum, Users::TypeEnum, 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
57 58 59 |
# File 'app/graphql/types/base_enum.rb', line 57 def @authorization ||= ::Gitlab::Graphql::Authorize::ObjectAuthorization.new() end |
.authorize(*abilities) ⇒ Object
61 62 63 |
# File 'app/graphql/types/base_enum.rb', line 61 def (*abilities) @abilities = abilities end |
.authorized?(object, context) ⇒ Boolean
65 66 67 |
# File 'app/graphql/types/base_enum.rb', line 65 def (object, context) .ok?(object, context[:current_user], scope_validator: context[:scope_validator]) 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
27 28 29 30 31 32 33 34 |
# File 'app/graphql/types/base_enum.rb', line 27 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).
53 54 55 |
# File 'app/graphql/types/base_enum.rb', line 53 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
37 38 39 40 41 42 43 |
# File 'app/graphql/types/base_enum.rb', line 37 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
45 46 47 48 49 |
# File 'app/graphql/types/base_enum.rb', line 45 def value(*args, **kwargs, &block) enum[args[0].downcase] = kwargs[:value] || args[0] super(*args, **kwargs, &block) end |