Sha256: aae9dbc37cfd75eea3c8ec090608e0e1ed47ce4718c8b56ea9e255522a6784c7

Contents?: true

Size: 864 Bytes

Versions: 2

Compression:

Stored size: 864 Bytes

Contents

require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")

describe "Sequel::Metaprogramming" do
  before do
    deprecated do
      Sequel.extension :meta_def
    end
  end
  after do
    Sequel::Metaprogramming.send(:remove_method, :meta_def)
  end

  it "should add meta_def method to Database, Dataset, and Model classes and instances" do
    Sequel::Database.meta_def(:foo){1}
    Sequel::Database.foo.must_equal 1
    Sequel::Dataset.meta_def(:foo){2}
    Sequel::Dataset.foo.must_equal 2
    Sequel::Model.meta_def(:foo){3}
    Sequel::Model.foo.must_equal 3
    o = Sequel::Database.new
    o.meta_def(:foo){4}
    o.foo.must_equal 4
    
    o = o[:a]
    # SEQUEL5: Remove
    unless o.frozen?
      o.meta_def(:foo){5}
      o.foo.must_equal 5
    end

    o = Sequel::Model.new
    o.meta_def(:foo){6}
    o.foo.must_equal 6
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sequel-4.49.0 spec/extensions/meta_def_spec.rb
sequel-4.48.0 spec/extensions/meta_def_spec.rb