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 26 27 28 29 30 31 32 33 34 35 36
|
require_relative '../../spec_helper'
require_relative 'fixtures/classes'
ruby_version_is "3.2" do
describe "Data.define" do
it "accepts no arguments" do
empty_data = Data.define
empty_data.members.should == []
end
it "accepts symbols" do
movie = Data.define(:title, :year)
movie.members.should == [:title, :year]
end
it "accepts strings" do
movie = Data.define("title", "year")
movie.members.should == [:title, :year]
end
it "accepts a mix of strings and symbols" do
movie = Data.define("title", :year, "genre")
movie.members.should == [:title, :year, :genre]
end
it "accepts a block" do
movie = Data.define(:title, :year) do
def title_with_year
"#{title} (#{year})"
end
end
movie.members.should == [:title, :year]
movie.new("Matrix", 1999).title_with_year.should == "Matrix (1999)"
end
end
end
|