Skip to content

Pathname.new(Dir.new('dir_name')) raises a TypeError #1154

@senorprogrammer

Description

@senorprogrammer

Pathname.new should be able to accept a bare Dir.new instance as a param.

Expected Result

Returns a new instance of Pathname build from the Dir instance.

Actual Result

Raises a TypeError.

Steps to Reproduce

Test code (run from the Documents directory of a standard OS X user account).

d = Dir.new('Pictures')

pn = Pathname.new(d)

dir = pn.children.find { |child| child.directory? && child.basename.to_s == 'GoPro' }
puts dir.inspect

JRuby 1.7.5 result:

‼ ⚡ ruby dir_test.rb
TypeError: can't convert Dir into String
initialize at org/jruby/ext/pathname/RubyPathname.java:201
      (root) at dir_test.rb:7

MRI 1.9.3-p392 result:

✔ ⚡ ruby dir_test.rb
#<Pathname:Pictures/GoPro>

Work-around

pn = Pathname.new(d.path)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions