clekstro/cc_licenseable

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# cc_licenseable
[![Code Climate](https://codeclimate.com/github/clekstro/cc_licenseable.png)](https://codeclimate.com/github/clekstro/cc_licenseable)

This gem provides a simple way of associating ActiveRecord model instances with Creative Commons licenses.  Assets, translations and even form helpers are either already available or will be in the future.

## Installation

Add this line to your application's Gemfile:

    gem 'cc_licenseable'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install cc_licenseable
    
Finally, copy over and run the migrations:

```ruby
rake cc_licenseable:install:migrations
rake db:migrate
```

## Usage

Before you can begin using the gem, create a migration to add the `cc_license_id` column to your model's table.
Then, add the call to `cc_licenseable` to your model:

```ruby
class Cartoon < ActiveRecord::Base
  cc_licenseable
end
```
Once included, each Cartoon instance can be associated with a single license, allowing you to display information that helps users properly identify and follow the individual terms of the associated license.

The following examples use our simple `Cartoon` model:

```ruby
by = CcLicenseable::CcLicense.find_by_abbreviation('BY')
cartoon = Cartoon.new(cc_license_id: by.id)
license = cartoon.cc_license
```

The following comes out of the box:

### I18n-backed attributes:
Each license comes with a translate(able) title and description based on the current locale:

```ruby
license.title
=> "Attribution"
license.desc
=> "This license lets others distribute, remix, tweak, and build upon your work…"
```

At the moment, only english strings are included. The plan is to incorporate all languages currently available on the [Creative Commons](http://www.creativecommons.org/licenses) website.

### Links to License Summary And Deed:
The creative commons licenses are described in depth at http://www.creativecommons.org/licenses.  Use them to link to the online summaries and deeds:

```ruby
license.summary_link
=> "http://creativecommons.org/licenses/by/3.0/deed.en"
license.legal_link
=> "http://creativecommons.org/licenses/by/3.0/legalcode"
```

### Assets
Logo(s), icons, buttons are all packaged, and can be easily used in conjunction with the asset pipeline and the `image_tag` helper:

```ruby
license.small_btn
=> "cc_licenseable/buttons/small/by-nc-sa.svg"
license.med_btn
=> "cc_licenseable/buttons/med/by-nc-sa.svg"
```

### Helpers
To include a dropdown of Creative Commons licenses when creating/updating cartoons, you can use a custom form helper like so:

```ruby
<%= form_for @cartoon do |f| %>
    <%= f.text_field :name %>
    <%= f.cc_license_selector %>
<% end %>
```


## TODO:
Full support of all I18n material from http://creativecommons.org/licenses.
Deploy Dummy app to Heroku

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

## License and Trademark Information
Please consult the full Creative Commons [policy](http://creativecommons.org/policies) concerning use of their license badges and corporate trademark(s) before use.

The engine code itself is licensed under the terms and conditions of the MIT License.