Sha256: 24654cf26cee327e1e08bffd1897c71cf011c45e725c214366ee7d93934651f6
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 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.map!(&:to_s).map!(&:freeze) if parts.size > 1 [parts[(0...-1)], parts[-1]] else [nil, parts[0].to_s.freeze] end 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.2 | lib/titlezilla/translator.rb |