class SBSM::BASE
Constants
- DICTIONARIES
- DISABLED
- ENABLED
- HTML_ATTRIBUTES
- RESOURCES
- RESOURCE_BASE
- TXT_RESOURCES
Attributes
flavor[R]
language[R]
session[R]
Public Class Methods
new(session)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 47 def initialize(session) @session = session @flavor = @session.flavor @language = @session.language set_dictionary(@language) end
txt_file(filename)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 40 def txt_file(filename) Proc.new { path = File.expand_path(filename, self::TXT_RESOURCES) File.read(path).strip.gsub(/(\r\n)|(\n)|(\r)/, '<br>') } end
Public Instance Methods
_event_url(event=direct_event, args={}, anchor=nil) { |args| ... }
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 76 def _event_url(event=direct_event, args={}, anchor=nil, &block) args = args.collect { |*pair| pair }.flatten args = args.collect { |value| CGI.escape(value.to_s) } if(block_given?) yield(args) end url = [base_url(), event, args].compact.join('/') if(anchor) url << "#" << anchor.to_s end url end
_lookup(key, *args)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 97 def _lookup(key, *args) key = key.intern if key.is_a? String if(args.size > 0) result = "" args.each_with_index { |text, index| result << (lookup(key.to_s + index.to_s) || ' ') result << text.to_s } tail = lookup(key.to_s + args.size.to_s) result << tail if(tail) else result = @dictionary[key] if @dictionary if(result.is_a? Proc) result.call elsif(result.nil?) def_lan = @session.default_language if(dict = self::class::DICTIONARIES[def_lan]) dict[key] end else result end end end
attributes(key)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 53 def attributes(key) self::class::HTML_ATTRIBUTES.fetch(key.to_sym, {}).dup rescue {} end
base_url()
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 56 def base_url maybe_port = @session.server_port ? (":" + @session.server_port ) : '' [@session.http_protocol + ':/', @session.server_name + maybe_port, @language, @flavor].compact.join("/") end
direct_event()
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 60 def direct_event @session.direct_event end
disabled?(event)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 63 def disabled?(event) self::class::DISABLED.include?(event) end
enabled?(event, default=true)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 66 def enabled?(event, default=true) default || self::class::ENABLED.include?(event) end
event_url(event=direct_event, args={}, anchor=nil)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 69 def event_url(event=direct_event, args={}, anchor=nil) _event_url(event, args, anchor=nil) { |args| unless(@session.is_crawler? || args.include?('state_id')) args.unshift(:state_id, @session.state.object_id) end } end
format_date(date)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 121 def format_date(date) date.strftime(lookup(:date_format)) end
format_price(price, currency=nil)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 124 def format_price(price, currency=nil) if(price.to_i > 0) [currency, sprintf('%.2f', price.to_f/100.0)].compact.join(' ') end end
format_time(time)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 129 def format_time(time) time.strftime(lookup(:time_format)) end
language_url(language)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 91 def language_url(language) base_url end
languages()
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 88 def languages @languages ||= self::class::DICTIONARIES.keys.sort end
lookup(key, *args, &block)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 94 def lookup(key, *args, &block) _lookup(key, *args) || (block.call if block) end
resource(rname, rstr=nil)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 135 def resource(rname, rstr=nil) collect_resource([ self::class::RESOURCE_BASE, @session.flavor ], rname, rstr) end
resource_external(rname)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 139 def resource_external(rname) self::class::RESOURCES[rname] end
resource_global(rname, rstr=nil)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 142 def resource_global(rname, rstr=nil) collect_resource(self::class::RESOURCE_BASE, rname, rstr) end
resource_localized(rname, rstr=nil, lang=@language)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 145 def resource_localized(rname, rstr=nil, lang=@language) result = resource([rname, lang].join('_').intern, rstr) if(result.nil? && (lang != @session.default_language)) result = resource_localized(rname, rstr, @session.default_language) end result end
zones(filter=false)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 155 def zones(filter=false) @session.zones end
Private Instance Methods
_collect_resource(base, part, rstr)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 169 def _collect_resource(base, part, rstr) maybe_port = @session.server_port ? (":" + @session.server_port ) : '' [ @session.http_protocol + ':/', @session.server_name + maybe_port, base, part, rstr].flatten.compact.join('/') end
collect_resource(base, rname, rstr=nil)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 159 def collect_resource(base, rname, rstr=nil) varpart = self::class::RESOURCES[rname] if(varpart.is_a?(Array)) varpart.collect { |part| _collect_resource(base, part, rstr) } elsif(!varpart.nil?) _collect_resource(base, varpart, rstr) end end
set_dictionary(language)
click to toggle source
# File lib/sbsm/lookandfeel.rb, line 173 def set_dictionary(language) @dictionary = self::class::DICTIONARIES[language] || {} end