Sha256: b3a13b1f8275c4a6c275fb951746ef8695db2632ae8abf51fc2e2ac697beca4d

Contents?: true

Size: 1.61 KB

Versions: 2

Compression:

Stored size: 1.61 KB

Contents

module DeviseUserGenerator
  module Helper
    def devise_strategies
      {
        :default  => [:database_authenticatable, :confirmable, :recoverable, :rememberable, :trackable, :validatable],
        :admin    => [:database_authenticatable, :confirmable, :recoverable, :rememberable, :trackable, :validatable]
      }
    end

    def inherit_model hash                         
      File.replace_content_from model_file_name(subclass hash), :where => /class #{admin_class_name}/, :with => "class #{admin_class_name} < #{superclass hash}"
    end

    def superclass hash
      hash.values.first
    end

    def subclass hash
      hash.keys.first.to_s.camelize         
    end

    def remove_inheritance user
      File.remove_content_from model_file_name(user), :where => /<\s*ActiveRecord::Base/
    end  

    def has_admin_model?
      has_model? admin_class
    end

    def has_user_model?
      has_model? user_class        
    end

    def user_generator 
      active_record? ?  'devise' : "#{orm}:devise"
    end

    def has_devise_user? user
      return true if is_admin?(user) && !admin_class
      begin
        read_model(user) =~ /devise/
      rescue Exception => e
        logger.info "Exception for #has_devise_user? #{user}: #{e.message}"
        false
      end
    end

    def devise_users?
      has_devise_user?(user_class) && has_devise_user?(admin_class)
    end

    def is_admin? name
      name.to_s.underscore == admin_class
    end

    def admin_class_name
      admin_class.to_s.classify
    end
                
    def create_user_model name
      rgen "#{user_generator} #{name}"
    end  
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cream-0.8.7 lib/generators/devise/users/helper.rb
cream-0.8.6 lib/generators/devise/users/helper.rb