YourAnime.moe utilities

Welcome to tanoshimu_utils! This gem is what I like to call "just a couple of utilities shared accross the apps to make development much easier."

Installation

Add this line to your application's Gemfile:

gem 'tanoshimu_utils'

And then execute:

$ bundle

Or install it yourself as:

$ gem install tanoshimu_utils

Usage

Concerns

include Description Example
TanoshimuUtils::Concerns::GetRecord Add .record to return a model from the table .used_by_model with primary key .model_id. Model.first.record
TanoshimuUtils::Concerns::Identifiable Fills up the .identification field with a unique token. Use with classes like Admin, User, Staff, etc... (anyone that can log on to the app)
TanoshimuUtils::Concerns::ResourceFetch For an ActiveStorage attachment res, adds res_url (get the url), res_url! (fetch from AWS), res? (make sure it is existant and attached) Use classes that have attachments (like images). If user has avatar, then user.avatar?, user.avatar_url, user.avatar_url! are valid calls.
TanoshimuUtils::Concerns::RespondToTypes Adds respond_to_types class method to add field? for a field field. respond_to_types [:admin, :regular, :guest] is a valid class for a User class.
TanoshimuUtils::Concerns::Translatable Depending on the current locale, adds a translates class method to create a field that returns the value translates :value, through: [:en, :fr], default: :fr creates a method .value that returns the field .fr if the locale is French, .en if the locale is English. French is returned if another available locale is set.

Validators

include Description Example
TanoshimuUtils::Validators::PresenceOneOf Adds the class method validate_presence_one_of to check if at lease one of the fields are set. validate_presence_one_of [:field1, :field2, :field3] will validate if :field1 or field2 or field3 is set. If none are set, fails.
TanoshimuUtils::Validators::UserLike Adds the class method validate_like_user to check if the user-like class (User, Admin, Staff, etc.) has a name, a username and a user_type (the latter must be in the array user_types). validate_like_user user_types: [:admin, :regular] only allows user-like models to be either admin or regular.

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/tanoshimu_utils.