Module: Monarchy::ActsAsResource::ClassMethods

Defined in:
lib/monarchy/acts_as_resource.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_resource(options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/monarchy/acts_as_resource.rb', line 7

def acts_as_resource(options = {})
  extend Monarchy::ActsAsResource::SupportMethods
  setup_acting

  parent_as(options[:parent_as]) if options[:parent_as]

  after_create :ensure_hierarchy
  after_save :assign_parent

  has_many :members, through: :hierarchy, class_name: "::#{Monarchy.member_class}"
  has_many :users, through: :members, class_name: "::#{Monarchy.user_class}"
  has_one :hierarchy, as: :resource, dependent: :destroy, class_name: 'Monarchy::Hierarchy'

  include_scopes

  include Monarchy::ActsAsResource::InstanceMethods
end