zachlatta/octonore

View on GitHub
README.md

Summary

Maintainability
Test Coverage
Octonore [![Build Status](https://travis-ci.org/zachlatta/octonore.png?branch=master)](https://travis-ci.org/zachlatta/octonore) [![Code Climate](https://codeclimate.com/github/zachlatta/octonore.png)](https://codeclimate.com/github/zachlatta/octonore) [![Coverage Status](https://coveralls.io/repos/zachlatta/octonore/badge.png?branch=master)](https://coveralls.io/r/zachlatta/octonore?branch=master) [![Dependency Status](https://gemnasium.com/zachlatta/octonore.png)](https://gemnasium.com/zachlatta/octonore)
========

An octolicious wrapper around the [Gitignore Templates API](http://developer.github.com/v3/gitignore/).

    $ gem install octonore


Usage
-----

List the available templates by calling `Template`'s list method.

    >> Octonore::Template.list
    => ["Actionscript", "Android", "AppceleratorTitanium", "Autotools", "Bancha", "
    C", "C++", "CFWheels", "CMake", "CSharp", "CakePHP", "Clojure", "CodeIgniter...

To get a gitignore template you first need to instantiate it.

    >> c_template = Octonore::Template.new('C')
    => #<Octonore::Template:0x007fe65b8b2420 @name="C", @source="# Object files\n*.
    o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.
    so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n">

To get the template's source code, you can call its `source` accessor.

    >> c_template.source
    => "# Object files\n*.o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Wi
    ndows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app
    \n"


You can also get the template's name with the `name` accessor.

    >> c_template.name
    => "C"

You can reload the template's source from Github with the `update` method.

    >> c_template.update
    => "# Object files\n*.o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Wi
    ndows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app
    \n"


### Example Program

The following program asks the user for the name of a gitignore template. It then writes the gitignore to a file ending in `.gitignore`. If the user enters `Java`, then it will write the Java gitignore template to `java.gitignore` in the current directory.

```ruby
require 'octonore'

begin
  print "Enter the name of a gitignore template (case sensitive): "
  template = Octonore::Template.new(gets.strip)
  
  File.open("#{template.name.downcase}.gitignore", 'w') { |file|
          file.write(template.source) }
rescue GitignoreTemplateNotFoundError => e
  puts e.message
end
```