Sha256: 4a43fecf3850c3a2bdfb6118b8d24e9e03460ea0324f47f147ad0d0b942b391e

Contents?: true

Size: 871 Bytes

Versions: 1

Compression:

Stored size: 871 Bytes

Contents

format :html do
  # Classy home for classes and klasses
  def class_up klass, classier, force=false
    key = klass.to_s
    return if !force && class_list[key]
    class_list[key] = classier.to_s
  end

  def class_down klass, classier
    class_list.delete klass if class_list[klass] == classier
  end

  def with_class_up klass, classier, force=false
    class_up klass, classier, force
    yield
  ensure
    class_down klass, classier
  end

  # don't use in the given block the additional class that
  # was added to `klass`
  def without_upped_class klass
    tmp_class = class_list.delete klass
    result = yield tmp_class
    class_list[klass] = tmp_class
    result
  end

  def class_list
    @class_list ||= {}
  end

  def classy *classes
    classes = Array.wrap(classes).flatten
    [classes, class_list[classes.first]].flatten.compact.join " "
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
card-1.21.0 mod/standard/set/all/rich_html/classy.rb