Sha256: 9768e2cb2311ebbb2dae611fee27f1f1a48d4a153a428cd92f72dc9d99d9097a

Contents?: true

Size: 844 Bytes

Versions: 6

Compression:

Stored size: 844 Bytes

Contents

# content_or_self
[Hash, OpenObject].each do |aclass|
  aclass.class_eval do 
    def hash?; true end
  end
end

NilClass.class_eval do
  def content; "" end
  def hash?; false end
end

String.class_eval do
  def content; self end
  def hash?; false end
end

# OpenObject
OpenObject.class_eval do
  HTML_ATTRIBUTES = [:id, :class]
  
  def merge_html_attributes hash
    # html attributes
    result = {}
    HTML_ATTRIBUTES.each{|k| result[k.to_s] = self[k] if include? k}
    html_attributes.each{|k, v| result[k.to_s] = v} if html_attributes?
    
    # merging html attributes with hash
    hash.each do |k, v|
      k = k.to_s
      if result.include?(k) and v.is_a?(String)
        string = result[k].must_be.a [Symbol, String]
        result[k] = "#{result[k]}#{v}"
      else
        result[k] = v
      end
    end
    result
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
abstract_interface-0.1.6 lib/abstract_interface/support.rb
abstract_interface-0.1.5 lib/abstract_interface/support.rb
abstract_interface-0.1.3 lib/abstract_interface/support.rb
abstract_interface-0.1.1 lib/abstract_interface/support.rb
abstract_interface-0.1.0 lib/abstract_interface/support.rb
abstract-interface-0.0.3 lib/abstract_interface/support.rb