class Regexp
Public Class Methods
yaml_new( klass, tag, val )
click to toggle source
# File lib/syck/rubytypes.rb, line 264 def Regexp.yaml_new( klass, tag, val ) if String === val and val =~ /^\/(.*)\/([mixn]*)$/ 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' ) mods |= Regexp::NOENCODING if val['mods'].include?( 'n' ) end val.delete( 'mods' ) r = Syck::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 Syck::TypeError, "Invalid Regular expression: " + val.inspect end end
Public Instance Methods
to_yaml( opts = {} )
click to toggle source
Calls superclass method
Object#to_yaml
# File lib/syck/rubytypes.rb, line 288 def to_yaml( opts = {} ) return super unless YAML == Syck Syck::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 Syck::TypeError, "Invalid Regular expression: " + src end to_yaml_properties.each do |m| map.add( m, instance_variable_get( m ) ) end end end end end