Sha256: 8b249093bb7d653cf2b01f2f764e24cba9402a5697418b44395a42f527aa91b8

Contents?: true

Size: 1.68 KB

Versions: 5

Compression:

Stored size: 1.68 KB

Contents

# encoding: utf-8

module BeerDb

## todo: "old" classic reader - rename to FileReader ?? why? why not?

class Reader < ReaderBase  

  def initialize( include_path, opts = {} )
    @include_path = include_path
  end

  def create_fixture_reader( name )
    path = "#{@include_path}/#{name}.txt"

    logger.info "parsing data (setup) '#{name}' (#{path})..."

    FixtureReader.from_file( path )
  end

  def create_beers_reader( name, more_attribs={} )
    real_name = name_to_real_name( name )
    
    path = "#{@include_path}/#{real_name}.txt"

    logger.info "parsing data (beers) '#{name}' (#{path})..."

    BeerReader.from_file( path, more_attribs )
  end

  def create_breweries_reader( name, more_attribs={} )
    real_name = name_to_real_name( name )

    path = "#{@include_path}/#{real_name}.txt"

    logger.info "parsing data (breweries) '#{name}' (#{path})..."

    if name =~ /\(m\)/     # check for (m) mid-size/medium marker -todo- use $?? must be last?
       more_attribs[ :prod_m ] = true
    elsif name =~ /\(l\)/  # check for (l) large marker - todo - use $?? must be last?
       more_attribs[ :prod_l ] = true
    else
      ## no marker; do nothing
    end

    BreweryReader.from_file( path, more_attribs )
  end

private

  def name_to_real_name( name )
    # map name to real_name path
    # name might include !/ for virtual path (gets cut off)
    # e.g. at-austria!/w-wien/beers becomse w-wien/beers
    pos = name.index( '!/')
    if pos.nil?
      name # not found; real path is the same as name
    else
      # cut off everything until !/ e.g.
      # at-austria!/w-wien/beers becomes
      # w-wien/beers
      name[ (pos+2)..-1 ]
    end
  end

end # class Reader
end # module BeerDb

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
beerdb-models-1.2.0 lib/beerdb/reader_file.rb
beerdb-models-1.1.1 lib/beerdb/reader_file.rb
beerdb-models-1.1.0 lib/beerdb/reader_file.rb
beerdb-models-1.0.1 lib/beerdb/reader_file.rb
beerdb-models-1.0.0 lib/beerdb/reader_file.rb