class Hpricot::CssProxy - The Hpricot Reference

# class Hpricot::CssProxy

Class used by Markaby::Builder to store element options. Methods called against the CssProxy object are added as element classes or IDs.

See the README for examples.

### Public Class Methods

new(builder, sym) click to toggle source

Creates a CssProxy object.

    # File lib/hpricot/builder.rb, line 195
    def initialize(builder, sym)
      @builder, @sym, @attrs = builder, sym, {}
    end

### Public Instance Methods

method_missing(id_or_class, *args, &block) click to toggle source

Adds attributes to an element. Bang methods set the :id attribute. Other methods add to the :class attribute.

    # File lib/hpricot/builder.rb, line 201
    def method_missing(id_or_class, *args, &block)
      if (idc = id_or_class.to_s) =~ /!$/
        @attrs[:id] = $`
      else
        @attrs[:class] = @attrs[:class].nil? ? idc : "#{@attrs[:class]} #{idc}".strip
      end

      if block or args.any?
        args.push(@attrs)
        return @builder.tag!(@sym, *args, &block)
      end

      return self
    end