Sha256: 00efca3388f8ef9b68dce853c8dc15dd46e63071b63228c0dc15fd011e564654

Contents?: true

Size: 1.16 KB

Versions: 52

Compression:

Stored size: 1.16 KB

Contents

require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/classes.rb', __FILE__)

describe "String#each_byte" do
  it "passes each byte in self to the given block" do
    a = []
    "hello\x00".each_byte { |c| a << c }
    a.should == [104, 101, 108, 108, 111, 0]
  end

  it "keeps iterating from the old position (to new string end) when self changes" do
    r = ""
    s = "hello world"
    s.each_byte do |c|
      r << c
      s.insert(0, "<>") if r.size < 3
    end
    r.should == "h><>hello world"

    r = ""
    s = "hello world"
    s.each_byte { |c| s.slice!(-1); r << c }
    r.should == "hello "

    r = ""
    s = "hello world"
    s.each_byte { |c| s.slice!(0); r << c }
    r.should == "hlowrd"

    r = ""
    s = "hello world"
    s.each_byte { |c| s.slice!(0..-1); r << c }
    r.should == "h"
  end

  it "returns self" do
    s = "hello"
    (s.each_byte {}).should equal(s)
  end

  ruby_version_is "1.8.7" do
    it "returns an enumerator when no block given" do
      enum = "hello".each_byte
      enum.should be_an_instance_of(enumerator_class)
      enum.to_a.should == [104, 101, 108, 108, 111]
    end
  end

end

Version data entries

52 entries across 52 versions & 2 rubygems

Version Path
rhodes-7.6.0 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-7.5.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-7.4.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-7.1.17 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-6.2.0 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-6.0.11 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.18 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.17 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.15 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.0.22 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.2 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.0.7 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.0.3 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-5.5.0 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
tauplatform-1.0.3 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
tauplatform-1.0.2 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
tauplatform-1.0.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.5.1.12 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.3.5 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.4.2 spec/framework_spec/app/spec/core/string/each_byte_spec.rb