<commit_before>= is_taggable

At last, a short and sweet tagging implementation that you can easily modify and extend.

Most of the plugins out there are on steroids or messing directly with SQL, a known gateway drug.

We wanted a more sober plugin that would handle new functionality without breaking a sweat. Some plugins had minimal or no tests *gasp*. They were so messed up that operating would likely cause internal bleeding.

So, we crafted the plugin we needed with the functionality we were looking for: tag kinds. It's small and healthy. So, it should be a good base to build on.

== Usage

After generating the migration:

  $ script/generate is_taggable_migration
  $ rake db:migrate

All you need is the 'is_taggable' declaration in your models:

  class User < ActiveRecord::Base
    is_taggable :tags, :languages
  end

Calling is_taggable with any arguments defaults to a tag_list. Instantiating our polyglot user is easy:

  User.new :tag_list => "rails, giraffesoft", :language_list => "english, french, spanish, latin, esperanto, tlhIngan Hol"<commit_msg>Adding a view example to the README.<commit_after>= is_taggable

At last, a short and sweet tagging implementation that you can easily modify and extend.

Most of the plugins out there are on steroids or messing directly with SQL, a known gateway drug.

We wanted a more sober plugin that would handle new functionality without breaking a sweat. Some plugins had minimal or no tests *gasp*. They were so messed up that operating would likely cause internal bleeding.

So, we crafted the plugin we needed with the functionality we were looking for: tag kinds. It's small and healthy. So, it should be a good base to build on.

== Usage

After generating the migration:

  $ script/generate is_taggable_migration
  $ rake db:migrate

All you need is the 'is_taggable' declaration in your models:

  class User < ActiveRecord::Base
    is_taggable :tags, :languages
  end
  
In your forms, add a text fields for "tag_list" and/or "language_list" (matching the example model above):

  <%= f.text_field :tag_list %>

Calling is_taggable with any arguments defaults to a tag_list. Instantiating our polyglot user is easy:

  User.new :tag_list => "rails, giraffesoft", :language_list => "english, french, spanish, latin, esperanto, tlhIngan Hol"
{'fraction_non_alphanumeric': 0.0557476231633535, 'fraction_numerical': 0.0, 'mean_word_length': 4.459905660377358, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6735381', 'n_tokens_mistral': 661, 'n_tokens_neox': 633, 'n_words': 329}