summaryrefslogtreecommitdiff
path: root/lib/Net/Riak/Object.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/Riak/Object.pm')
-rw-r--r--lib/Net/Riak/Object.pm51
1 files changed, 37 insertions, 14 deletions
diff --git a/lib/Net/Riak/Object.pm b/lib/Net/Riak/Object.pm
index 8e48dcb..aa8fbcd 100644
--- a/lib/Net/Riak/Object.pm
+++ b/lib/Net/Riak/Object.pm
@@ -73,31 +73,54 @@ sub store {
$self->client->store_object($w, $dw, $self);
}
-sub i2index {
- my($self, $args) = @_;
+sub add_index {
+ my($self, $index, $data) = @_;
- if ( defined($args) ) {
- my %args = %{$args};
+ if ( defined($index) && defined($data) ) {
my $ref = undef;
if ( defined($self->i2indexes) ) { $ref = $self->i2indexes; }
- foreach my $i (keys %args)
+
+ if ( length($index) > 4 && $index =~ /^.+_bin$/ && length($data) > 0 )
{
+ $ref->{$index} = $data;
- #$i = lc($i);
- print $i,"\n";
- if ( defined($args{$i}) && length($args{$i}) > 0 )
- {
- $ref->{$i} = $args{$i};
-
- } else {
- delete $ref->{$i};
- }
+ }
+ if ( length($index) > 4 && $index =~ /^.+_int$/ && $data =~ /^\d+$/ )
+ {
+ $ref->{$index} = $data;
}
$self->i2indexes($ref);
}
$self->i2indexes;
}
+sub remove_index {
+ my($self, $index, $data) = @_;
+ if ( defined($index) && defined($data) ) {
+ if ( defined($self->i2indexes) ) {
+ my $ref = $self->i2indexes;
+
+ if ( $index =~ /^.+_bin$/ ) {
+ if ( defined($ref->{$index}) && $ref->{$index} eq $data )
+ {
+
+ delete(${$ref}{$index});
+ }
+ $self->i2indexes($ref);
+ }
+ if ( $index =~ /^.+_int$/ ) {
+ if ( defined($ref->{$index}) && $ref->{$index} == $data )
+ {
+ print "Deleting $index\n";
+ delete(${$ref}{$index});
+ }
+ $self->i2indexes($ref);
+ }
+ print Dumper($ref),"\n";
+ }
+ }
+}
+
sub status {
my ($self) = @_;
warn "DEPRECATED: status method will be removed in the 0.17 release, please use ->client->status.";