Sha256: 2d56d84034271167e6d3a31312f84ed0aa4466c1a767189514dd4752a934c79a

Contents?: true

Size: 779 Bytes

Versions: 4

Compression:

Stored size: 779 Bytes

Contents

require File.expand_path(File.dirname(__FILE__) + '/spec_helper')

class DCI::TestModel
  class << self
    attr_accessor :model_class_method_invoked
    def model_class_method
      self.model_class_method_invoked = true
    end
  end
end

module DCI::TestRole
  include DCI::Role

  extended_metaclass_eval do
    self.model_class_method
  end
end

describe DCI::Role do
  let(:instance) { DCI::TestModel.new }

  context "mixed into a model class" do
    describe "#extended_metaclass_eval" do
      it "invokes the block on the extended object's metaclass" do
        instance.extend(DCI::TestRole)

        (class << instance; self; end).model_class_method_invoked.should be_true
        DCI::TestModel.model_class_method_invoked.should be_false
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dci-rails-0.1.3 spec/role_spec.rb
dci-rails-0.1.2 spec/role_spec.rb
dci-rails-0.1.1 spec/role_spec.rb
dci-rails-0.1.0 spec/role_spec.rb