(maint) Fix can't modify frozen Symbol error on Ruby 2.1.0
Without this patch we're getting the following error on Ruby 2.1.0:
can't modify frozen Symbol (Puppet::Error). This problem is caused by
our monkey patching which attempts to cache Symbol#to_proc return values
instead of creating new instances on every call.
As it turns out, the caching optimization is not necessary on Ruby 1.9.3
and later because Symbol#to_proc implements its own caching system in
these versions.
Here is the full error this patch avoids by not monkey patching
Symbol#to_proc on versions of Ruby prior to 1.9.3.
bundle exec rspec -fd spec/integration/agent/logging_spec.rb /workspace/serious/src/puppet/lib/puppet/util/monkey_patches.rb:79:in `to_proc': Could not autoload puppet/type/component: can't modify frozen Symbol (Puppet::Error) from /workspace/serious/src/puppet/lib/puppet/transaction/event.rb:15:in `<class:Event>' from /workspace/serious/src/puppet/lib/puppet/transaction/event.rb:8:in `<top (required)>' from /workspace/serious/src/puppet/lib/puppet/transaction.rb:13:in `require' from /workspace/serious/src/puppet/lib/puppet/transaction.rb:13:in `<class:Transaction>' from /workspace/serious/src/puppet/lib/puppet/transaction.rb:11:in `<top (required)>' from /workspace/serious/src/puppet/lib/puppet/type/component.rb:4:in `require' from /workspace/serious/src/puppet/lib/puppet/type/component.rb:4:in `<top (required)>' from /workspace/serious/src/puppet/lib/puppet/util/autoload.rb:61:in `load' from /workspace/serious/src/puppet/lib/puppet/util/autoload.rb:61:in `load_file' from /workspace/serious/src/puppet/lib/puppet/util/autoload.rb:202:in `load' from /workspace/serious/src/puppet/lib/puppet/metatype/manager.rb:159:in `type' from /workspace/serious/src/puppet/lib/puppet/type.rb:2466:in `<top (required)>' from /workspace/serious/src/puppet/lib/puppet.rb:175:in `require' from /workspace/serious/src/puppet/lib/puppet.rb:175:in `<top (required)>' from /workspace/serious/src/puppet/spec/spec_helper.rb:16:in `require' from /workspace/serious/src/puppet/spec/spec_helper.rb:16:in `<top (required)>' from /workspace/serious/src/puppet/spec/integration/agent/logging_spec.rb:2:in `require' from /workspace/serious/src/puppet/spec/integration/agent/logging_spec.rb:2:in `<top (required)>' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `block in load_spec_files' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run' from /workspace/serious/src/puppet/.bundle/gems/ruby/2.1.0/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'