summaryrefslogtreecommitdiff
path: root/spec/ruby/core/struct/members_spec.rb
blob: 1ff7b9387ad0ad3bcbeb7a0ce0a96aae86b54d35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require_relative '../../spec_helper'
require_relative 'fixtures/classes'
require_relative 'shared/accessor'

describe "Struct#members" do
  it "returns an array of attribute names" do
    StructClasses::Car.new.members.should == [:make, :model, :year]
    StructClasses::Car.new('Cadillac').members.should == [:make, :model, :year]
    StructClasses::Ruby.members.should == [:version, :platform]
  end

  it_behaves_like :struct_accessor, :members
end

describe "StructClass#members" do
  it "returns an array of attribute names" do
    StructClasses::Car.members.should == [:make, :model, :year]
  end

  context "class inheriting Struct" do
    it "isn't available in a subclass" do
      StructClasses::StructSubclass.should_not.respond_to?(:members)
    end
  end
end