Skip to content

Instantly share code, notes, and snippets.

@dcarley
Created September 27, 2012 08:16
Show Gist options
  • Save dcarley/3792838 to your computer and use it in GitHub Desktop.
Save dcarley/3792838 to your computer and use it in GitHub Desktop.
Unable to access original regex from Puppet HostClass
[1] pry(main)> require 'puppet'
=> true
[2] pry(main)> Puppet[:code] = "node /^foo\.\d{2}\.bar$/ {}"
=> "node /^foo.d{2}.bar$/ {}"
[3] pry(main)> node = Puppet::Node::Environment.new(Puppet[:environment]).known_resource_types.nodes.first
=> ["foo.d2.bar",
#<Puppet::Resource::Type:0x7f6fcc5f5fd0
@arguments={},
@doc="",
@line=1,
@name=/^foo.d{2}.bar$/,
@namespace="",
@resource_type_collection=
TypeCollection{:hostclasses=>[], :definitions=>[], :nodes=>["foo.d2.bar"]},
@type=:node>]
[4] pry(main)> node.last.name
=> "foo.d2.bar"
@dcarley
Copy link
Author

dcarley commented Sep 27, 2012

This works. But I'm pretty sure there's a better way.

[18] pry(main)> node.last.instance_eval { @name }
=> /^foo.d{2}.bar$/

@masterzen
Copy link

node.last.instance_var_get(:@name)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment