sorry if i’ve missed something obvious
is there a way in ruby to dynamically create an object from a variable
that holds the object’s name?
something that does object.create(“some_object_name”)
sorry if i’ve missed something obvious
is there a way in ruby to dynamically create an object from a variable
that holds the object’s name?
something that does object.create(“some_object_name”)
On Mon, May 25, 2009 at 5:58 PM, Ken T. [email protected] wrote:
sorry if i’ve missed something obvious
is there a way in ruby to dynamically create an object from a variable
that holds the object’s name?something that does object.create(“some_object_name”)
Try:
Kernel.const_get(“some_object_name”)
What’s the difference between that and
somename = ObjectClass.new
Ken T. wrote:
sorry if i’ve missed something obvious
is there a way in ruby to dynamically create an object from a variable
that holds the object’s name?something that does object.create(“some_object_name”)
Assuming you mean “a variable that holds the class’s name”, check out
Module.const_get. This method takes a string and returns the value of
the constant having that name. Since the value of the constant Array is
the Array class object, we can get the Array class object like this:
cls = Module.const_get(“Array”)
And then call new on the class object to create a new array:
ary = cls.new
Ken T. wrote:
sorry if i’ve missed something obvious
is there a way in ruby to dynamically create an object from a variable
that holds the object’s name?
That doesn’t make sense - if the object has a name then surely it
already exists?
Perhaps you wish to create an object where a variable holds the name of
the class you wish to create a new instance of. In that case:
klassname = “String”
klass = Object.const_get(klassname)
foo = klass.new
If the class name contains :: scope separator, then you need to split on
that first.
klass = klassname.split(’::’).inject(Object) { |base,item|
base.const_get(item)
}
On 25.05.2009 19:37, Ken T. wrote:
thanks for all the responses
i’m just learning ruby so sometimes i don’t know which end of the
screwdriver to grab
Hint: if it hurts you got the wrong end.
Kind regards
robert
thanks for all the responses
i’m just learning ruby so sometimes i don’t know which end of the
screwdriver to grab
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs