<commit_before><?php
/**
 * Create my own framework on top of the Pimple
 *
 * @copyright 2013 k-holy <<EMAIL>>
 * @license The MIT License (MIT)
 */

namespace Acme;

/**
 * DateTimeクラス
 *
 * @author <EMAIL>
 */
class DateTime implements \ArrayAccess
{

	/**
	 * @var \DateTime
	 */
	protected $datetime;

	/**
	 * @var string 日時の書式
	 */
	protected $format;

	/**
	 * コンストラクタ
	 *
	 * @param string|int|\DateTime 日時
	 * @param string 日時の書式
	 */
	public function __construct($datetime, $format = null)
	{
		if (is_int($datetime) || ctype_digit($datetime)) {
			$datetime = new \DateTime(sprintf('@%d', $datetime));
		} elseif (is_string($datetime)) {
			$datetime = new \DateTime($datetime);
		}
		if (false === ($datetime instanceof \DateTime)) {
			throw new \InvalidArgumentException(
				sprintf('Invalid type:%s', (is_object($datetime))
					? get_class($datetime)
					: gettype($datetime)
				)
			);
		}
		$this->datetime = $datetime;
		$this->format = (isset($format)) ? $format : 'Y-m-d H:i:s';
	}

	/**
	 * DateTimeオブジェクトを返します。
	 *
	 * @return \DateTime
	 */
	public function getDateTime()
	{
		return $this->datetime;
	}

	/**
	 * 日時の書式をセットします。
	 *
	 * @param string 日時の書式
	 * @return $this
	 */
	public function setFormat($format)
	{
		$this->format = $format;<commit_msg>__wakeup()対応漏れを修正<commit_after><?php
/**
 * Create my own framework on top of the Pimple
 *
 * @copyright 2013 k-holy <<EMAIL>>
 * @license The MIT License (MIT)
 */

namespace Acme;

/**
 * DateTimeクラス
 *
 * @author <EMAIL>
 */
class DateTime implements \ArrayAccess
{

	/**
	 * @var \DateTime
	 */
	protected $datetime;

	/**
	 * @var string 日時の書式
	 */
	protected $format;

	/**
	 * コンストラクタ
	 *
	 * @param string|int|\DateTime 日時
	 * @param string 日時の書式
	 */
	public function __construct($datetime, $format = null)
	{
		$this->datetime = null;
		$this->format = null;
		$this->initialize($datetime, $format);
	}

	/**
	 * オブジェクトを初期化します。
	 *
	 * @param string|int|\DateTime 日時
	 * @param string 日時の書式
	 * @return self
	 */
	public function initialize($datetime, $format = null)
	{
		if (is_int($datetime) || ctype_digit($datetime)) {
			$datetime = new \DateTime(sprintf('@%d', $datetime));
		} elseif (is_string($datetime)) {
			$datetime = new \DateTime($datetime);
		}
		if (false === ($datetime instanceof \DateTime)) {
			throw new \InvalidArgumentException(
				sprintf('Invalid type:%s', (is_object($datetime))
					? get_class($datetime)
					: gettype($datetime)
				)
			);
		}
		$this->datetime = $datetime;
		$this->format = (isset($format)) ? $format : 'Y-m-d H:i:s';
		return $this;
	}

	/**
	 * DateTimeオブジェクトを返します。
	 *
	 * @return \DateTime
	 */
	public function getDateTime()
	{
		return $this->datetime;
	}

	/**
	 * 日時の書式をセットします。
	 *
	 * @param string 日時の書式
	 * @return $this
	 */
	public function setFormat($format)
	{
		$this->format = $format;
{'fraction_non_alphanumeric': 0.1712280701754386, 'fraction_numerical': 0.002807017543859649, 'mean_word_length': 3.2425595238095237, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '474291', 'n_tokens_mistral': 1173, 'n_tokens_neox': 1034, 'n_words': 221}