Class: Wovnrb::MetaReplacer
- Inherits:
-
ReplacerBase
- Object
- ReplacerBase
- Wovnrb::MetaReplacer
- Defined in:
- lib/wovnrb/html_replacers/meta_replacer.rb
Instance Method Summary collapse
-
#initialize(store, text_index, pattern = nil, headers = nil) ⇒ MetaReplacer
constructor
A new instance of MetaReplacer.
- #replace(dom, lang) ⇒ Object
Constructor Details
#initialize(store, text_index, pattern = nil, headers = nil) ⇒ MetaReplacer
Returns a new instance of MetaReplacer.
3 4 5 6 7 8 |
# File 'lib/wovnrb/html_replacers/meta_replacer.rb', line 3 def initialize(store, text_index, pattern = nil, headers = nil) super(store) @text_index = text_index @pattern = pattern @headers = headers end |
Instance Method Details
#replace(dom, lang) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/wovnrb/html_replacers/meta_replacer.rb', line 10 def replace(dom, lang) dom.xpath('//meta').select { |node| next if wovn_ignore?(node) (node.get_attribute('name') || node.get_attribute('property') || '') =~ /^(description|title|og:title|og:description|og:url|twitter:title|twitter:description)$/ }.each do |node| node_content = node.get_attribute('content').strip if @headers && @pattern && node.get_attribute('property') && node.get_attribute('property') === 'og:url' new_url = lang.add_lang_code(node_content, @pattern, @headers) node.set_attribute('content', new_url) next end # shouldn't need size check, but for now... if @text_index[node_content] && @text_index[node_content][lang.lang_code] && @text_index[node_content][lang.lang_code].size > 0 node.set_attribute('content', replace_text(node.get_attribute('content'), @text_index[node_content][lang.lang_code][0]['data'])) end end end |