Module: XTwitterScraper::Internal::Type::Enum Private

Includes:
Converter, Util::SorbetRuntimeSupport
Included in:
Models::AccountRetrieveResponse::Plan, Models::AccountUpdateLocaleParams::Locale, Models::ComposeCreateParams::Body::ComposePrepareRequest::Goal, Models::ComposeCreateParams::Body::ComposeRefineRequest::Goal, Models::ComposeCreateParams::Body::ComposeRefineRequest::MediaType, Models::ComposeCreateResponse::ComposePrepareResult::RadarRecommendation::Source, Models::CreditRetrieveTopupStatusResponse::Status, Models::DraftCreateParams::Goal, Models::DrawExportParams::Format, Models::DrawExportParams::Type, Models::Error::Error::LegacyErrorCode, Models::Error::Error::StructuredError::Code, Models::Error::Error::StructuredError::Type, Models::Event::MonitorType, Models::EventDetail::MonitorType, Models::EventType, Models::ExtractionEstimateCostParams::CollectionStrategy, Models::ExtractionEstimateCostParams::DedupeMode, Models::ExtractionEstimateCostParams::MediaType, Models::ExtractionEstimateCostParams::QueryType, Models::ExtractionEstimateCostParams::Quotes, Models::ExtractionEstimateCostParams::RelationTarget::Relation, Models::ExtractionEstimateCostParams::Replies, Models::ExtractionEstimateCostParams::Retweets, Models::ExtractionEstimateCostParams::Scope, Models::ExtractionEstimateCostParams::Sort, Models::ExtractionEstimateCostParams::Target::UnionMember1::Kind, Models::ExtractionEstimateCostParams::ToolType, Models::ExtractionEstimateCostResponse::Source, Models::ExtractionExportResultsParams::Format, Models::ExtractionJob::Status, Models::ExtractionJob::ToolType, Models::ExtractionListParams::Status, Models::ExtractionListParams::ToolType, Models::ExtractionRetrieveParams::FieldStyle, Models::ExtractionRetrieveParams::OutputMode, Models::ExtractionRetrieveParams::OutputPreset, Models::ExtractionRunParams::CollectionStrategy, Models::ExtractionRunParams::DedupeMode, Models::ExtractionRunParams::MediaType, Models::ExtractionRunParams::QueryType, Models::ExtractionRunParams::Quotes, Models::ExtractionRunParams::RelationTarget::Relation, Models::ExtractionRunParams::Replies, Models::ExtractionRunParams::Retweets, Models::ExtractionRunParams::Scope, Models::ExtractionRunParams::Sort, Models::ExtractionRunParams::Target::UnionMember1::Kind, Models::ExtractionRunParams::ToolType, Models::GuestWalletCreateResponse::Authorization::Header, Models::GuestWalletCreateResponse::Authorization::Scheme, Models::GuestWalletCreateResponse::Status, Models::GuestWalletRetrieveStatusResponse::LatestPurchase::Status, Models::GuestWalletRetrieveStatusResponse::PollAfterSeconds, Models::GuestWalletRetrieveStatusResponse::Status, Models::GuestWalletTopupResponse::Authorization::Header, Models::GuestWalletTopupResponse::Authorization::Scheme, Models::GuestWalletTopupResponse::CredentialNotice, Models::GuestWalletTopupResponse::Status, Models::Monitor::PausedReason, Models::RadarItem::Category, Models::RadarItem::Metadata::SourceFormat, Models::RadarItem::Source, Models::RadarRetrieveTrendingTopicsParams::Category, Models::RadarRetrieveTrendingTopicsParams::Source, Models::SubscribeCreateParams::Tier, Models::SubscribeCreateResponse::Status, Models::Support::TicketCreateResponse::Attachment::Status, Models::Support::TicketListResponse::Ticket::Status, Models::Support::TicketReplyResponse::Attachment::Status, Models::Support::TicketRetrieveResponse::Message::Attachment::ContentType, Models::Support::TicketRetrieveResponse::Message::Attachment::Kind, Models::Support::TicketRetrieveResponse::Message::Attachment::Status, Models::Support::TicketRetrieveResponse::Message::Sender, Models::Support::TicketRetrieveResponse::Status, Models::Support::TicketUpdateParams::Status, Models::Support::TicketUpdateResponse::Status, Models::TweetMedia::Type, Models::Webhook::DeliveryStatus, Models::X::AccountConnectionAttemptRetrieveResponse::Failed::Object, Models::X::AccountConnectionAttemptRetrieveResponse::Failed::Status, Models::X::AccountConnectionAttemptRetrieveResponse::Pending::Object, Models::X::AccountConnectionAttemptRetrieveResponse::Pending::Status, Models::X::AccountConnectionAttemptRetrieveResponse::RequiresEmailCode::Object, Models::X::AccountConnectionAttemptRetrieveResponse::RequiresEmailCode::Status, Models::X::AccountConnectionAttemptRetrieveResponse::Success::Object, Models::X::AccountConnectionAttemptRetrieveResponse::Success::Status, Models::X::AccountConnectionChallengeSubmitResponse::Health, Models::X::AccountCreateResponse::SanitizedXAccount::Health, Models::X::AccountReauthResponse::Health, Models::X::Communities::JoinCreateResponse::Action, Models::X::Communities::JoinCreateResponse::Billing::Status, Models::X::Communities::JoinCreateResponse::NextAction::Type, Models::X::Communities::JoinCreateResponse::Result::Type, Models::X::Communities::JoinCreateResponse::Status, Models::X::Communities::JoinCreateResponse::Target::Type, Models::X::Communities::JoinDeleteAllResponse::Action, Models::X::Communities::JoinDeleteAllResponse::Billing::Status, Models::X::Communities::JoinDeleteAllResponse::NextAction::Type, Models::X::Communities::JoinDeleteAllResponse::Result::Type, Models::X::Communities::JoinDeleteAllResponse::Status, Models::X::Communities::JoinDeleteAllResponse::Target::Type, Models::X::Communities::TweetListParams::QueryType, Models::X::CommunityCreateResponse::Action, Models::X::CommunityCreateResponse::Billing::Status, Models::X::CommunityCreateResponse::NextAction::Type, Models::X::CommunityCreateResponse::Result::Type, Models::X::CommunityCreateResponse::Status, Models::X::CommunityCreateResponse::Target::Type, Models::X::CommunityDeleteResponse::Action, Models::X::CommunityDeleteResponse::Billing::Status, Models::X::CommunityDeleteResponse::NextAction::Type, Models::X::CommunityDeleteResponse::Result::Type, Models::X::CommunityDeleteResponse::Status, Models::X::CommunityDeleteResponse::Target::Type, Models::X::CommunityRetrieveSearchParams::QueryType, Models::X::DmSendResponse::Action, Models::X::DmSendResponse::Billing::Status, Models::X::DmSendResponse::NextAction::Type, Models::X::DmSendResponse::Result::Type, Models::X::DmSendResponse::Status, Models::X::DmSendResponse::Target::Type, Models::X::MediaUploadResponse::Action, Models::X::MediaUploadResponse::Billing::Status, Models::X::MediaUploadResponse::NextAction::Type, Models::X::MediaUploadResponse::Result::Type, Models::X::MediaUploadResponse::Status, Models::X::MediaUploadResponse::Target::Type, Models::X::ProfileUpdateAvatarResponse::Action, Models::X::ProfileUpdateAvatarResponse::Billing::Status, Models::X::ProfileUpdateAvatarResponse::NextAction::Type, Models::X::ProfileUpdateAvatarResponse::Result::Type, Models::X::ProfileUpdateAvatarResponse::Status, Models::X::ProfileUpdateAvatarResponse::Target::Type, Models::X::ProfileUpdateBannerResponse::Action, Models::X::ProfileUpdateBannerResponse::Billing::Status, Models::X::ProfileUpdateBannerResponse::NextAction::Type, Models::X::ProfileUpdateBannerResponse::Result::Type, Models::X::ProfileUpdateBannerResponse::Status, Models::X::ProfileUpdateBannerResponse::Target::Type, Models::X::ProfileUpdateResponse::Action, Models::X::ProfileUpdateResponse::Billing::Status, Models::X::ProfileUpdateResponse::NextAction::Type, Models::X::ProfileUpdateResponse::Result::Type, Models::X::ProfileUpdateResponse::Status, Models::X::ProfileUpdateResponse::Target::Type, Models::X::TweetCreateResponse::Action, Models::X::TweetCreateResponse::Billing::Status, Models::X::TweetCreateResponse::NextAction::Type, Models::X::TweetCreateResponse::Result::Type, Models::X::TweetCreateResponse::Status, Models::X::TweetCreateResponse::Target::Type, Models::X::TweetDeleteResponse::Action, Models::X::TweetDeleteResponse::Billing::Status, Models::X::TweetDeleteResponse::NextAction::Type, Models::X::TweetDeleteResponse::Result::Type, Models::X::TweetDeleteResponse::Status, Models::X::TweetDeleteResponse::Target::Type, Models::X::TweetGetQuotesParams::MediaType, Models::X::TweetGetQuotesParams::Quotes, Models::X::TweetGetQuotesParams::Replies, Models::X::TweetGetQuotesParams::Retweets, Models::X::TweetGetRepliesParams::MediaType, Models::X::TweetGetRepliesParams::Mode, Models::X::TweetGetRepliesParams::Quotes, Models::X::TweetGetRepliesParams::Replies, Models::X::TweetGetRepliesParams::Retweets, Models::X::TweetGetRepliesParams::Scope, Models::X::TweetGetRepliesParams::Sort, Models::X::TweetGetRepliesResponse::Diagnostic::StrategiesAttempted::StopReason, Models::X::TweetGetThreadParams::MediaType, Models::X::TweetGetThreadParams::Quotes, Models::X::TweetGetThreadParams::Replies, Models::X::TweetGetThreadParams::Retweets, Models::X::TweetSearchParams::MediaType, Models::X::TweetSearchParams::Mode, Models::X::TweetSearchParams::QueryType, Models::X::TweetSearchParams::Quotes, Models::X::TweetSearchParams::Replies, Models::X::TweetSearchParams::Retweets, Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::QueryType, Models::X::TweetSearchResponse::TweetSearchCoverageResponse::Diagnostic::Strategy::StopReason, Models::X::TweetSearchResponse::TweetSearchCoverageResponse::HasNextPage, Models::X::TweetSearchResponse::TweetSearchCoverageResponse::NextCursor, Models::X::Tweets::LikeCreateResponse::Action, Models::X::Tweets::LikeCreateResponse::Billing::Status, Models::X::Tweets::LikeCreateResponse::NextAction::Type, Models::X::Tweets::LikeCreateResponse::Result::Type, Models::X::Tweets::LikeCreateResponse::Status, Models::X::Tweets::LikeCreateResponse::Target::Type, Models::X::Tweets::LikeDeleteResponse::Action, Models::X::Tweets::LikeDeleteResponse::Billing::Status, Models::X::Tweets::LikeDeleteResponse::NextAction::Type, Models::X::Tweets::LikeDeleteResponse::Result::Type, Models::X::Tweets::LikeDeleteResponse::Status, Models::X::Tweets::LikeDeleteResponse::Target::Type, Models::X::Tweets::RetweetCreateResponse::Action, Models::X::Tweets::RetweetCreateResponse::Billing::Status, Models::X::Tweets::RetweetCreateResponse::NextAction::Type, Models::X::Tweets::RetweetCreateResponse::Result::Type, Models::X::Tweets::RetweetCreateResponse::Status, Models::X::Tweets::RetweetCreateResponse::Target::Type, Models::X::Tweets::RetweetDeleteResponse::Action, Models::X::Tweets::RetweetDeleteResponse::Billing::Status, Models::X::Tweets::RetweetDeleteResponse::NextAction::Type, Models::X::Tweets::RetweetDeleteResponse::Result::Type, Models::X::Tweets::RetweetDeleteResponse::Status, Models::X::Tweets::RetweetDeleteResponse::Target::Type, Models::X::UserRemoveFollowerResponse::Action, Models::X::UserRemoveFollowerResponse::Billing::Status, Models::X::UserRemoveFollowerResponse::NextAction::Type, Models::X::UserRemoveFollowerResponse::Result::Type, Models::X::UserRemoveFollowerResponse::Status, Models::X::UserRemoveFollowerResponse::Target::Type, Models::X::UserRetrieveFollowersParams::Mode, Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason, Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::HasNextPage, Models::X::UserRetrieveFollowersResponse::UserListCoverageResponse::NextCursor, Models::X::UserRetrieveFollowingParams::Mode, Models::X::UserRetrieveFollowingResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason, Models::X::UserRetrieveFollowingResponse::UserListCoverageResponse::HasNextPage, Models::X::UserRetrieveFollowingResponse::UserListCoverageResponse::NextCursor, Models::X::UserRetrieveLikesParams::MediaType, Models::X::UserRetrieveLikesParams::Quotes, Models::X::UserRetrieveLikesParams::Replies, Models::X::UserRetrieveLikesParams::Retweets, Models::X::UserRetrieveMediaParams::MediaType, Models::X::UserRetrieveMediaParams::Quotes, Models::X::UserRetrieveMediaParams::Replies, Models::X::UserRetrieveMediaParams::Retweets, Models::X::UserRetrieveMentionsParams::MediaType, Models::X::UserRetrieveMentionsParams::Quotes, Models::X::UserRetrieveMentionsParams::Replies, Models::X::UserRetrieveMentionsParams::Retweets, Models::X::UserRetrieveRepliesParams::MediaType, Models::X::UserRetrieveRepliesParams::Quotes, Models::X::UserRetrieveRepliesParams::Replies, Models::X::UserRetrieveRepliesParams::Retweets, Models::X::UserRetrieveTweetsParams::MediaType, Models::X::UserRetrieveTweetsParams::Quotes, Models::X::UserRetrieveTweetsParams::Replies, Models::X::UserRetrieveTweetsParams::Retweets, Models::X::UserRetrieveVerifiedFollowersParams::Mode, Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::Diagnostic::Strategy::StopReason, Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::HasNextPage, Models::X::UserRetrieveVerifiedFollowersResponse::UserListCoverageResponse::NextCursor, Models::X::Users::FollowCreateResponse::Action, Models::X::Users::FollowCreateResponse::Billing::Status, Models::X::Users::FollowCreateResponse::NextAction::Type, Models::X::Users::FollowCreateResponse::Result::Type, Models::X::Users::FollowCreateResponse::Status, Models::X::Users::FollowCreateResponse::Target::Type, Models::X::Users::FollowDeleteAllResponse::Action, Models::X::Users::FollowDeleteAllResponse::Billing::Status, Models::X::Users::FollowDeleteAllResponse::NextAction::Type, Models::X::Users::FollowDeleteAllResponse::Result::Type, Models::X::Users::FollowDeleteAllResponse::Status, Models::X::Users::FollowDeleteAllResponse::Target::Type, Models::X::WriteActionRetrieveResponse::Action, Models::X::WriteActionRetrieveResponse::Billing::Status, Models::X::WriteActionRetrieveResponse::NextAction::Type, Models::X::WriteActionRetrieveResponse::Result::Type, Models::X::WriteActionRetrieveResponse::Status, Models::X::WriteActionRetrieveResponse::Target::Type, Models::X::XAccount::Health, Models::X::XAccountDetail::Health, Models::XGetNotificationsParams::Type
Defined in:
lib/x_twitter_scraper/internal/type/enum.rb,
sig/x_twitter_scraper/internal/type/enum.rbs

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

