M3ta

Writing meta tags can be awkward. M3ta attempts to make light work of configuring defaults that are reused on every page and giving as much flexibility as possible to append and modify those defaults on each request whether it is in a controller or view.

Installation

Add it to this line to your application's Gemfile:

gem "m3ta"

And then execute:

bundle install

Usage

Meta tags can be configured in multiple different ways. You can set defaults in to ways

Via an initializer

M3ta.defaults do |b|
  b.title = 'Some blog post'
  b.image =  'https://robl.me/braindeaf.png'
end

Via I18n locales

en:
  m3ta:
    site_name: RobL Vs...
    description: I write thems code

Each request has access to a m3ta::Builder object to append data to.

  • Controllers
class ApplicationController < ActionController::Base
  m3ta do |b|
    b.title = 'A better title'
    b.description = %(...and then it will be over and that'll be alright with me...)
  end
end
class ProjectsController < ApplicationController
  m3ta do |b|
    b.title = 'Sometimes dead is better'
  end
end
  • Views
:ruby
  m3ta.tap do |b|
    b.title = %(Thundercats are better than Gobots)
    b.description = "#{b.description} - J.R. Hayes"

<%=
  m3ta.tap do |b|
    b.title = %(Thundercats are better than Gobots)
    b.description = "#{b.description} - J.R. Hayes"
  end
%>

Finally you can render your Meta Tags with a single helper in the application layout

!!!
  %head
    = m3ta_tags
  %body

Contributing

If you wish to contribute please feel free to fork the repo and submit a PR.

License

The gem is available as open source under the terms of the MIT License.