Sha256: 835e9fd14f894ada4e2ced69cdc06bb0218b04814429ab109dc84b3391d5f1d5

Contents?: true

Size: 1.15 KB

Versions: 129

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/enum'

::RSpec.describe ::EacRubyUtils::Enum do
  let(:klass) do
    ::Class.new(described_class) do
      attr_reader :color
      def initialize(key, color = :none)
        super(key)
        @color = color
      end

      enum :horse
      enum :pig, [:pink]
      enum(:dog, :white)
      enum(:cat) { :black }
    end
  end

  it { expect(klass.horse).to be_a(klass) }
  it { expect(klass.pig).to be_a(klass) }
  it { expect(klass.dog).to be_a(klass) }
  it { expect(klass.cat).to be_a(klass) }

  it { expect(klass.horse.color).to eq(:none) }
  it { expect(klass.pig.color).to eq(:pink) }
  it { expect(klass.dog.color).to eq(:white) }
  it { expect(klass.cat.color).to eq(:black) }

  it { expect(klass.const_get(:HORSE)).to eq(klass.horse) }
  it { expect(klass.const_get(:PIG)).to eq(klass.pig) }
  it { expect(klass.const_get(:DOG)).to eq(klass.dog) }
  it { expect(klass.const_get(:CAT)).to eq(klass.cat) }

  it { expect(klass.values).to eq([klass.horse, klass::PIG, klass.dog, klass::CAT]) }

  describe '#enum' do
    it do
      expect { klass.enum(:PiG) }.to raise_error(::ArgumentError)
    end
  end
end

Version data entries

129 entries across 129 versions & 2 rubygems

Version Path
eac_tools-0.76.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.76.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.75.2 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.75.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.75.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.74.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.74.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.73.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.72.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.70.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.70.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.69.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.69.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.68.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.67.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.67.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.66.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.65.1 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.65.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
eac_tools-0.64.0 sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb