# class WikiCloth::Parser

### Public Class Methods

new(options={}) click to toggle source

    # File lib/wikicloth/parser.rb, line 5
    def initialize(options={})
      options.each { |k,v|
        if v.instance_of?(Proc)
          self.class.send :define_method, k.to_sym do |*args|
            self.instance_exec(args,&v)
          end
        end
      }
      @options = { :link_handler => self, :params => {} }.merge(options)
      @wikicloth = WikiCloth.new(@options)
    end

### Public Instance Methods

cache(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 86
    def cache(&block)
      self.send :define_method, 'cache' do |item|
        self.instance_exec(item,&block)
      end
    end

external_link(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 42
    def external_link(&block)
      self.send :define_method, 'external_link' do |url,text|
        self.instance_exec(url,text,&block)
      end
    end

function(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 36
    def function(&block)
      self.send :define_method, 'function' do |name, params|
        self.instance_exec(name, params, &block)
      end
    end

get_section(id) click to toggle source

Get the section, along with any sub-section of the document

    # File lib/wikicloth/parser.rb, line 108
    def get_section(id)
      @wikicloth.sections.collect { |s| s.get_section(id) }.join
    end

image_url_for(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 24
    def image_url_for(&block)
      self.send :define_method, 'image_url_for' do |url|
        self.instance_exec(url, &block)
      end
    end

include_resource(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 48
    def include_resource(&block)
      self.send :define_method, 'include_resource' do |resource,options|
        options ||= []
        self.instance_exec(resource,options,&block)
      end
    end

link_attributes_for(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 80
    def link_attributes_for(&block)
      self.send :define_method, 'link_attributes_for' do |page|
        self.instance_exec(page,&block)
      end
    end

link_for(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 74
    def link_for(&block)
      self.send :define_method, 'link_for' do |page,text|
        self.instance_exec(page,text,&block)
      end
    end

link_for_resource(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 61
    def link_for_resource(&block)
      self.send :define_method, 'link_for_resource' do |prefix,resource,options|
        options ||= []
        self.instance_exec(prefix,resource,options,&block)
      end
    end

method_missing(method, *args) click to toggle source
Calls superclass method

    # File lib/wikicloth/parser.rb, line 93
    def method_missing(method, *args)
      if @wikicloth.respond_to?(method)
        @wikicloth.send(method, *args)
      else
        super(method, *args)
      end
    end

put_section(id,data) click to toggle source

Replace a section, along with any sub-section in the document

    # File lib/wikicloth/parser.rb, line 102
    def put_section(id,data)
      data = @wikicloth.sections.collect { |s| s.wikitext({ :replace => { id => data.last(1) == "\n" ? data : "#{data}\n" } }) }.join
      @wikicloth = WikiCloth.new(:data => data, :link_handler => self, :params => @options[:params])
    end

section_link(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 68
    def section_link(&block)
      self.send :define_method, 'section_link' do |section|
        self.instance_exec(section,&block)
      end
    end

template(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 55
    def template(&block)
      self.send :define_method, 'template' do |template|
        self.instance_exec(template,&block)
      end
    end

to_wiki() click to toggle source

    # File lib/wikicloth/parser.rb, line 112
    def to_wiki
      to_wikitext
    end

to_wikitext() click to toggle source

    # File lib/wikicloth/parser.rb, line 116
    def to_wikitext
      @wikicloth.sections.collect { |s| s.wikitext() }.join
    end

url_for(&block) click to toggle source

    # File lib/wikicloth/parser.rb, line 18
    def url_for(&block)
      self.send :define_method, 'url_for' do |url|
        self.instance_exec(url, &block)
      end
    end