Apache-Wyrd

 view release on metacpan or  search on metacpan

Wyrd/Services/Index.pm  view on Meta::CPAN


=item nodata

Avoid processing, word-mapping, and storing the data attribute.

=back

=cut

#attributes - integer=name (self_path), 0=reverse, 1=timestamp, 2=digest, 3=data, 4=word, 5=count, 6=title, 7=keywords, 8=description
sub update_entry {
	my ($self, $entry) = @_;
	$self->set_error = "Index entries must be objects " unless (ref($entry));
	#localize debug value so that the entry can modify it.
	my $debug = $self->debug;
	$self->{'runtime_flags'} = {};
	if (UNIVERSAL::can($entry, 'index_runtime_flags')) {
		map {$self->{'runtime_flags'}->{$_} => 1} token_parse($entry->index_runtime_flags);
		$debug = 1 if ($self->{'runtime_flags'}->{'debug'});
		$debug = 0 if ($self->{'runtime_flags'}->{'nodebug'});
	}

Wyrd/Services/Index.pm  view on Meta::CPAN

	return undef if (($result eq 'DB_NOTFOUND') or !$result);
	$self->recover_db;
	$self->read_db;
	$result = $self->db->db_get($key, $value);
	return undef if (($result eq 'DB_NOTFOUND') or !$result);
	$self->set_error("Could not get key: " . $result);
	$self->check_error;
	return;
}

sub update_key {
	my ($self, $key, $value) = @_;
	my $result = $self->db->db_put($key, $value);
	return undef unless ($result);
	$self->recover_db;
	$self->write_db;
	$result = $self->db->db_put($key, $value);
	return undef unless ($result);
	$self->set_error("Could not set key: " . $result);
	$self->check_error;
	return;

Wyrd/Services/MySQLIndex.pm  view on Meta::CPAN

# 		$sh->execute;
# 		if ($sh->err) {
# 			$self->set_error($sh->errstr);
# 		}
# 	}
	$self->{'db'} = undef;
	$self->{'status'} = 'C';
	return;
}

sub update_entry {
	my ($self, $entry) = @_;

	#Make sure the object being sent to this update is a valid one.
	$self->set_error = "Index entries must be objects " unless (ref($entry));
	#localize debug value so that the entry can modify it.
	my $debug = $self->debug;
	$self->{'runtime_flags'} = {};
	if (UNIVERSAL::can($entry, 'index_runtime_flags')) {
		map {$self->{'runtime_flags'}->{$_} => 1} token_parse($entry->index_runtime_flags);
		$debug = 1 if ($self->{'runtime_flags'}->{'debug'});

Wyrd/Services/MySQLIndex.pm  view on Meta::CPAN

	my $sh = $self->db->prepare("select $attribute from _wyrd_index where id=?");
	$sh->execute($id);
	if ($sh->err) {
		$self->set_error($sh->errstr);
	}
	my $data_ref = $sh->fetchrow_arrayref;
	my $value = $data_ref->[0];
	return $value;
}

sub update_key {
	my ($self, $id, $attribute, $value) = @_;
	my $sh = $self->db->prepare("update _wyrd_index set $attribute=? where id=?");
	$sh->execute($value, $id);
	if ($sh->err) {
		$self->set_error($sh->errstr);
	}
	return;
}

sub delete_key {

Wyrd/Site/WidgetIndex.pm  view on Meta::CPAN

  
  sub new {
    my ($class) = @_;
    my $init = {
      file => '/var/www/BASENAME/db/widgetindex.db',
      strict => 1
    };
    return Apache::Wyrd::Services::Index::new($class, $init);
  }
  
  sub update_entry {
    my ($self, $entry) = @_;
    my $changed = 0;
    my $index = $self->read_db;
    my ($id, $id_is_new) = $self->get_id($entry->index_name);
    $index->db_get("\x02\%$id", my $digest);
    if ($digest ne $entry->index_digest) {
      $index = $self->write_db;
      $self->update_key($id, $entry->index_name);
      $self->update_key("\x00%" . $entry->index_name, $id);
      $self->update_key("\x02%" . $id, $entry->index_digest);

Wyrd/Site/WidgetIndex.pm  view on Meta::CPAN


sub new {
	my ($class, $init) = @_;
	$init = {} unless (ref($init) eq 'HASH');
	my $self = {};
	$self->{'table'} = $init->{'table'} || '_wyrd_widgets';
	bless $self, $class;
	return $self;
}

sub update_entry {
	my ($self, $entry) = @_;
	my $dbh = $entry->dbl->dbh;
	my $table = $self->{'table'};
	my $changed = 0;
	my $sh = $dbh->prepare("select digest from $table where name=?");
	my $stored_digest = undef;
	$sh->execute($entry->index_name);
	if ($sh->err) {
		my $failed = $self->_init_table($dbh, $table);
		#if the DB can't be used, assume the widget has changed



( run in 0.273 second using v1.01-cache-2.11-cpan-95122f20152 )