All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.liftmodules.FoBoFA.FoBoFARes.scala Maven / Gradle / Ivy

There is a newer version: 1.7
Show newest version
package net.liftmodules

import _root_.net.liftweb._
import util.{ Props }
import http._
import common._

/**
 * ==FoBo Font Awesome Resource Module== 
 * 
 * This resource module provides Font Awesome resource components to the FoBo Font Awesome Toolkit module, 
 * but can also be used as-is, see below for setup information.
 * 
 * If you are using this module via the FoBo/FoBo module see also [[net.liftmodules.FoBo]] for setup information. 
 */
package object FoBoFARes {
  
  override def toString() = FoBoFARes.Resource.toString()

  /**
   * Initiate FoBo's Font Awesome Resource(s) in you bootstrap liftweb Boot.
   * 
   *  '''Example:'''
   * {{{
   *   import net.liftmodules.{FoBoFARes => FoBo}
   *    :
   *   FoBo.Resource.Init=FoBo.Resource.[Resource Object]
   * }}}
   * '''Note:''' To see available objects click on the round trait icon in the header of this page.
   */    
  abstract sealed trait Resource

  object Resource extends Resource {
    
    //we don't actually need to store the objects (for now) so lets just save 
    //the object name, we can easily change this if we need to
    private type Store = List[String] //List[Resource]
    private var store:Store = List()
    def Init:Store = store
    def Init_=(t:Resource):Store = {
      store = if (store contains t.toString) store else t.toString :: store
      store
    }   
    override def toString() = "FoBoFARes.Resource = "+store.toString()
    
    /**
     * Enable usage of FoBo's FontAwesome resources version 4․6․3 in your bootstrap liftweb Boot.
     * @version 4.6.3
     * 
     * '''Example:'''
     * 
     * {{{
     *   import net.liftmodules.{FoBoFARes => FoBo}
     *    :
     *   FoBo.Resource.Init=FoBo.Resource.FontAwesome450
     * }}}
     */    
     case object FontAwesome463 extends Resource {
       FoBoResources.init
       FoBoResources.fontAwesome463
     } 
    
    
    /**
     * Enable usage of FoBo's FontAwesome resources version 4․3․0 in your bootstrap liftweb Boot.
     * @version 4.3.0
     * 
     * '''Example:'''
     * 
     * {{{
     *   import net.liftmodules.{FoBoFARes => FoBo}
     *    :
     *   FoBo.Resource.Init=FoBo.Resource.FontAwesome430
     * }}}
     */    
     case object FontAwesome430 extends Resource {
       FoBoResources.init
       FoBoResources.fontAwesome430
     } 
    
    /**
     * Enable usage of FoBo's FontAwesome resources version 4․1․0 in your bootstrap liftweb Boot.
     * @version 4.1.0
     * 
     * '''Example:'''
     * 
     * {{{
     *   import net.liftmodules.{FoBoFARes => FoBo}
     *    :
     *   FoBo.Resource.Init=FoBo.Resource.FontAwesome410
     * }}}
     */    
     case object FontAwesome410 extends Resource {
       FoBoResources.init
       FoBoResources.fontAwesome410
     }  
     
    /**
     * Enable usage of FoBo's FontAwesome resources version 4․0․3 in your bootstrap liftweb Boot.
     * @version 4.0.3
     * 
     * '''Example:'''
     * 
     * {{{
     *   import net.liftmodules.{FoBoFARes => FoBo}
     *    :
     *   FoBo.Resource.Init=FoBo.Resource.FontAwesome403
     * }}}
     */    
     case object FontAwesome403 extends Resource {
       FoBoResources.init
       FoBoResources.fontAwesome403
     }   
     
    /**
     * Enable usage of FoBo's FontAwesome resources version 3․2․1 in your bootstrap liftweb Boot.
     * @version 3.2.1
     * 
     * '''Example:'''
     * 
     * {{{
     *   import net.liftmodules.{FoBoFARes => FoBo}
     *    :
     *   FoBo.Resource.Init=FoBo.Resource.FontAwesome321
     * }}}
     */    
     case object FontAwesome321 extends Resource {
       FoBoResources.init
       FoBoResources.fontAwesome321
     }        
    
  } //end Resource object   
  
 /**
  * Object holding internally used FoBo resources.
  */
  private object FoBoResources {

      lazy val init: Unit = {
        ResourceServer.allow {
          case "fobo" :: tail => true
        }
      }      
      
      lazy val fontAwesome463 = {
        ResourceServer.rewrite {
          case "fobo" :: "font-awesome.css" :: Nil if Props.devMode => List("fobo", "font-awesome", "4.6.3", "css", "font-awesome.css")
          case "fobo" :: "font-awesome.css" :: Nil => List("fobo", "font-awesome", "4.6.3", "css", "font-awesome.min.css")
        }
      }
      
      lazy val fontAwesome430 = {
        ResourceServer.rewrite {
          case "fobo" :: "font-awesome.css" :: Nil if Props.devMode => List("fobo", "font-awesome", "4.3.0", "css", "font-awesome.css")
          case "fobo" :: "font-awesome.css" :: Nil => List("fobo", "font-awesome", "4.3.0", "css", "font-awesome.min.css")
        }
      } 
      
      lazy val fontAwesome410 = {
        ResourceServer.rewrite {
          case "fobo" :: "font-awesome.css" :: Nil if Props.devMode => List("fobo", "font-awesome", "4.1.0", "css", "font-awesome.css")
          case "fobo" :: "font-awesome.css" :: Nil => List("fobo", "font-awesome", "4.1.0", "css", "font-awesome.min.css")
        }
      } 
      
      lazy val fontAwesome403 = {
        ResourceServer.rewrite {
          case "fobo" :: "font-awesome.css" :: Nil if Props.devMode => List("fobo", "font-awesome", "4.0.3", "css", "font-awesome.css")
          case "fobo" :: "font-awesome.css" :: Nil => List("fobo", "font-awesome", "4.0.3", "css", "font-awesome.min.css")
        }
      }  
      
      lazy val fontAwesome321 = {
        ResourceServer.rewrite {
          case "fobo" :: "font-awesome.css" :: Nil if Props.devMode => List("fobo", "font-awesome", "3.2.1", "css", "font-awesome.css")
          case "fobo" :: "font-awesome.css" :: Nil => List("fobo", "font-awesome", "3.2.1", "css", "font-awesome-min.css")
          case "fobo" :: "font-awesome-ie7.css" :: Nil if Props.devMode => List("fobo", "font-awesome", "3.2.1", "css", "font-awesome-ie7.css")
          case "fobo" :: "font-awesome-ie7.css" :: Nil => List("fobo", "font-awesome", "3.2.1", "css", "font-awesome-ie7-min.css")

        }
      }  
             
  }

}








© 2015 - 2025 Weber Informatics LLC | Privacy Policy