class Thymeleaf::Dialects
Attributes
registered_attr_processors[RW]
registered_dialects[RW]
registered_tag_processors[RW]
Public Class Methods
new()
click to toggle source
# File lib/thymeleaf/dialects.rb, line 6 def initialize clear_dialects end
Public Instance Methods
add_dialect(*args)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 10 def add_dialect(*args) key, dialect_class = * expand_key_dialect(*args) dialect = dialect_class.new registered_dialects[key] = dialect registered_attr_processors[key] = dialect_processors(dialect) registered_tag_processors[key] = dialect_tag_processors(dialect) end
clear_dialects()
click to toggle source
# File lib/thymeleaf/dialects.rb, line 20 def clear_dialects self.registered_dialects = {} self.registered_attr_processors = {} self.registered_tag_processors = {} end
find_attr_processor(key)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 26 def find_attr_processor(key) find_processor key, dialect_attr_matchers, registered_attr_processors end
find_tag_processor(key)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 30 def find_tag_processor(key) find_processor key, dialect_tag_matchers, registered_tag_processors end
Private Instance Methods
dialect_attr_matchers()
click to toggle source
# File lib/thymeleaf/dialects.rb, line 38 def dialect_attr_matchers /^data-(#{registered_dialects.keys.join("|")})-(.*)$/ end
dialect_processors(dialect)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 60 def dialect_processors(dialect) dialect.processors.reduce({}) do |processors, (processor_key, processor)| processors[processor_key.to_s] = processor.new processors end end
dialect_tag_matchers()
click to toggle source
# File lib/thymeleaf/dialects.rb, line 42 def dialect_tag_matchers /^(#{registered_dialects.keys.join("|")})-(.*)$/ end
dialect_tag_processors(dialect)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 67 def dialect_tag_processors(dialect) dialect.tag_processors.reduce({}) do |processors, (processor_key, processor)| processors[processor_key.to_s] = processor.new processors end end
expand_key_dialect(*args)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 50 def expand_key_dialect(*args) if args.length == 1 [ args[0].default_key, args[0] ] elsif args.length == 2 args else raise ArgumentError end end
find_processor(key, dialect_matchers, processor_list)
click to toggle source
# File lib/thymeleaf/dialects.rb, line 74 def find_processor(key, dialect_matchers, processor_list) match = dialect_matchers.match(key) # TODO: check performance null object vs null check return [key, null_processor] if match.nil? dialect_key, processor_key = *match[1..2] dialect_processors = processor_list[dialect_key] raise ArgumentError, "No dialect found for key #{key}" if dialect_processors.nil? processor = dialect_processors[processor_key] || dialect_processors['default'] raise ArgumentError, "No processor found for key #{key}" if processor.nil? [processor_key, processor] end
null_processor()
click to toggle source
# File lib/thymeleaf/dialects.rb, line 46 def null_processor @null_prccesor ||= NullProcessor.new end