Sha256: 093f5af9d7f6c8fd5b8a875358e507d183f99c4fb3c1fbd8840409f7d4753ae2

Contents?: true

Size: 860 Bytes

Versions: 5

Compression:

Stored size: 860 Bytes

Contents

module GroupedPage

  def self.included(base)
    base.class_eval {
      has_groups
      has_one :homegroup, :foreign_key => 'homepage_id', :class_name => 'Group'
      include InstanceMethods
      alias_method_chain :permitted_groups, :inheritance
    }
  end
  
  module InstanceMethods
    
    attr_reader :inherited_groups
    def inherited_groups
      @inherited_groups ||= self.parent ? Group.attached_to(self.ancestors) : []
    end

    def permitted_groups_with_inheritance
      permitted_groups_without_inheritance + inherited_groups
    end

    def cache?
      self.permitted_groups.empty?
    end        

    def has_inherited_group?(group)
      return self.inherited_groups.include?(group)
    end
    
    def group_is_inherited?(group)
      return self.has_inherited_group?(group) && !self.has_group?(group)
    end
    
  end

end


Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
radiant-reader-extension-2.0.0.rc4 lib/grouped_page.rb
radiant-reader_group-extension-1.2.4 lib/grouped_page.rb
radiant-reader_group-extension-1.2.3 lib/grouped_page.rb
radiant-reader_group-extension-1.2.2 lib/grouped_page.rb
radiant-reader_group-extension-1.2.1 lib/grouped_page.rb