Project

piv

0.0
No commit activity in last 3 years
No release in over 3 years
a simple and extensible command line file generator
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.8
~> 2
 Project Readme

piv¶ ↑

a simple and extensible command line file generator

rationale¶ ↑

  • command line tools are almost always faster than any gui or web interface

  • the idea of using a code generator to generate as much of itself as possible is appealing

installation¶ ↑

gem install piv

usage¶ ↑

piv <project name> *<flavour>

this command will create a new project with the specified ‘flavours’ (project types)

all files created by the generator will immediately be opened in the text editor specified by the PIV_EDITOR environment variable

if PIV_EDITOR is not set, it will default to ‘subl’ (sublime text 2)

ruby flavour¶ ↑

piv foo ruby

this will create a ruby project called foo consisting of the standard folders and files that i’d usually create for a ruby project

once you’ve generated a ruby project you can use various generators within the project

piv class foo bar baz

this will create a Foo::Bar::Baz class, an associated spec and open both in a text editor

piv module foo bar baz

this will create a module instead of a class and a spec and open both in a text editor

piv destroy foo bar baz

this will destroy Foo::Bar::Baz (and any associated files)

piv gem blast_furnace

this will create a gemspec for a gem called blast_furnace and open it in a text editor

piv flavour¶ ↑

this flavour creates a gem that can be used as a piv flavour

piv piv clojure

this will create a basic template for a new clojure flavour

once installed, this gem can be used as a project generator:

piv clojure my_clojure_project

the generate_* methods of the Piv::Clojure module will then be able to create various things:

piv class foo

future plans¶ ↑

  • move most of the bin script into a cli class

  • add ~/.pivrc management (with name, email, etc.)

  • complete specs on ruby

  • create a gem flavour (rather than generator method in ruby flavour)

  • add other flavours (clojure? python? make up a whole new language?)