class Mongoid::Generators::RolifyGenerator

Public Instance Methods

generate_model() click to toggle source
# File lib/generators/mongoid/rolify_generator.rb, line 11
def generate_model
  invoke "mongoid:model", [ name ]
end
inject_role_class() click to toggle source
# File lib/generators/mongoid/rolify_generator.rb, line 15
def inject_role_class
  inject_into_file(model_path, model_contents, :after => "include Mongoid::Document\n")
end
model_contents() click to toggle source
# File lib/generators/mongoid/rolify_generator.rb, line 31
      def model_contents
        content = <<RUBY
  has_and_belongs_to_many :%{user_cname}
  belongs_to :resource, :polymorphic => true

  field :name, :type => String

  index({
    :name => 1,
    :resource_type => 1,
    :resource_id => 1
  },
  { :unique => true})

  validates :resource_type,
            :inclusion => { :in => Rolify.resource_types },
            :allow_nil => true

  scopify
RUBY
        content % { :user_cname => user_cname.constantize.collection_name }
      end
model_path() click to toggle source
# File lib/generators/mongoid/rolify_generator.rb, line 27
def model_path
  File.join("app", "models", "#{file_path}.rb")
end
role_reference() click to toggle source
# File lib/generators/mongoid/rolify_generator.rb, line 23
def role_reference
  class_name.demodulize.underscore
end
user_reference() click to toggle source
# File lib/generators/mongoid/rolify_generator.rb, line 19
def user_reference
  user_cname.demodulize.underscore
end