Sha256: 0e97231ac659ef762343f431ded00fd3e35fe2d8e2d1b224c5fd228e024ae218

Contents?: true

Size: 968 Bytes

Versions: 19

Compression:

Stored size: 968 Bytes

Contents

# encoding: UTF-8

module BeerDb::Model

  class BeerSerializer

    def initialize( beer )
      @beer = beer
    end
    
    attr_reader :beer
    
    def as_json
      brewery = {}
      if beer.brewery.present?
        brewery = { key: beer.brewery.key,
                    title: beer.brewery.title }
      end

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

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

      data = { key:      beer.key,
               title:    beer.title,
               synonyms: beer.synonyms,
               abv:      beer.abv,
               srm:      beer.srm,
               og:       beer.og,
               tags:     tags,
               brewery: brewery,
               country: country }
      
      data.to_json
    end

  end # class BeerSerializer

end # module BeerDb::Model

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
beerdb-models-1.1.1 lib/beerdb/serializers/beer.rb
beerdb-models-1.1.0 lib/beerdb/serializers/beer.rb
beerdb-models-1.0.1 lib/beerdb/serializers/beer.rb
beerdb-models-1.0.0 lib/beerdb/serializers/beer.rb
beerdb-models-0.10.0 lib/beerdb/serializers/beer.rb
beerdb-0.9.13 lib/beerdb/serializers/beer.rb
beerdb-0.9.12 lib/beerdb/serializers/beer.rb
beerdb-0.9.11 lib/beerdb/serializers/beer.rb
beerdb-0.9.10 lib/beerdb/serializers/beer.rb
beerdb-0.9.9 lib/beerdb/serializers/beer.rb
beerdb-0.9.8 lib/beerdb/serializers/beer.rb
beerdb-0.9.7 lib/beerdb/serializers/beer.rb
beerdb-0.9.6 lib/beerdb/serializers/beer.rb
beerdb-0.9.5 lib/beerdb/serializers/beer.rb
beerdb-0.9.4 lib/beerdb/serializers/beer.rb
beerdb-0.9.3 lib/beerdb/serializers/beer.rb
beerdb-0.9.2 lib/beerdb/serializers/beer.rb
beerdb-0.9.1 lib/beerdb/serializers/beer.rb
beerdb-0.9.0 lib/beerdb/serializers/beer.rb