public function classTask(Option $option)
    {
        $current = $this->getRootAppDir($option);
        $base_dir = $current;

        foreach ($option->getArgs() as $class) {
            $path = str_replace('\\', DS, $class);
            $dir = dirname($path);
            if ($dir == '.') $dir = '';

            $skeleton = $this->getSkeleton($option->get('skeleton'));
            $class_name = basename($path, '.php');
            $namespace = str_replace(DS, '\\', $dir);

            $skeleton->assign('namespace', $namespace);
            $skeleton->assign('class', $class_name);
            $skeleton->assign('extends', $option->get('extends'));
            $skeleton->assign('use-raikiri', $option->get('use-raikiri'));
            $skeleton->assign('use-accessor', $option->get('use-accessor'));

            $file = $base_dir . DS . ($dir ? $dir . DS : '') . $class_name . '.php';
            $file = $this->loader->find($current . DS . ($dir ? $dir . DS : '') . $class_name . '.php', true)->first();
            
            if (! $file->isExists() || $this->confirmation(['class file(%s) is already exists. override ?', $file])) {
                $this->fileUtil->mkdirP(dirname($file));
                $this->fileUtil->putContents($file, $skeleton->render());

                $this->sendMessage('created class file. -> %s', $file);
            }

            if ($option->get('with-spec'))
                $this->task('add:spec', [$class]);
        }
    }