class Linkificator::ConditionsStorage
Attributes
conditions[R]
options[R]
Public Class Methods
new(conditions, options={})
click to toggle source
# File lib/linkificator/conditions_storage.rb, line 7 def initialize(conditions, options={}) @conditions = conditions.map { |hash| Condition.new(hash.merge(options)) } @options = options end
Public Instance Methods
condition_for(options={})
click to toggle source
# File lib/linkificator/conditions_storage.rb, line 12 def condition_for(options={}) @conditions.detect do |condition| condition if condition.match?(options) end end
link_to(name = nil, options = nil, html_options = nil, &block)
click to toggle source
# File lib/linkificator/conditions_storage.rb, line 18 def link_to(name = nil, options = nil, html_options = nil, &block) context = extract_context(name, options, html_options, &block) condition = condition_for(context) || Condition.new(self.options) condition.link_to(name, options, html_options, &block) end
Private Instance Methods
extract_context(name = nil, options = nil, html_options = nil, &block)
click to toggle source
# File lib/linkificator/conditions_storage.rb, line 26 def extract_context(name = nil, options = nil, html_options = nil, &block) html_options, options = options, name if block_given? context = {} context[:target] = options if options.is_a?(String) context.merge!((html_options || {}).delete(:context) || {}) end