Module: Crystalline::MetadataFields
- Included in:
- XapiScraper::Models::Components::AccountVerifyModel, XapiScraper::Models::Components::AccountVerifyResponse, XapiScraper::Models::Components::AdvancedSearchCursorQuery, XapiScraper::Models::Components::AdvancedSearchCursorResponse, XapiScraper::Models::Components::ArticleBlock, XapiScraper::Models::Components::ArticleBlockRange, XapiScraper::Models::Components::BlockUserResponse, XapiScraper::Models::Components::BookmarkBody, XapiScraper::Models::Components::CashtagsQuery, XapiScraper::Models::Components::CommunityModel, XapiScraper::Models::Components::CommunityTweetsResponse, XapiScraper::Models::Components::Context, XapiScraper::Models::Components::ConversationV3Model, XapiScraper::Models::Components::CreateThreadData, XapiScraper::Models::Components::CreateThreadQuery, XapiScraper::Models::Components::CreateThreadResponse, XapiScraper::Models::Components::CreateThreadTweetItem, XapiScraper::Models::Components::DMStatusModelV2, XapiScraper::Models::Components::DMStatusResponseV2, XapiScraper::Models::Components::DeleteBookmarkQuery, XapiScraper::Models::Components::DeleteRetweetQuery, XapiScraper::Models::Components::DeleteTweetQuery, XapiScraper::Models::Components::DeleteTweetResponse, XapiScraper::Models::Components::DmHistoryV3Data, XapiScraper::Models::Components::FollowUserQuery, XapiScraper::Models::Components::FollowersFollowingV3Query, XapiScraper::Models::Components::GetAllTweetsRepliesCursorQuery, XapiScraper::Models::Components::GetAllTweetsRepliesCursorResponse, XapiScraper::Models::Components::GetCommunityMembersCursorQuery, XapiScraper::Models::Components::GetCommunityMembersCursorResponse, XapiScraper::Models::Components::GetCommunityResponse, XapiScraper::Models::Components::GetCommunityTweetsCursorQuery, XapiScraper::Models::Components::GetCommunityTweetsCursorResponse, XapiScraper::Models::Components::GetConversationsV3Query, XapiScraper::Models::Components::GetConversationsV3Response, XapiScraper::Models::Components::GetDmHistoryV3Query, XapiScraper::Models::Components::GetDmHistoryV3Response, XapiScraper::Models::Components::GetDmMediaV3Data, XapiScraper::Models::Components::GetDmMediaV3Query, XapiScraper::Models::Components::GetDmMediaV3Response, XapiScraper::Models::Components::GetListMembersCursorQuery, XapiScraper::Models::Components::GetListMembersCursorResponse, XapiScraper::Models::Components::GetListTweetsCursorQuery, XapiScraper::Models::Components::GetListTweetsCursorResponse, XapiScraper::Models::Components::GetQuotesCursorQuery, XapiScraper::Models::Components::GetQuotesCursorResponse, XapiScraper::Models::Components::GetQuotesQuery, XapiScraper::Models::Components::GetQuotesResponse, XapiScraper::Models::Components::GetRepliesPageQuery, XapiScraper::Models::Components::GetRepliesPageResponse, XapiScraper::Models::Components::GetRetweetersCursorQuery, XapiScraper::Models::Components::GetRetweetersCursorResponse, XapiScraper::Models::Components::GetTweetsByIdResponse, XapiScraper::Models::Components::HashtagsQuery, XapiScraper::Models::Components::LikeActionBody, XapiScraper::Models::Components::ListMembersResponse, XapiScraper::Models::Components::ListModel, XapiScraper::Models::Components::ListSubscribersResponse, XapiScraper::Models::Components::ListTweetsResponse, XapiScraper::Models::Components::Loc, XapiScraper::Models::Components::MediaModel, XapiScraper::Models::Components::MessageModel, XapiScraper::Models::Components::PostTweetData, XapiScraper::Models::Components::PostTweetQuery, XapiScraper::Models::Components::PostTweetResponse, XapiScraper::Models::Components::PostTweetWithoutCookieQuery, XapiScraper::Models::Components::QuoteTweetQuery, XapiScraper::Models::Components::RetweetActionBody, XapiScraper::Models::Components::SearchCommunityQuery, XapiScraper::Models::Components::SearchCommunityResponse, XapiScraper::Models::Components::SearchCommunityTweetsQuery, XapiScraper::Models::Components::SearchListQuery, XapiScraper::Models::Components::SearchListResponse, XapiScraper::Models::Components::SearchResponse, XapiScraper::Models::Components::SearchUserResponse, XapiScraper::Models::Components::Security, XapiScraper::Models::Components::SendDmResponse, XapiScraper::Models::Components::SendDmV3Query, XapiScraper::Models::Components::SentimentAnalysisModel, XapiScraper::Models::Components::SentimentAnalysisQuery, XapiScraper::Models::Components::SentimentAnalysisResponse, XapiScraper::Models::Components::StandardResponse, XapiScraper::Models::Components::StreamModel, XapiScraper::Models::Components::TweetActionResponse, XapiScraper::Models::Components::TweetModel, XapiScraper::Models::Components::TweetThreadByIdBody, XapiScraper::Models::Components::TwitterAccountBasedStandardResponse, XapiScraper::Models::Components::TwitterUserAboutResponse, XapiScraper::Models::Components::TwitterUserAboutStandardResponse, XapiScraper::Models::Components::UnfavoriteTweetQuery, XapiScraper::Models::Components::UnfollowUserQuery, XapiScraper::Models::Components::UnfollowUserResponse, XapiScraper::Models::Components::UrlModel, XapiScraper::Models::Components::UserInfo, XapiScraper::Models::Components::UserModel, XapiScraper::Models::Components::UserTimelineFillQuery, XapiScraper::Models::Components::UserTimelinePageQuery, XapiScraper::Models::Components::UserTimelinePageResponse, XapiScraper::Models::Components::UserTimelineResponse, XapiScraper::Models::Components::UserTweetItem, XapiScraper::Models::Components::UsersDetailsResponse, XapiScraper::Models::Components::ValidationError, XapiScraper::Models::Components::VerifiedFollowersData, XapiScraper::Models::Components::VerifiedFollowersResponse, XapiScraper::Models::Components::XArticleModel, XapiScraper::Models::Components::XArticleResponse, XapiScraper::Models::Errors::APIError, XapiScraper::Models::Errors::HTTPValidationError, XapiScraper::Models::Operations::AccountGetBalanceResponse, XapiScraper::Models::Operations::AnalysisSentimentResponse, XapiScraper::Models::Operations::ArticlesFetchResponse, XapiScraper::Models::Operations::ArticlesMarkdownRequest, XapiScraper::Models::Operations::ArticlesMarkdownResponse, XapiScraper::Models::Operations::CommunitiesGetRequest, XapiScraper::Models::Operations::CommunitiesGetResponse, XapiScraper::Models::Operations::CommunitiesMembersPageResponse, XapiScraper::Models::Operations::CommunitiesMembersRequest, XapiScraper::Models::Operations::CommunitiesMembersResponse, XapiScraper::Models::Operations::CommunitiesSearchResponse, XapiScraper::Models::Operations::CommunitiesSearchTweetsResponse, XapiScraper::Models::Operations::CommunitiesTweetsPageResponse, XapiScraper::Models::Operations::CommunitiesTweetsRequest, XapiScraper::Models::Operations::CommunitiesTweetsResponse, XapiScraper::Models::Operations::DmConversationsResponse, XapiScraper::Models::Operations::DmHistoryResponse, XapiScraper::Models::Operations::DmMediaResponse, XapiScraper::Models::Operations::DmSendResponse, XapiScraper::Models::Operations::DmStatusResponse, XapiScraper::Models::Operations::ListsMembersPageResponse, XapiScraper::Models::Operations::ListsMembersRequest, XapiScraper::Models::Operations::ListsMembersResponse, XapiScraper::Models::Operations::ListsSearchResponse, XapiScraper::Models::Operations::ListsSubscribersRequest, XapiScraper::Models::Operations::ListsSubscribersResponse, XapiScraper::Models::Operations::ListsTweetsPageResponse, XapiScraper::Models::Operations::ListsTweetsRequest, XapiScraper::Models::Operations::ListsTweetsResponse, XapiScraper::Models::Operations::SearchAdvancedResponse, XapiScraper::Models::Operations::SearchCashtagsResponse, XapiScraper::Models::Operations::SearchHashtagsResponse, XapiScraper::Models::Operations::TimelinesTweetsAndRepliesPageResponse, XapiScraper::Models::Operations::TimelinesTweetsAndRepliesRequest, XapiScraper::Models::Operations::TimelinesTweetsAndRepliesResponse, XapiScraper::Models::Operations::TimelinesUserPageRequest, XapiScraper::Models::Operations::TimelinesUserPageResponse, XapiScraper::Models::Operations::TimelinesUserRequest, XapiScraper::Models::Operations::TimelinesUserResponse, XapiScraper::Models::Operations::TrendingByCountryRequest, XapiScraper::Models::Operations::TrendingByCountryResponse, XapiScraper::Models::Operations::TrendingContentsRequest, XapiScraper::Models::Operations::TrendingContentsResponse, XapiScraper::Models::Operations::TrendingCountriesResponse, XapiScraper::Models::Operations::TrendingTopicsResponse, XapiScraper::Models::Operations::TrendingTweetsRequest, XapiScraper::Models::Operations::TrendingTweetsResponse, XapiScraper::Models::Operations::TweetsActionsBookmarkRequest, XapiScraper::Models::Operations::TweetsActionsBookmarkResponse, XapiScraper::Models::Operations::TweetsActionsCreateResponse, XapiScraper::Models::Operations::TweetsActionsCreateThreadResponse, XapiScraper::Models::Operations::TweetsActionsCreateWithoutCookieResponse, XapiScraper::Models::Operations::TweetsActionsDeleteBatchResponse, XapiScraper::Models::Operations::TweetsActionsLikeRequest, XapiScraper::Models::Operations::TweetsActionsLikeResponse, XapiScraper::Models::Operations::TweetsActionsQuoteResponse, XapiScraper::Models::Operations::TweetsActionsRetweetRequest, XapiScraper::Models::Operations::TweetsActionsRetweetResponse, XapiScraper::Models::Operations::TweetsActionsUnbookmarkRequest, XapiScraper::Models::Operations::TweetsActionsUnbookmarkResponse, XapiScraper::Models::Operations::TweetsActionsUnlikeRequest, XapiScraper::Models::Operations::TweetsActionsUnlikeResponse, XapiScraper::Models::Operations::TweetsActionsUnretweetRequest, XapiScraper::Models::Operations::TweetsActionsUnretweetResponse, XapiScraper::Models::Operations::TweetsDetailResponse, XapiScraper::Models::Operations::TweetsEngagementQuotesPageResponse, XapiScraper::Models::Operations::TweetsEngagementQuotesResponse, XapiScraper::Models::Operations::TweetsEngagementRetweetersPageResponse, XapiScraper::Models::Operations::TweetsEngagementRetweetersRequest, XapiScraper::Models::Operations::TweetsEngagementRetweetersResponse, XapiScraper::Models::Operations::TweetsLookupResponse, XapiScraper::Models::Operations::TweetsRepliesPageRequest, XapiScraper::Models::Operations::TweetsRepliesPageResponse, XapiScraper::Models::Operations::TweetsSimilarRequest, XapiScraper::Models::Operations::TweetsSimilarResponse, XapiScraper::Models::Operations::TweetsThreadResponse, XapiScraper::Models::Operations::UsersFollowResponse, XapiScraper::Models::Operations::UsersFollowersListResponse, XapiScraper::Models::Operations::UsersFollowersVerifiedResponse, XapiScraper::Models::Operations::UsersFollowingListResponse, XapiScraper::Models::Operations::UsersGetAboutRequest, XapiScraper::Models::Operations::UsersGetAboutResponse, XapiScraper::Models::Operations::UsersGetAccountBasedResponse, XapiScraper::Models::Operations::UsersGetByIdsResponse, XapiScraper::Models::Operations::UsersGetByUsernamesResponse, XapiScraper::Models::Operations::UsersGetStatusesResponse, XapiScraper::Models::Operations::UsersSearchRequest, XapiScraper::Models::Operations::UsersSearchResponse, XapiScraper::Models::Operations::UsersUnfollowResponse, XapiScraper::Models::Operations::UsersVerifyAccountResponse
- Defined in:
- lib/crystalline/metadata_fields.rb
Defined Under Namespace
Modules: ClassMethods Classes: Field
Class Method Summary collapse
Instance Method Summary collapse
- #field(field_name) ⇒ Object
- #fields ⇒ Object
- #initialize ⇒ Object
- #marshal_single(field) ⇒ Object
- #to_dict ⇒ Object
- #to_json(*args) ⇒ Object
Class Method Details
.included(base) ⇒ Object
202 203 204 |
# File 'lib/crystalline/metadata_fields.rb', line 202 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#field(field_name) ⇒ Object
210 211 212 213 214 |
# File 'lib/crystalline/metadata_fields.rb', line 210 def field(field_name) fields.each do |f| return f if f.name == field_name end end |
#fields ⇒ Object
206 207 208 |
# File 'lib/crystalline/metadata_fields.rb', line 206 def fields self.class.fields end |
#initialize ⇒ Object
196 197 198 199 200 |
# File 'lib/crystalline/metadata_fields.rb', line 196 def initialize instance = allocate fields.each { |mod| instance.singleton_class.include(mod) } instance.send(:initialize) end |
#marshal_single(field) ⇒ Object
216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/crystalline/metadata_fields.rb', line 216 def marshal_single(field) if field.class.include? ::Crystalline::MetadataFields field.to_dict else if ::Crystalline.needs_string_conversion field ::Crystalline.json_encode field else field end end end |
#to_dict ⇒ Object
228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 |
# File 'lib/crystalline/metadata_fields.rb', line 228 def to_dict result = {} fields.sort_by(&:name).each do |field| = field.[:format_json] required = !.nil? && .include?(:required) is_additional_props = !.nil? && .fetch(:additional_properties, false) if !.nil? && .include?(:letter_case) key = [:letter_case].call(field.name) else key = field.name end f = send(field.name) next if f.nil? && !required result[key] = nil if f.nil? && required # Flatten additional properties into the parent object if is_additional_props && f.is_a?(::Hash) f.each { |k, v| result[k] = marshal_single(v) } elsif f.is_a? ::Array result[key] = f.map { |o| marshal_single(o) } elsif f.is_a? ::Hash result[key] = f.transform_values { |v| marshal_single(v) } else result[key] = marshal_single(f) end end result end |
#to_json(*args) ⇒ Object
259 260 261 |
# File 'lib/crystalline/metadata_fields.rb', line 259 def to_json(*args) JSON.generate(to_dict, *args) end |