Cikl

 view release on metacpan or  search on metacpan

lib/Cikl/Smrt/FeedParserConfig.pm  view on Meta::CPAN

package Cikl::Smrt::FeedParserConfig;

use strict;
use warnings;
use Data::Dumper;
use Config::Simple;
use Try::Tiny;
use Storable qw/dclone/;

use constant FIELDS => {
  group => 'everyone',
  parser => undef,
  detecttime_format => undef,
  detecttime_zone => undef,
  feed => undef,
  source => undef,
  feed_limit => undef,
  feed_user => undef,
  feed_password => undef,
  values => undef,
  skipfirst => undef,
  delimiter => undef,
  fields => undef,
  fields_map => undef,
  mirror => undef,
  zip_filename => undef,
  regex => undef,
  regex_values => undef,
  node => undef,
  node_xpath => undef,
  subnode => undef,
  period => undef,
  disabled => undef,
  elements => undef,
  elements_map => undef,
  attributes => undef, 
  attributes_map => undef
};

use constant REQUIRED_FIELDS => {
  group => 1,
  feed => 1,
  source => 1,
  parser => 1
};

sub new {
  my $class = shift;
  my $config_file = shift;
  my $feed_name = shift;

  my $config;
  my $err;
  try {
    $config = Config::Simple->new($config_file);
  } catch {
    $err = shift;
  };

  if (defined($err)) {
    die "Syntax error while parsing $config_file: $err";
  }

  my $config_data = $config->param(-block => 'default');
  my $feed_rules = $config->param(-block => $feed_name);

  if (!%$feed_rules) {



( run in 1.473 second using v1.01-cache-2.11-cpan-5837b0d9d2c )