Sha256: 6b16cd6972eb5f0c30c1172a9a1cd73bfcf7cf9ad75bc2f042d23e0af433b22a

Contents?: true

Size: 743 Bytes

Versions: 8

Compression:

Stored size: 743 Bytes

Contents

module HandleAttributes
  private

  def get_atr_value(elem, atr, couples)
    if atr.to_s.include?('.')
      value = get_nested_atr_value(elem, atr.to_s.split('.').reverse)
    else
      value = couples[atr]
      value = elem.send(atr.to_sym) if value.blank? && elem.respond_to?(atr) # Required for virtual attributes
    end
    value
  end

  def get_nested_atr_value(elem, hierarchy)
    return nil if hierarchy.size == 0
    atr = hierarchy.pop
    raise ArgumentError, "#{atr} doesn't exist on #{elem.inspect}" unless elem.respond_to?(atr)
    nested_elem = elem.send(atr)
    return "" if nested_elem.nil?
    value = get_nested_atr_value(nested_elem, hierarchy)
    value.nil? ? nested_elem : value
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
compass-jquery-plugin-0.3.3.1 lib/handle_attributes.rb
compass-jquery-plugin-0.3.3.0 lib/handle_attributes.rb
compass-jquery-plugin-0.3.2.8 lib/handle_attributes.rb
compass-jquery-plugin-0.3.2.7 lib/handle_attributes.rb
compass-jquery-plugin-0.3.2.7.nil lib/handle_attributes.rb
compass-jquery-plugin-0.3.2.6 lib/handle_attributes.rb
compass-jquery-plugin-0.3.2.5 lib/handle_attributes.rb
compass-jquery-plugin-0.3.2.4 lib/handle_attributes.rb