lib/canard/adapters/mongoid.rb in canard-0.5.0.pre vs lib/canard/adapters/mongoid.rb in canard-0.6.0.pre

- old
+ new

@@ -1,43 +1,50 @@ +# frozen_string_literal: true + module Canard module Adapters - module Mongoid - + module Mongoid # :nodoc: private def add_role_scopes(*args) options = args.extract_options! valid_roles.each do |role| define_scopes_for_role role, options[:prefix] end - def with_any_role(*roles) + define_singleton_method(:with_any_role) do |*roles| where("(this.#{roles_attribute_name} & #{mask_for(*roles)}) > 0") end - def with_all_roles(*roles) + define_singleton_method(:with_all_roles) do |*roles| where("(this.#{roles_attribute_name} & #{mask_for(*roles)}) === #{mask_for(*roles)}") end - def with_only_roles(*roles) + define_singleton_method(:with_only_roles) do |*roles| where("this.#{roles_attribute_name} === #{mask_for(*roles)}") end end def has_roles_mask_accessors? - fields.include?(roles_attribute_name.to_s) || super + fields.include?(roles_attribute_name.to_s) || super end - def define_scopes_for_role(role, prefix=nil) + def define_scopes_for_role(role, prefix = nil) include_scope = [prefix, String(role).pluralize].compact.join('_') exclude_scope = "non_#{include_scope}" scope include_scope, -> { where("(this.#{roles_attribute_name} & #{mask_for(role)}) > 0") } - scope exclude_scope, -> { any_of({roles_attribute_name => { "$exists" => false }}, {roles_attribute_name => nil}, {"$where" => "(this.#{roles_attribute_name} & #{mask_for(role)}) === 0"}) } + scope exclude_scope, lambda { + any_of( + { roles_attribute_name => { '$exists' => false } }, + { roles_attribute_name => nil }, + '$where' => "(this.#{roles_attribute_name} & #{mask_for(role)}) === 0" + ) + } end end end end -Mongoid::Document::ClassMethods.send :include, Canard::Adapters::Mongoid -Mongoid::Document::ClassMethods.send :include, Canard::UserModel -Canard.find_abilities \ No newline at end of file +Mongoid::Document::ClassMethods.send(:include, Canard::Adapters::Mongoid) +Mongoid::Document::ClassMethods.send(:include, Canard::UserModel) +Canard.find_abilities