Name
File::DataClass::ResultSet - Core result management methods
Synopsis
use File:DataClass;
my $attr = { result_source_attributes => { schema_attributes => { ... } } };
my $result_source = File::DataClass->new( $attr )->result_source;
my $rs = $result_source->resultset( { path => q(path_to_data_file) } );
my $result = $rs->search( $hash_ref_of_where_clauses );
for my $result_object ($result->next) {
# Do something with the result object
}
Description
Find, search and update methods for element objects
Configuration and Environment
Defines these attributes
list_class
-
List class name, defaults to File::DataClass::List
result_class
-
Result class name, defaults to File::DataClass::Result
result_source
-
An object reference to the File::DataClass::ResultSource instance that created this result set
_iterator
-
Contains the integer count of the position within the
_results
hash. Incremented by each call to "next" _operators
-
A hash ref of coderefs that implement the comparison operations performed by the "search" method
_results
-
An array of result objects. Produced by calling "search"
Subroutines/Methods
all
@results = $rs->search()->all;
Returns all the result object references that were found by the "search" call
create
$result_object_ref = $rs->create( $args );
Creates and inserts an new record. The $args
hash requires the id
of the record to create. Missing attributes are defaulted from the defaults
attribute of the File::DataClass::Schema object. Returns the new record's object reference
This behaviour changed after 0.41. It used to return the new record id
create_or_update
$result_object_ref = $rs->create_or_update( $args );
Creates a new record if it does not already exist, updates the existing one if it does. Returns the record's object reference
This behaviour changed after 0.41. It used to return the record id
delete
$record_id = $rs->delete( $id_of_record_to_delete );
$record_id = $rs->delete( { id => $record_to_delete, optional => $bool } );
Deletes a record. Returns the id of the deleted record. By default the optional
flag is false and if the record does not exist an exception will be thrown. Setting the flag to true avoids the exception and undef
is returned instead
find
$result_object_ref = $rs->find( $id_of_record_to_find } );
Finds the named record and returns an result object reference for it
find_and_update
$result_object_ref = $rs->find_and_update( $args );
Finds the named result object and updates it's attributes
This behaviour changed after 0.41. It used to return the result id
first
$result_object_ref = $rs->search( $where_clauses )->first;
Returns the first result object that was found by the /search
call
list
$list_object_ref = $rs->list( { id => $id } );
Returns a list object reference
Retrieves the named record and a list of record ids
last
$result_object_ref = $rs->search( $where_clauses )->last;
Returns the last result object that was found by the /search
call
next
$result_object_ref = $rs->search( $where_clauses )->next;
Iterate over the results returned by the /search
call
path
$path = $rs->path;
Attribute "path" in File::DataClass::Schema
push
$added = $rs->push( { name => $id, list => $list, items => $items } );
Adds items to the attribute list. The $args
hash requires these keys; id
the element to edit, list
the attribute of the named element containing the list of existing items, req
the request object and items
the field on the request object containing the list of new items
reset
$rs->reset
Resets the resultset's cursor, so you can iterate through the search results again
search
$result = $rs->search( $hash_ref_of_where_clauses );
Search for records that match the given criterion. The criterion is a hash reference whose keys are record attribute names. The criterion values are either scalar values or hash references. The scalar values are tested for equality with the corresponding record attribute values. Hash reference keys are treated as comparison operators, the hash reference values are compared with the record attribute values, e.g.
{ 'some_element_attribute_name' => { '>=' => 0 } }
select
$hash = $rs->select;
Returns a hash ref of records
splice
$removed = $rs->splice( { name => $id, list => $list, items => $items } );
Removes items from the attribute list
storage
$storage = $rs->storage;
Attribute "storage" in File::DataClass::Schema
update
$rs->update( { id => $of_element, fields => $attr_hash } );
Updates the named element
_txn_do
Calls "txn_do" in File::DataClass::Storage
Diagnostics
None
Dependencies
Incompatibilities
There are no known incompatibilities in this module
Bugs and Limitations
There are no known bugs in this module. Please report problems to the address below. Patches are welcome
Author
Peter Flanigan, <pjfl@cpan.org>
License and Copyright
Copyright (c) 2017 Peter Flanigan. All rights reserved
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic
This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE