Added span() corpus query method
Change-Id: Ie63f7efad70128111c1c33e15effb425afbc220d
diff --git a/lib/Krawfish/Corpus/Span.pm b/lib/Krawfish/Corpus/Span.pm
new file mode 100644
index 0000000..10cc0d2
--- /dev/null
+++ b/lib/Krawfish/Corpus/Span.pm
@@ -0,0 +1,64 @@
+package Krawfish::Corpus::Span;
+use parent 'Krawfish::Corpus';
+use strict;
+use warnings;
+
+# Search for intratextual features
+
+sub new {
+ my $class = shift;
+ bless {
+ query => shift,
+ _init => undef
+ }, $class;
+};
+
+
+# Clone query
+sub clone {
+ my $self = shift;
+ __PACKAGE__->new(
+ $self->{query}->clone
+ );
+};
+
+
+# Move to next document
+sub next {
+
+ my $self = shift;
+
+ unless ($self->{_init}) {
+ $self->{_init}++;
+ return $self->{query}->next;
+ };
+ return $self->{query}->next_doc;
+};
+
+sub current {
+ my $self = shift;
+ my $current = $self->{query}->current or return;
+ return Krawfish::Posting->new(
+ doc_id => $current->doc_id
+ );
+};
+
+
+# Skip to target document
+sub skip_to {
+ return $_[0]->skip_to($_[1]);
+};
+
+
+# stringification
+sub to_string {
+ 'span(' . $_[0]->{query}->to_string . ')'
+};
+
+
+# Return maximum frequency
+sub max_freq {
+ $_[0]->{query}->max_freq;
+};
+
+1;