Module: Deas::ErbTags::Utils
- Defined in:
- lib/deas-erbtags/utils.rb
Constant Summary collapse
- ESCAPE_ATTRS =
{ "&" => "&", "<" => "<", '"' => """ }
- ESCAPE_ATTRS_PATTERN =
Regexp.union(*ESCAPE_ATTRS.keys)
Class Method Summary collapse
- .escape_attr_value(value) ⇒ Object
- .html_attrs(attrs = "", ns = nil) ⇒ Object
- .insert_html_class(current, *to_insert) ⇒ Object
Class Method Details
.escape_attr_value(value) ⇒ Object
14 15 16 |
# File 'lib/deas-erbtags/utils.rb', line 14 def self.escape_attr_value(value) value.to_s.gsub(ESCAPE_ATTRS_PATTERN){|c| ESCAPE_ATTRS[c] } end |
.html_attrs(attrs = "", ns = nil) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/deas-erbtags/utils.rb', line 18 def self.html_attrs(attrs="", ns=nil) return attrs.to_s if !attrs.kind_of?(::Hash) attrs.collect do |k_v| [ns ? "#{ns}_#{k_v.first}" : k_v.first.to_s, k_v.last] end.sort.collect do |k_v| if k_v.last.kind_of?(::Hash) html_attrs(k_v.last, k_v.first) elsif k_v.last.kind_of?(::Array) " #{k_v.first}=\"#{escape_attr_value(k_v.last.join(' '))}\"" else " #{k_v.first}=\"#{escape_attr_value(k_v.last)}\"" end end.join end |
.insert_html_class(current, *to_insert) ⇒ Object
34 35 36 |
# File 'lib/deas-erbtags/utils.rb', line 34 def self.insert_html_class(current, *to_insert) (Set.new((current || '').split(' ')) + Set.new(to_insert)).sort.join(' ') end |