Sha256: 2045187ffff5d9bb9b63dc301211af193ba9cec8f0e1fa16c659a33d22c5016d

Contents?: true

Size: 1.2 KB

Versions: 83

Compression:

Stored size: 1.2 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper'
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes.rb'

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_kind_of(enumerator_class)
      enum.to_a.should == [104, 101, 108, 108, 111]
    end
  end

end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/string/each_byte_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/string/each_byte_spec.rb