Sha256: 2a3c71ce93acb7f2ce03e4a81be4e8710ce305c9217cbf81d7c8e27f834bebae

Contents?: true

Size: 828 Bytes

Versions: 16

Compression:

Stored size: 828 Bytes

Contents

# encoding: utf-8
require 'spec_helper'
require 'rouge'

describe Rouge::Atom do
  describe ".new" do
    let(:v) { Rouge::Atom.new(:snorlax) }
    it { v.deref.should eq :snorlax }
  end

  describe "#==" do
    let(:a) { Rouge::Atom.new(:raichu) }
    let(:b) { Rouge::Atom.new(:raichu) }

    it { a.should_not == b }
  end

  describe "#swap!" do
    let(:v) { Rouge::Atom.new(456) }

    context "first swap" do
      before { v.swap!(lambda {|n| n * 2}) }
      it { v.deref.should eq 912 }

      context "second swap" do
        before { v.swap!(lambda {|n, m| [n / 2, m]}, 'quack') }
        it { v.deref.should eq [456, 'quack'] }
      end
    end
  end

  describe "#reset!" do
    let(:v) { Rouge::Atom.new(999) }
    before { v.reset!(:lol) }
    it { v.deref.should eq :lol }
  end
end

# vim: set sw=2 et cc=80:

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rouge-lang-0.0.16 spec/atom_spec.rb
rouge-lang-0.0.15 spec/atom_spec.rb
rouge-lang-0.0.14 spec/atom_spec.rb
rouge-lang-0.0.13 spec/atom_spec.rb
rouge-lang-0.0.12 spec/atom_spec.rb
rouge-lang-0.0.11 spec/atom_spec.rb
rouge-lang-0.0.10 spec/atom_spec.rb
rouge-lang-0.0.9 spec/atom_spec.rb
rouge-lang-0.0.8 spec/atom_spec.rb
rouge-lang-0.0.7 spec/atom_spec.rb
rouge-lang-0.0.6 spec/atom_spec.rb
rouge-lang-0.0.5 spec/atom_spec.rb
rouge-lang-0.0.4 spec/atom_spec.rb
rouge-lang-0.0.3 spec/atom_spec.rb
rouge-lang-0.0.2 spec/atom_spec.rb
rouge-lang-0.0.1 spec/atom_spec.rb