class Embulk::Guess::JoniRegexp

Public Instance Methods

guess(config, sample_buffer) click to toggle source
# File lib/embulk/guess/joni_regexp.rb, line 7
      def guess(config, sample_buffer)
        parser_config = config["parser"]
        return {} unless parser_config
        format = parser_config["format"]
        raise StandardError,"Guess need string `format` parameter" unless format.kind_of?(String)
#        raise ConfigError,"Guess need string `format` parameter" unless format.kind_of?(String)
        guessed = {}
        begin
          regex = Regexp.new(format)
          columns = []
          guessed["type"] = "joni_regexp"
          guessed["format"] = format
          columns = regex.names.map{ |x| {'name' => x, 'type' => 'string'} }
          guessed["columns"] = columns
          return {"parser" => guessed}
        rescue
          return {}
        end
      end