diff options
Diffstat (limited to 'spec/rubyspec/core/array/dig_spec.rb')
| -rw-r--r-- | spec/rubyspec/core/array/dig_spec.rb | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/spec/rubyspec/core/array/dig_spec.rb b/spec/rubyspec/core/array/dig_spec.rb deleted file mode 100644 index 9c20b2d160..0000000000 --- a/spec/rubyspec/core/array/dig_spec.rb +++ /dev/null @@ -1,54 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) - -ruby_version_is '2.3' do - describe "Array#dig" do - - it "returns #at with one arg" do - ['a'].dig(0).should == 'a' - ['a'].dig(1).should be_nil - end - - it "recurses array elements" do - a = [ [ 1, [2, '3'] ] ] - a.dig(0, 0).should == 1 - a.dig(0, 1, 1).should == '3' - a.dig(0, -1, 0).should == 2 - end - - it "returns the nested value specified if the sequence includes a key" do - a = [42, { foo: :bar }] - a.dig(1, :foo).should == :bar - end - - it "raises a TypeError for a non-numeric index" do - lambda { - ['a'].dig(:first) - }.should raise_error(TypeError) - end - - it "raises a TypeError if any intermediate step does not respond to #dig" do - a = [1, 2] - lambda { - a.dig(0, 1) - }.should raise_error(TypeError) - end - - it "raises an ArgumentError if no arguments provided" do - lambda { - [10].dig() - }.should raise_error(ArgumentError) - end - - it "returns nil if any intermediate step is nil" do - a = [[1, [2, 3]]] - a.dig(1, 2, 3).should == nil - end - - it "calls #dig on the result of #at with the remaining arguments" do - h = [[nil, [nil, nil, 42]]] - h[0].should_receive(:dig).with(1, 2).and_return(42) - h.dig(0, 1, 2).should == 42 - end - - end -end |
