From fa9024f57d048f7f24ad998407a23bafe783ca45 Mon Sep 17 00:00:00 2001 From: Juan Fuentes Date: Fri, 27 Jul 2018 15:54:53 -0400 Subject: [PATCH 1/3] Add failing unit test for issue #1 --- spec/mongoid_enumerable_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec/mongoid_enumerable_spec.rb b/spec/mongoid_enumerable_spec.rb index 1cf37cc..14dfd59 100644 --- a/spec/mongoid_enumerable_spec.rb +++ b/spec/mongoid_enumerable_spec.rb @@ -169,5 +169,19 @@ it { expect(another_klass).to_not respond_to(:st_completed)} end + + context 'when declared for a superclass' do + class SuperClass + include MongoidEnumerable + include Mongoid::Document + enumerable :status, %i(completed running failed waiting) + end + + class SubClass < SuperClass; end + + it 'preserves subclass in mongoid criterias' do + expect(SubClass.completed.klass).to equal(SubClass) + end + end end end From d9f071a31d7e4b3864acbc59803ba1dee0764669 Mon Sep 17 00:00:00 2001 From: Juan Fuentes Date: Fri, 27 Jul 2018 15:58:45 -0400 Subject: [PATCH 2/3] Fix issue #1 Define scopes as actual scopes instead of singleton methods --- lib/mongoid_enumerable.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/mongoid_enumerable.rb b/lib/mongoid_enumerable.rb index 0c418f6..c293980 100644 --- a/lib/mongoid_enumerable.rb +++ b/lib/mongoid_enumerable.rb @@ -23,9 +23,7 @@ def self.included(base) send(field_name) == value end - base.define_singleton_method(method_name) do - base.where(field_name => value) - end + scope value, -> { where(field_name => value) } end base.define_singleton_method("all_#{field_name}") do From 7007d9cce9ce5463611f17f7fe95ca59ae73e438 Mon Sep 17 00:00:00 2001 From: Juan Fuentes Date: Fri, 27 Jul 2018 16:00:37 -0400 Subject: [PATCH 3/3] Version 0.2.2 --- Gemfile.lock | 2 +- lib/mongoid_enumerable/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e96d8d1..d4174c8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - mongoid_enumerable (0.2.1) + mongoid_enumerable (0.2.2) mongoid (>= 4.0) GEM diff --git a/lib/mongoid_enumerable/version.rb b/lib/mongoid_enumerable/version.rb index 27475b8..d6e1f0d 100644 --- a/lib/mongoid_enumerable/version.rb +++ b/lib/mongoid_enumerable/version.rb @@ -1,3 +1,3 @@ module MongoidEnumerable - VERSION = "0.2.1" + VERSION = '0.2.2' end