Sha256: 976150c51a947659b7dbd89f567ed69cb07d88bc9a151f295b0e44aa3d89f13e
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
require 'active_support/core_ext/hash/reverse_merge' module Titlezilla class Translator attr_reader :namespace, :controller_name, :action_name, :context def initialize(controller_path, action_name, context = {}) @namespace, @controller_name = parse_namespace_and_controller_name(controller_path) @action_name = action_name.to_s.freeze @context = context end def title(override = nil) if !override @title ||= lookup(controller_name, map(action_name)) else @title = override end end def application_title @application_title ||= lookup('application') end def meta_title [title, application_title].compact.join(::Titlezilla.configuration.separator) end private def parse_namespace_and_controller_name(controller_path) parts = controller_path.to_s.split('/') parts.size > 1 ? parts.map(&:to_s).map(&:freeze) : [nil, parts[0].to_s.freeze] end def lookup(*key) t_key = [:titles, namespace, key].flatten.compact.join('.') i18n_set?(t_key) ? I18n.t(t_key, context) : nil end def map(action_name) (::Titlezilla.configuration.action_map[action_name.to_sym] || action_name).to_s.freeze end def i18n_set?(key) I18n.t(key, raise: true) rescue false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
titlezilla-0.1.1 | lib/titlezilla/translator.rb |