class Tr8n::Tokens::DecorationToken
Public Class Methods
expression()
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 41 def self.expression /(\[\w+:[^\]]+\])/ end
Public Instance Methods
decoration?()
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 45 def decoration? true end
handle_default_decorations(token_name, token_value, token_values)
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 71 def handle_default_decorations(token_name, token_value, token_values) unless Tr8n::Config.default_decoration_tokens[token_name] raise Tr8n::TokenException.new("Invalid decoration token value") end default_decoration = Tr8n::Config.default_decoration_tokens[token_name].clone decoration_token_values = token_values[token_name.to_sym] || [] if decoration_token_values.is_a?(Array) params = [token_value, decoration_token_values].flatten params.each_with_index do |param, index| default_decoration.gsub!("{$#{index}}", param.to_s) end # clean all the rest of the {$num} params, if any param_index = params.size while default_decoration.index("{$#{param_index}}") default_decoration.gsub!("{$#{param_index}}", "") param_index += 1 end elsif decoration_token_values.is_a?(Hash) default_decoration.gsub!("{$0}", token_value.to_s) decoration_token_values.keys.each do |key| default_decoration.gsub!("{$#{key}}", decoration_token_values[key]) end end default_decoration end
language_rule()
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 49 def language_rule nil end
prepare_label_for_suggestion(label, index)
click to toggle source
return only the internal part
# File lib/tr8n/tokens/decoration_token.rb, line 67 def prepare_label_for_suggestion(label, index) label.gsub(name, "(#{index})") end
prepare_label_for_translator(label)
click to toggle source
return as is
# File lib/tr8n/tokens/decoration_token.rb, line 62 def prepare_label_for_translator(label) label end
sanitized_name()
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 124 def sanitized_name "[#{name}: ]" end
substitute(label, values = {}, options = {}, language = Tr8n::Config.current_language)
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 101 def substitute(label, values = {}, options = {}, language = Tr8n::Config.current_language) method = values[name_key] substitution_value = "" if method if method.is_a?(Proc) substitution_value = method.call(value) elsif method.is_a?(Array) or method.is_a?(Hash) substitution_value = handle_default_decorations(name, value, values) elsif method.is_a?(String) substitution_value = method.to_s.gsub("{$0}", value) else raise Tr8n::TokenException.new("Invalid decoration token value") end elsif Tr8n::Config.default_decoration_tokens[name] substitution_value = handle_default_decorations(name, value, values) else raise Tr8n::TokenException.new("Missing decoration token value") end label.gsub(full_name, substitution_value) end
value()
click to toggle source
# File lib/tr8n/tokens/decoration_token.rb, line 53 def value @value ||= begin parts = full_name.gsub(/[\]]/, '').split(':') vl = parts[1..-1].join(':') vl.strip end end