Class: Metanol::Meta::Base
- Inherits:
-
Object
- Object
- Metanol::Meta::Base
show all
- Defined in:
- lib/metanol/meta/base.rb
Constant Summary
collapse
- SUPPORTED_FILTERS =
[:html, :overspaces, :whitespaces, :clean]
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, value, filters = []) ⇒ Base
Returns a new instance of Base.
8
9
10
11
12
13
|
# File 'lib/metanol/meta/base.rb', line 8
def initialize(name, value, filters=[])
raise NameError.new "The meta tag '#{name}' isn't supported.", name unless valid?(name)
@name = name
@value = value
self.filters = filters
end
|
Instance Attribute Details
#value ⇒ Object
28
29
30
31
32
33
34
35
|
# File 'lib/metanol/meta/base.rb', line 28
def value
result = @value
return result unless filters?
result = self.class.filter_html(result) if @filters.include?(:html) || @filters.include?(:clean)
result = self.class.filter_whitespaces(result) if @filters.include?(:whitespaces) || @filters.include?(:clean)
result = self.class.filter_overspaces(result) if @filters.include?(:overspaces) || @filters.include?(:clean)
result
end
|
Class Method Details
.filter_html(text) ⇒ Object
37
38
39
40
|
# File 'lib/metanol/meta/base.rb', line 37
def self.filter_html(text)
text = text.gsub(/\<br\/?\>/, ' ')
text.gsub(/\<\/?\w+\/?\>/, '')
end
|
.filter_overspaces(text) ⇒ Object
42
43
44
|
# File 'lib/metanol/meta/base.rb', line 42
def self.filter_overspaces(text)
text.gsub(/[\ ]{2,}/, ' ')
end
|
.filter_whitespaces(text) ⇒ Object
46
47
48
|
# File 'lib/metanol/meta/base.rb', line 46
def self.filter_whitespaces(text)
text.gsub(/\s/, ' ')
end
|
Instance Method Details
#filters=(value) ⇒ Object
15
16
17
|
# File 'lib/metanol/meta/base.rb', line 15
def filters=(value)
@filters = validate_filters(value)
end
|
#name ⇒ Object
24
25
26
|
# File 'lib/metanol/meta/base.rb', line 24
def name
@name
end
|
#render ⇒ Object
19
20
21
22
|
# File 'lib/metanol/meta/base.rb', line 19
def render
result = self.value
!result.blank? ? "<meta #{self.attr_name}=\"#{self.name}\" #{self.attr_value}=\"#{result}\" />" : ''
end
|