GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  ROSE::DB::OBJECT::MAKEMETHODS::TIME (3)

.ds Aq ’

NAME

Rose::DB::Object::MakeMethods::Time - Create time-related methods for Rose::DB::Object-derived objects.

CONTENTS

SYNOPSIS



    package MyDBObject;

    use base Rose::DB::Object;

    use Rose::DB::Object::MakeMethods::Time
    (
      interval =>
      [
        t1 => { scale => 6 },
        t2 => { default => 3 days 6 minutes 5 seconds },
      ],

      time =>
      [
        start => { scale => 5 },
        end   => { default => 12:34:56 },
      ],
    );

    ...

    $o->t1(5 minutes 0.003 seconds);

    $dt_dur = $o->t1; # DateTime::Duration object

    print $o->t1->minutes;    # 5
    print $o->t1->nanosecond; # 3000000

    $o->start(12:34:56.12345);

    print $o->start->nanosecond; # 123450000
    print $o->start->as_string;  # 12:34:56.12345

    $o->end(6pm);

    $tc = $o->end; # Time::Clock object

    print $o->end->hour; # 18
    print $o->end->ampm; # PM

    print $o->end->format(%I:%M %p); # 6:00 PM
    $o->end->add(hours => 1);
    print $o->end->format(%I:%M %p); # 7:00 PM



DESCRIPTION

Rose::DB::Object::MakeMethods::Time creates methods that deal with times, and inherits from Rose::Object::MakeMethods. See the Rose::Object::MakeMethods documentation to learn about the interface. The method types provided by this module are described below.

All method types defined by this module are designed to work with objects that are subclasses of (or otherwise conform to the interface of) Rose::DB::Object. In particular, the object is expected to have a db method that returns a Rose::DB-derived object. See the Rose::DB::Object documentation for more details.

METHODS TYPES

<B>intervalB> Create get/set methods for interval (years, months, days, hours, minutes, seconds) attributes.
Options
default Determines the default value of the attribute.
end_of_month_mode This mode determines how math is done on duration objects. If defined, the end_of_month setting for each DateTime::Duration object created by this method will be set to the specified mode. Otherwise, the end_of_month parameter will not be passed to the DateTime::Duration constructor.

Valid modes are wrap, limit, and preserve. See the documentation for DateTime::Duration for a full explanation.

hash_key The key inside the hash-based object to use for the storage of this attribute. Defaults to the name of the method.
interface Choose the interface. The default is get_set.
scale An integer number of places past the decimal point preserved for fractional seconds. Defaults to 0.
Interfaces
get_set Creates a get/set method for a interval (years, months, days, hours, minutes, seconds) attribute. When setting the attribute, the value is passed through the parse_interval method of the object’s db attribute. If that fails, a fatal error will occur.

When saving to the database, the method will pass the attribute value through the format_interval method of the object’s db attribute before returning it.

This method is designed to allow interval values to make a round trip from and back into the database without ever being inflated into DateTime::Duration objects. Any use of the attribute (get or set) outside the context of loading from or saving to the database will cause the value to be inflated using the parse_interval method of the object’s db attribute.

get Creates an accessor method for a interval (years, months, days, hours, minutes, seconds) attribute. This method behaves like the get_set method, except that the value cannot be set.
set Creates a mutator method for a interval (years, months, days, hours, minutes, seconds) attribute. This method behaves like the get_set method, except that a fatal error will occur if no arguments are passed.

Example:



    package MyDBObject;

    use base Rose::DB::Object;

    use Rose::DB::Object::MakeMethods::Time
    (
      time =>
      [
        t1 => { scale => 6 },
        t2 => { default => 3 days 6 minutes 5 seconds },
      ],
    );

    ...

    $o->t1(5 minutes 0.003 seconds);

    $dt_dur = $o->t1; # DateTime::Duration object

    print $o->t1->minutes;    # 5
    print $o->t1->nanosecond; # 3000000



<B>timeB> Create get/set methods for time (hours, minutes, seconds) attributes. Fractional seconds up to nanosecond precision are supported.
Options
default Determines the default value of the attribute.
hash_key The key inside the hash-based object to use for the storage of this attribute. Defaults to the name of the method.
interface Choose the interface. The default is get_set.
scale An integer number of places past the decimal point preserved for fractional seconds. Defaults to 0. The maximum value is 9.
Interfaces
get_set Creates a get/set method for a time attribute. When setting the attribute, the value is passed through the parse_time method of the object’s db attribute. If that fails, a fatal error will occur.

When saving to the database, the method will pass the attribute value through the format_time method of the object’s db attribute before returning it.

This method is designed to allow time values to make a round trip from and back into the database without ever being inflated into Time::Clock objects. Any use of the attribute (get or set) outside the context of loading from or saving to the database will cause the value to be inflated using the parse_time method of the object’s db attribute.

get Creates an accessor method for a time attribute. This method behaves like the get_set method, except that the value cannot be set.
set Creates a mutator method for a time attribute. This method behaves like the get_set method, except that a fatal error will occur if no arguments are passed.

Example:



    package MyDBObject;

    use base Rose::DB::Object;

    use Rose::DB::Object::MakeMethods::Time
    (
      time =>
      [
        start => { scale => 5 },
        end   => { default => 12:34:56 },
      ],
    );

    ...

    $o->start(12:34:56.12345);

    print $o->start->nanosecond; # 123450000
    print $o->start->as_string;  # 12:34:56.12345

    $o->end(6pm);

    $tc = $o->end; # Time::Clock object

    print $o->end->hour; # 18
    print $o->end->ampm; # PM

    print $o->end->format(%I:%M %p); # 6:00 PM
    $o->end->add(hours => 1);
    print $o->end->format(%I:%M %p); # 7:00 PM



AUTHOR

John C. Siracusa (siracusa@gmail.com)

LICENSE

Copyright (c) 2010 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 ROSE::DB::OBJECT::MAKEMETHODS::TIME (3) 2015-03-17

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.