A value from among a specified list of options. OpenAPI enum values map to Ruby values in the SDK as follows:

  1. boolean => true | false
  2. integer => Integer
  3. float => Float
  4. string => Symbol

We can therefore convert string values to Symbols, but can't convert other values safely.

Examples:

# `event_type` is a `XTwitterScraper::EventType`
case event_type
when XTwitterScraper::EventType::TWEET_NEW
  # ...
when XTwitterScraper::EventType::TWEET_REPLY
  # ...
when XTwitterScraper::EventType::TWEET_RETWEET
  # ...
else
  puts(event_type)
end
case event_type
in :"tweet.new"
  # ...
in :"tweet.reply"
  # ...
in :"tweet.retweet"
  # ...
else
  puts(event_type)
end

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, to_sorbet_type

Methods included from Converter

coerce, dump, inspect, meta_info, new_coerce_state, type_info

Class Method Details

.values::Array[(nil | bool | Integer | Float | Symbol)]

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (::Array[(nil | bool | Integer | Float | Symbol)])


12
# File 'sig/x_twitter_scraper/internal/type/enum.rbs', line 12

def self.values: -> ::Array[(nil | bool | Integer | Float | Symbol)]

Instance Method Details

#==(other) ⇒ Boolean

Parameters:

  • other (Object)

Returns:



68
69
70
71
72
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 68

def ==(other)
  # rubocop:disable Style/CaseEquality
  XTwitterScraper::Internal::Type::Enum === other && other.values.to_set == values.to_set
  # rubocop:enable Style/CaseEquality
end

#===(other) ⇒ Boolean

Parameters:

  • other (Object)

Returns:



61
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 61

def ===(other) = values.include?(other)

#coerce(value, state:) ⇒ Symbol, Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Unlike primitives, Enum validates membership.

Parameters:

  • value (String, Symbol, Object)
  • state (Hash{Symbol=>Object})

    .

    @option state [Boolean] :translate_names

    @option state [Boolean] :strictness

    @option state [HashSymbol=>Object] :exactness

    @option state [Class] :error

    @option state [Integer] :branched

Returns:

  • (Symbol, Object)


98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 98

def coerce(value, state:)
  exactness = state.fetch(:exactness)
  val = value.is_a?(String) ? value.to_sym : value

  if values.include?(val)
    exactness[:yes] += 1
    val
  elsif values.first&.class == val.class
    exactness[:maybe] += 1
    value
  else
    exactness[:no] += 1
    state[:error] = TypeError.new("#{value.class} can't be coerced into #{self}")
    value
  end
end

#dump(value, state:) ⇒ Symbol, Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • value (Symbol, Object)
  • state (Hash{Symbol=>Object})

    .

    @option state [Boolean] :can_retry

