Module: Mab::Mixin::HTMLDefiners

Included in:
HTML5
Defined in:
lib/mab/mixin.rb

Instance Method Summary collapse

Instance Method Details

#define_empty_tag(meth, tag) ⇒ Object



199
200
201
202
203
204
205
206
207
208
# File 'lib/mab/mixin.rb', line 199

def define_empty_tag(meth, tag)
  class_eval <<-EOF
    def #{meth}(attrs = nil)
      if (!attrs.nil? && !attrs.is_a?(Hash)) || block_given?
        raise Error, "#{meth} doesn't allow content"
      end
      tag!(:#{tag}, attrs)
    end
  EOF
end

#define_empty_tags(*tags) ⇒ Object



210
211
212
213
214
# File 'lib/mab/mixin.rb', line 210

def define_empty_tags(*tags)
  tags.flatten.each do |tag|
    define_empty_tag(tag, tag)
  end
end

#define_tag(meth, tag) ⇒ Object



181
182
183
184
185
186
187
188
189
190
191
# File 'lib/mab/mixin.rb', line 181

def define_tag(meth, tag)
  class_eval <<-EOF
    def #{meth}(content = "", attrs = nil, &blk)
      if content.is_a?(Hash)
        attrs = content
        content = ""
      end
      tag!(:#{tag}, content, attrs, &blk)
    end
  EOF
end

#define_tags(*tags) ⇒ Object



193
194
195
196
197
# File 'lib/mab/mixin.rb', line 193

def define_tags(*tags)
  tags.flatten.each do |tag|
    define_tag(tag, tag)
  end
end