bruce (owner)

Revisions

gist: 150965 Download_button fork
public
Public Clone URL: git://gist.github.com/150965.git
Embed All Files: show embed
neuter.rb #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Hack to convert arbitrary Ruby objects into vanilla objects
require 'yaml'
 
module Neutering
  def neuter
    serialized = YAML.dump(self)
    neutered = serialized.gsub(/ !ruby\/object\S+/, '')
    YAML.load(neutered)
  end
end
 
class Object
  include Neutering
end
 
# >> class Foo
# >> attr_reader :name
# >> def initialize(name)
# >> @name = name
# >> end
# >> end
#
# >> Foo.new('bar')
# => #<Foo:0x1105968 @name="bar">
# >> Foo.new('bar').neuter
# => {"name"=>"bar"}