Returns:

  • (Symbol, Object)


# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 115

#hashInteger

Returns:

  • (Integer)


77
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 77

def hash = values.to_set.hash

#inspect(depth: 0) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • depth (Integer) (defaults to: 0)
  • depth: (Integer) (defaults to: 0)

Returns:

  • (String)


146
147
148
149
150
151
152
153
154
155
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 146

def inspect(depth: 0)
  if depth.positive?
    return is_a?(Module) ? super() : self.class.name
  end

  members = values.map { XTwitterScraper::Internal::Type::Converter.inspect(_1, depth: depth.succ) }
  prefix = is_a?(Module) ? name : self.class.name

  "#{prefix}[#{members.join(' | ')}]"
end

#to_sorbet_typeObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Object)


129
130
131
132
133
134
135
136
137
138
139
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 129

def to_sorbet_type
  types = values.map { XTwitterScraper::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) }.uniq
  case types
  in []
    T.noreturn
  in [type]
    type
  else
    T.any(*types)
  end
end

#valuesArray<NilClass, Boolean, Integer, Float, Symbol>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

All of the valid Symbol values for this enum.

Returns:

  • (Array<NilClass, Boolean, Integer, Float, Symbol>)


54
# File 'lib/x_twitter_scraper/internal/type/enum.rb', line 54

def values = constants.map { const_get(_1) }