Module: ProductTaxonomy::Serializers::Disclosure::Data::DataSerializer

Defined in:
lib/product_taxonomy/models/serializers/disclosure/data/data_serializer.rb

Constant Summary collapse

OPTIONAL_KEYS =

Keys that only appear on some leaf entries in the hand-authored data file. They are omitted (rather than serialized as nil) so dump_disclosures output matches the authored file shape.

["jurisdictions", "display_preferences"].freeze

Class Method Summary collapse

Class Method Details

.serialize(disclosure) ⇒ Hash

Returns Hash containing the disclosure data.

Parameters:

  • disclosure (Disclosure)

    The disclosure to serialize

Returns:

  • (Hash)

    Hash containing the disclosure data



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/product_taxonomy/models/serializers/disclosure/data/data_serializer.rb', line 21

def serialize(disclosure)
  data = {
    "id" => disclosure.id,
    "public_id" => disclosure.public_id,
    "parent_public_id" => disclosure.parent_public_id,
    "name" => disclosure.name,
    "internal_label" => disclosure.internal_label,
    "description" => disclosure.description,
    "jurisdictions" => disclosure.jurisdictions,
    "legal_citation" => disclosure.legal_citation,
    "symbol" => disclosure.symbol,
    "display_requirements" => disclosure.display_requirements,
    "display_preferences" => disclosure.display_preferences,
    "title" => disclosure.title,
    "content" => disclosure.content,
    "source" => disclosure.source,
    "disclosure_attributes" => disclosure.disclosure_attributes,
    "disclosure_attribute_values" => disclosure.disclosure_attribute_values,
  }
  OPTIONAL_KEYS.each { data.delete(_1) if data[_1].nil? }
  data
end

.serialize_allArray<Hash>

Returns Array of serialized disclosure data.

Returns:

  • (Array<Hash>)

    Array of serialized disclosure data



10
11
12
# File 'lib/product_taxonomy/models/serializers/disclosure/data/data_serializer.rb', line 10

def serialize_all
  ProductTaxonomy::Disclosure.all.sort_by(&:id).map { serialize(_1) }
end