Sha256: 4b2789b127ad10827f13955fa8fa5d7807654f89d898c5970706509f0cd13d69

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

# encoding: UTF-8

module BeerDb::Model

  class BrewerySerializer

    def initialize( brewery )
      @brewery = brewery
    end

    attr_reader :brewery

    def as_json
      ## note: as_json returns record as a hash
      ##   note: NOT yet converted with to_json or JSON.pretty_generate etc.

      beers = []
      brewery.beers.each do |b|
        beers << { key: b.key, title: b.title }
      end

      tags = []
      if brewery.tags.present?
        brewery.tags.each { |tag| tags << tag.key }
      end

      country = {
        key:   brewery.country.key,
        title: brewery.country.title
      }

      data = { key:      brewery.key,
               title:    brewery.title,
               synonyms: brewery.synonyms,
               since:    brewery.since,
               address:  brewery.address,
               web:      brewery.web,
               prod:     brewery.prod,  # (estimated) annual production in hl e.g. 2_000 hl
               tags:     tags,
               beers:    beers,
               country:  country }

      data
    end

  end # class BrewerySerializer

end # module BeerDb::Model

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
beerdb-models-1.2.0 lib/beerdb/serializers/brewery.rb