Class: ProductTaxonomy::Serializers::Disclosure::Dist::TxtSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/product_taxonomy/models/serializers/disclosure/dist/txt_serializer.rb

Class Method Summary collapse

Class Method Details

.serialize(disclosure, padding: 0, locale: "en") ⇒ String

Parameters:

  • disclosure (Disclosure)
  • padding (Integer) (defaults to: 0)

    The padding to use for the GID.

  • locale (String) (defaults to: "en")

    The locale to use for localized disclosures.

Returns:

  • (String)


32
33
34
# File 'lib/product_taxonomy/models/serializers/disclosure/dist/txt_serializer.rb', line 32

def serialize(disclosure, padding: 0, locale: "en")
  "#{disclosure.gid.ljust(padding)} : #{disclosure.name(locale:)}"
end

.serialize_all(version:, locale: "en", padding: longest_gid_length) ⇒ String

Returns The formatted text output with header and disclosures.

Parameters:

  • version (String)

    The version to include in the output

  • locale (String) (defaults to: "en")

    The locale to use for localized disclosures

  • padding (Integer) (defaults to: longest_gid_length)

    The padding to use for the GID

Returns:

  • (String)

    The formatted text output with header and disclosures



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/product_taxonomy/models/serializers/disclosure/dist/txt_serializer.rb', line 13

def serialize_all(version:, locale: "en", padding: longest_gid_length)
  header = <<~HEADER
    # Shopify Product Taxonomy - Disclosures: #{version}
    # Format: {GID} : {Disclosure name}

  HEADER

  disclosures_txt = ProductTaxonomy::Disclosure
    .all
    .map { serialize(_1, padding:, locale:) }
    .join("\n")

  header + disclosures_txt
end