diff options
Diffstat (limited to 'spec/ruby/core/data/define_spec.rb')
-rw-r--r-- | spec/ruby/core/data/define_spec.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/ruby/core/data/define_spec.rb b/spec/ruby/core/data/define_spec.rb new file mode 100644 index 0000000000..2aa2c50d4c --- /dev/null +++ b/spec/ruby/core/data/define_spec.rb @@ -0,0 +1,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 |