Class | Regexp
In: | yaml/rubytypes.rb
Parent: | Object

### Methods

to_yaml yaml_new

### Public Class methods

yaml_new( klass, tag, val )

[Source]

    # File yaml/rubytypes.rb, line 254
        def Regexp.yaml_new( klass, tag, val )
            if String === val and val =~ /^\/(.*)\/([mix]*)$/
                val = { 'regexp' => $1, 'mods' => $2 }
            end
            if Hash === val
                mods = nil
                unless val['mods'].to_s.empty?
                    mods = 0x00
                    mods |= Regexp::EXTENDED if val['mods'].include?( 'x' )
                    mods |= Regexp::IGNORECASE if val['mods'].include?( 'i' )
                    mods |= Regexp::MULTILINE if val['mods'].include?( 'm' )
                end
                val.delete( 'mods' )
                r = YAML::object_maker( klass, {} )
                Regexp.instance_method(:initialize).
                      bind(r).
                      call( val.delete( 'regexp' ), mods )
                val.each { |k,v| r.instance_variable_set( k, v ) }
                r
            else
                raise YAML::TypeError, "Invalid Regular expression: " + val.inspect
            end
        end

### Public Instance methods

to_yaml( opts = {} )

[Source]

    # File yaml/rubytypes.rb, line 277
            def to_yaml( opts = {} )
                    YAML::quick_emit( nil, opts ) do |out|
                if to_yaml_properties.empty?
                    out.scalar( taguri, self.inspect, :plain )
                else
                    out.map( taguri, to_yaml_style ) do |map|
                        src = self.inspect
                        if src =~ /\A\/(.*)\/([a-z]*)\Z/
                            map.add( 'regexp', $1 )
                            map.add( 'mods', $2 )
                        else
                                    raise YAML::TypeError, "Invalid Regular expression: " + src
                        end
                        to_yaml_properties.each do |m|
                            map.add( m, instance_variable_get( m ) )
                        end
                    end
                end
            end
            end

[Validate]