Class: ListenBrainz::Base
- Inherits:
-
Dry::Struct
- Object
- Dry::Struct
- ListenBrainz::Base
- Defined in:
- lib/listenbrainz/models/base.rb
Overview
Base class for ListenBrainz models.
Direct Known Subclasses
Artist, Artist::Payload, ArtistMap, ArtistMap::Payload, Listen, Listen::Payload, Listen::TrackMetadata, Listen::TrackMetadata::AdditionalInfo, Listen::TrackMetadata::MBIDMapping, Recording, Recording::Payload, ReleaseGroup, ReleaseGroup::Payload
Instance Method Summary collapse
-
#as_json ⇒ Hash{Symbol => Object}
Returns the model as a ListenBrainz JSON object.
Instance Method Details
#as_json ⇒ Hash{Symbol => Object}
Returns the model as a ListenBrainz JSON object.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/listenbrainz/models/base.rb', line 11 def as_json attributes.transform_values do |value| case value when Array value.map { |item| item.try(:as_json) || item } when Time # HACK: ListenBrainz expects timestamps as Unix timestamps. # # TODO: Embed this in the `Types::Timestamp` class and use # introspection here instead? value.to_i else value.try(:as_json) || value end end end |