diff options
Diffstat (limited to 'spec/ruby/core/data/define_spec.rb')
| -rw-r--r-- | spec/ruby/core/data/define_spec.rb | 34 |
1 files changed, 34 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..c0b4671e39 --- /dev/null +++ b/spec/ruby/core/data/define_spec.rb @@ -0,0 +1,34 @@ +require_relative '../../spec_helper' +require_relative 'fixtures/classes' + +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 |
