Sha256: d629a8cdf78586e44698fd0c29c9f8917dfd9838a6a595018fe7a57f9d8c56b2
Contents?: true
Size: 988 Bytes
Versions: 7
Compression:
Stored size: 988 Bytes
Contents
require 'helper' describe Toy::Plugins do uses_constants('User', 'Game') it "keeps track of class that include toy store" do Toy.models.should == [User, Game] end describe ".plugin" do before do class_methods_mod = Module.new { def foo; 'foo' end } instance_methods_mod = Module.new { def bar; 'bar' end } @mod = Module.new { extend ActiveSupport::Concern } @mod.const_set(:ClassMethods, class_methods_mod) @mod.const_set(:InstanceMethods, instance_methods_mod) Toy.plugin(@mod) end it "includes module in all models" do [User, Game].each do |model| model.foo.should == 'foo' model.new.bar.should == 'bar' end end it "adds plugin to plugins" do Toy.plugins.should == [@mod] end it "adds plugins to classes declared after plugin was called" do create_constant('Move') Move.foo.should == 'foo' Move.new.bar.should == 'bar' end end end
Version data entries
7 entries across 7 versions & 1 rubygems