class Tr8n::Config
Acts as a global singleton that holds all Tr8n
configuration The class can be extended with a different implementation, as long as the interface is supported
Attributes
application[RW]
Configuration Attributes
cache[RW]
Configuration Attributes
context_rules[RW]
Configuration Attributes
current_locale_method[RW]
Used by Rails and Sinatra extensions
current_user_method[RW]
Used by Rails and Sinatra extensions
default_level[RW]
Configuration Attributes
default_locale[RW]
Configuration Attributes
default_tokens[RW]
Configuration Attributes
enabled[RW]
Configuration Attributes
format[RW]
Configuration Attributes
localization[RW]
Configuration Attributes
logger[RW]
Configuration Attributes
submit_missing_keys_realtime[RW]
Used for IRB only
translator_options[RW]
Used by Rails and Sinatra extensions
Public Class Methods
new()
click to toggle source
# File lib/tr8n/config.rb, line 86 def initialize @enabled = true @default_locale = 'en' @default_level = 0 @format = :html # if running from IRB, make it default to TRUE @submit_missing_keys_realtime = (%w(irb pry).include?($0 || '')) @current_locale_method = :current_locale @current_user_method = :current_user @application = nil @translator_options = { debug: false, debug_format_html: "<span style='font-size:20px;color:red;'>{</span> {$0} <span style='font-size:20px;color:red;'>}</span>", debug_format: '{{{{$0}}}}', split_sentences: false, nodes: { ignored: [], scripts: %w(style script), inline: %w(a span i b img strong s em u sub sup), short: %w(i b), splitters: %w(br hr) }, attributes: { labels: %w(title alt) }, name_mapping: { b: 'bold', i: 'italic', a: 'link', img: 'picture' }, data_tokens: { special: false, numeric: false, numeric_name: 'num' } } @context_rules = { :number => { :variables => { } }, :gender => { :variables => { '@gender' => 'gender', } }, :genders => { :variables => { '@genders' => lambda{|list| list.collect do |u| u.is_a?(Hash) ? (u['gender'] || u[:gender]) : u.gender end }, '@size' => lambda{ |list| list.size } } }, :date => { :variables => { } }, :time => { :variables => { } }, :list => { :variables => { '@count' => lambda{|list| list.size} } }, } @logger = { :enabled => false, :path => './log/tr8n.log', :level => 'debug' } @cache = { :enabled => false, :host => 'localhost:11211', :adapter => 'memcache', :version => 1, :timeout => 3600 } @default_tokens = { :html => { :data => { :ndash => "–", # – :mdash => "—", # — :iexcl => "¡", # ¡ :iquest => "¿", # ¿ :quot => """, # " :ldquo => "“", # “ :rdquo => "”", # ” :lsquo => "‘", # ‘ :rsquo => "’", # ’ :laquo => "«", # « :raquo => "»", # » :nbsp => " ", # space :lsaquo => "‹", # ‹ :rsaquo => "›", # › :br => "<br/>", # line break :lbrace => "{", :rbrace => "}", :trade => "™", # TM }, :decoration => { :strong => "<strong>{$0}</strong>", :bold => "<strong>{$0}</strong>", :b => "<strong>{$0}</strong>", :em => "<em>{$0}</em>", :italic => "<i>{$0}</i>", :i => "<i>{$0}</i>", :link => "<a href='{$href}'>{$0}</a>", :br => "<br>{$0}", :strike => "<strike>{$0}</strike>", :div => "<div id='{$id}' class='{$class}' style='{$style}'>{$0}</div>", :span => "<span id='{$id}' class='{$class}' style='{$style}'>{$0}</span>", :h1 => "<h1>{$0}</h1>", :h2 => "<h2>{$0}</h2>", :h3 => "<h3>{$0}</h3>", } }, :text => { :data => { :ndash => "–", :mdash => "-", :iexcl => "¡", :iquest => "¿", :quot => '"', :ldquo => "“", :rdquo => "”", :lsquo => "‘", :rsquo => "’", :laquo => "«", :raquo => "»", :nbsp => " ", :lsaquo => "‹", :rsaquo => "›", :br => "\n", :lbrace => "{", :rbrace => "}", :trade => "™", }, :decoration => { :strong => "{$0}", :bold => "{$0}", :b => "{$0}", :em => "{$0}", :italic => "{$0}", :i => "{$0}", :link => "{$0}:{$1}", :br => "\n{$0}", :strike => "{$0}", :div => "{$0}", :span => "{$0}", :h1 => "{$0}", :h2 => "{$0}", :h3 => "{$0}", } } } @localization = { :default_day_names => ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], :default_abbr_day_names => ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], :default_month_names => ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], :default_abbr_month_names => ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], :custom_date_formats => { :default => '%m/%d/%Y', # 07/4/2008 :short_numeric => '%m/%d', # 07/4 :short_numeric_year => '%m/%d/%y', # 07/4/08 :long_numeric => '%m/%d/%Y', # 07/4/2008 :verbose => '%A, %B %d, %Y', # Friday, July 4, 2008 :monthname => '%B %d', # July 4 :monthname_year => '%B %d, %Y', # July 4, 2008 :monthname_abbr => '%b %d', # Jul 4 :monthname_abbr_year => '%b %d, %Y', # Jul 4, 2008 :date_time => '%m/%d/%Y at %H:%M', # 01/03/1010 at 5:30 }, :token_mapping => { "%a" => "{short_week_day_name}", "%A" => "{week_day_name}", "%b" => "{short_month_name}", "%B" => "{month_name}", "%p" => "{am_pm}", "%d" => "{days}", "%e" => "{day_of_month}", "%j" => "{year_days}", "%m" => "{months}", "%W" => "{week_num}", "%w" => "{week_days}", "%y" => "{short_years}", "%Y" => "{years}", "%l" => "{trimed_hour}", "%H" => "{full_hours}", "%I" => "{short_hours}", "%M" => "{minutes}", "%S" => "{seconds}", "%s" => "{since_epoch}" } } end
Public Instance Methods
cache_enabled?()
click to toggle source
# File lib/tr8n/config.rb, line 317 def cache_enabled? cache[:enabled].nil? || Tr8n.config.cache[:enabled] end
decorator_class()
click to toggle source
Decorations
# File lib/tr8n/config.rb, line 350 def decorator_class return Tr8n::Decorators::Html if @format == :html Tr8n::Decorators::Default end
default_abbr_day_name(index)
click to toggle source
# File lib/tr8n/config.rb, line 385 def default_abbr_day_name(index) '' + default_abbr_day_names[index] end
default_abbr_day_names()
click to toggle source
# File lib/tr8n/config.rb, line 381 def default_abbr_day_names localization[:default_abbr_day_names] end
default_abbr_month_name(index)
click to toggle source
# File lib/tr8n/config.rb, line 401 def default_abbr_month_name(index) '' + default_abbr_month_names[index] end
default_abbr_month_names()
click to toggle source
# File lib/tr8n/config.rb, line 397 def default_abbr_month_names localization[:default_abbr_month_names] end
default_application()
click to toggle source
# File lib/tr8n/config.rb, line 342 def default_application @default_application ||= Tr8n::Application.new(:host => Tr8n::Api::Client::API_HOST) end
default_date_formats()
click to toggle source
# File lib/tr8n/config.rb, line 405 def default_date_formats localization[:custom_date_formats] end
default_day_name(index)
click to toggle source
# File lib/tr8n/config.rb, line 377 def default_day_name(index) "" + default_day_names[index] end
default_day_names()
click to toggle source
# File lib/tr8n/config.rb, line 373 def default_day_names localization[:default_day_names] end
default_language()
click to toggle source
def default_locale
return Tr8n.session.application.default_locale if Tr8n.session.application @default_locale
end
def default_level
return Tr8n.session.application.default_level if Tr8n.session.application @default_level
end
# File lib/tr8n/config.rb, line 335 def default_language @default_language ||= begin file = File.expand_path(File.join(File.dirname(__FILE__), '..', 'tr8n_core', 'languages', "#{Tr8n.config.default_locale}.json")) Tr8n::Language.new(JSON.parse(File.read(file))) end end
default_month_name(index)
click to toggle source
# File lib/tr8n/config.rb, line 393 def default_month_name(index) '' + default_month_names[index] end
default_month_names()
click to toggle source
# File lib/tr8n/config.rb, line 389 def default_month_names localization[:default_month_names] end
default_token_value(token_name, type = :data, format = :html)
click to toggle source
# File lib/tr8n/config.rb, line 355 def default_token_value(token_name, type = :data, format = :html) default_tokens[format.to_sym][type.to_sym][token_name.to_sym] end
disabled?()
click to toggle source
# File lib/tr8n/config.rb, line 300 def disabled? not enabled? end
enabled?()
click to toggle source
# File lib/tr8n/config.rb, line 296 def enabled? enabled end
nested_value(hash, key, default_value = nil)
click to toggle source
# File lib/tr8n/config.rb, line 304 def nested_value(hash, key, default_value = nil) parts = key.split('.') parts.each do |part| return default_value unless hash[part.to_sym] hash = hash[part.to_sym] end hash end
set_default_token(token_name, value, type = :data, format = :html)
click to toggle source
# File lib/tr8n/config.rb, line 359 def set_default_token(token_name, value, type = :data, format = :html) default_tokens[format.to_sym] ||= {} default_tokens[format.to_sym][type.to_sym] ||= {} default_tokens[format.to_sym][type.to_sym][token_name.to_sym] = value end
strftime_symbol_to_token(symbol)
click to toggle source
Localization
# File lib/tr8n/config.rb, line 369 def strftime_symbol_to_token(symbol) localization[:token_mapping][symbol] end
translator_option(key)
click to toggle source
# File lib/tr8n/config.rb, line 313 def translator_option(key) nested_value(self.translator_options, key) end