@generate.command(add_help_option=False)
@click.help_option('-h', '--help')
@mode_option
@click.argument('name', type=MODULE_NAME)
@click.pass_context
def asset(ctx, name, mode):
    # Convert the name to CamelCase for use with class names
    name_camelcase = camelcase(name)

    # Generation of items can only run in a valid project directory
    if not valid_project_directory():
        ctx.fail(
            'You can only run the generate command from a valid project '
            'directory'
        )

    click.echo()
    click.echo('Generating new asset named %s:' % name)
    click.echo()
    scaffold = Scaffold(
        source_root=os.path.join(TEMPLATE_DIR, 'asset'),
        target_root=os.getcwd(),
        variables={'name': name, 'name_camelcase': name_camelcase},
        ignored_dirs=IGNORED_DIRS, ignored_files=IGNORED_FILES,
        overwrite_target_root=True, existing_policy=mode
    )
    scaffold.render_structure()
    click.echo()
Returns a callable based on C{data}. If no such callable can be found,
dataset/ETHPy150Open fgimian/flaskage/flaskage/cli.py/asset--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/lib/PyAMF-0.6.1/pyamf/codec.py/_Codec.getTypeFunc