Sha256: b9316cda4a5d3456f2b696b1ad66c950c99dbb0722361edc377bbb369830d24b
Contents?: true
Size: 1.93 KB
Versions: 5
Compression:
Stored size: 1.93 KB
Contents
# encoding: utf-8 module BeerDb class BreweryReader include LogUtils::Logging ## make models available by default with namespace # e.g. lets you use Usage instead of Model::Usage include Models def self.from_zip( zip_file, entry_path, more_attribs={} ) ## get text content from zip entry = zip_file.find_entry( entry_path ) text = entry.get_input_stream().read() text = text.force_encoding( Encoding::UTF_8 ) self.from_string( text, more_attribs ) end def self.from_file( path, more_attribs={} ) ## note: assume/enfore utf-8 encoding (with or without BOM - byte order mark) ## - see textutils/utils.rb text = File.read_utf8( path ) self.from_string( text, more_attribs ) end def self.from_string( text, more_attribs={} ) BreweryReader.new( text, more_attribs ) end def initialize( text, more_attribs={} ) ## todo/fix: how to add opts={} ??? @text = text @more_attribs = more_attribs end def read() =begin 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 =end reader = ValuesReader.from_string( @text, @more_attribs ) reader.each_line do |new_attributes, values| ####### # fix: move to (inside) # Brewery.create_or_update_from_attribs |||| ## note: group header not used for now; do NOT forget to remove from hash! if new_attributes[:header].present? logger.warn "removing unused group header #{new_attributes[:header]}" new_attributes.delete(:header) ## note: do NOT forget to remove from hash! end Brewery.create_or_update_from_attribs( new_attributes, values ) end # each_line end end # class BreweryReader end # module BeerDb
Version data entries
5 entries across 5 versions & 1 rubygems