Documentation ¶
Overview ¶
This package will be shared between Revel and Revel CLI eventually
Index ¶
- Variables
- func AddInitEventHandler(handler EventHandler)
- func FirstNonEmpty(strs ...string) string
- func IsBuiltinType(name string) bool
- type COMMAND
- type CommandConfig
- type EmbeddedTypeName
- type Event
- type EventHandler
- type EventResponse
- type MethodArg
- type MethodCall
- type MethodSpec
- type ModuleInfo
- type RevelCallback
- type RevelContainer
- type SourceInfo
- type TypeExpr
- type TypeInfo
- type Version
- func (v *Version) CompatibleFramework(c *CommandConfig) error
- func (v *Version) MajorNewer(o *Version) bool
- func (v *Version) MinorNewer(o *Version) bool
- func (v *Version) Newer(o *Version) bool
- func (v *Version) ParseVersion(version string) (err error)
- func (v *Version) String() string
- func (v *Version) VersionString() string
- type WrappedRevelCallback
Constants ¶
This section is empty.
Variables ¶
var RevelImportPath = "github.com/caeril/frevel/revel"
RevelImportPath Revel framework import path
var RevelModulesImportPath = "github.com/caeril/frevel/modules"
Functions ¶
func AddInitEventHandler ¶
func AddInitEventHandler(handler EventHandler)
Add event handler to listen for all system events
func FirstNonEmpty ¶
Returns the first non empty string from a list of arguements
func IsBuiltinType ¶
IsBuiltinType checks the given type is built-in types of Go
Types ¶
type CommandConfig ¶
type CommandConfig struct { Index COMMAND // The index Verbose []bool `short:"v" long:"debug" description:"If set the logger is set to verbose"` // True if debug is active FrameworkVersion *Version // The framework version CommandVersion *Version // The command version HistoricMode bool `long:"historic-run-mode" description:"If set the runmode is passed a string not json"` // True if debug is active ImportPath string // The import path (relative to a GOPATH) GoPath string // The GoPath GoCmd string // The full path to the go executable //SrcRoot string // The source root AppPath string // The application path (absolute) AppName string // The application name HistoricBuildMode bool `long:"historic-build-mode" description:"If set the code is scanned using the original parsers, not the go.1.11+"` // True if debug is active Vendored bool // True if the application is vendored PackageResolver func(pkgName string) error // a package resolver for the config BuildFlags []string `` /* 186-byte string literal not displayed */ GoModFlags []string `` /* 126-byte string literal not displayed */ New command.New `command:"new"` Build command.Build `command:"build"` Run command.Run `command:"run"` Package command.Package `command:"package"` Clean command.Clean `command:"clean"` Test command.Test `command:"test"` Version command.Version `command:"version"` }
The Command config for the line input
func (*CommandConfig) InitPackageResolver ¶
func (c *CommandConfig) InitPackageResolver()
Used to initialize the package resolver
func (*CommandConfig) SetVersions ¶
func (c *CommandConfig) SetVersions() (err error)
Sets the versions on the command config
func (*CommandConfig) UpdateImportPath ¶
func (c *CommandConfig) UpdateImportPath() error
Updates the import path depending on the command
type EmbeddedTypeName ¶
type EmbeddedTypeName struct {
ImportPath, StructName string
}
The embedded type name takes the import path and structure name
func (*EmbeddedTypeName) String ¶
func (s *EmbeddedTypeName) String() string
Convert the type to a properly formatted import line
type Event ¶
type Event int
The event type
const ( // Event type when templates are going to be refreshed (receivers are registered template engines added to the template.engine conf option) TEMPLATE_REFRESH_REQUESTED Event = iota // Event type when templates are refreshed (receivers are registered template engines added to the template.engine conf option) TEMPLATE_REFRESH_COMPLETED // Event type before all module loads, events thrown to handlers added to AddInitEventHandler REVEL_BEFORE_MODULES_LOADED // Event type before module loads, events thrown to handlers added to AddInitEventHandler REVEL_BEFORE_MODULE_LOADED // Event type after module loads, events thrown to handlers added to AddInitEventHandler REVEL_AFTER_MODULE_LOADED // Event type after all module loads, events thrown to handlers added to AddInitEventHandler REVEL_AFTER_MODULES_LOADED // Event type before server engine is initialized, receivers are active server engine and handlers added to AddInitEventHandler ENGINE_BEFORE_INITIALIZED // Event type before server engine is started, receivers are active server engine and handlers added to AddInitEventHandler ENGINE_STARTED // Event type after server engine is stopped, receivers are active server engine and handlers added to AddInitEventHandler ENGINE_SHUTDOWN // Called before routes are refreshed ROUTE_REFRESH_REQUESTED // Called after routes have been refreshed ROUTE_REFRESH_COMPLETED // Fired when a panic is caught during the startup process REVEL_FAILURE )
type EventHandler ¶
type EventHandler func(typeOf Event, value interface{}) (responseOf EventResponse)
The handler signature
type EventResponse ¶
type EventResponse int
The event response
func RaiseEvent ¶
func RaiseEvent(key Event, value interface{}) (response EventResponse)
Fires system events from revel
type MethodArg ¶
type MethodArg struct { Name string // Name of the argument. TypeExpr TypeExpr // The name of the type, e.g. "int", "*pkg.UserType" ImportPath string // If the arg is of an imported type, this is the import path. }
MethodArg holds the information of one argument
type MethodCall ¶
type MethodCall struct { Path string // e.g. "myapp/app/controllers.(*Application).Action" Line int Names []string }
methodCall describes a call to c.Render(..) It documents the argument names used, in order to propagate them to RenderArgs.
type MethodSpec ¶
type MethodSpec struct { Name string // Name of the method, e.g. "Index" Args []*MethodArg // Argument descriptors RenderCalls []*MethodCall // Descriptions of Render() invocations from this Method. }
MethodSpec holds the information of one Method
type ModuleInfo ¶
type RevelCallback ¶
type RevelCallback interface { FireEvent(key Event, value interface{}) (response EventResponse) PackageResolver(pkgName string) error }
func NewWrappedRevelCallback ¶
func NewWrappedRevelCallback(fe func(key Event, value interface{}) (response EventResponse), ie func(pkgName string) error) RevelCallback
Simple Wrapped RevelCallback
type RevelContainer ¶
type RevelContainer struct { BuildPaths struct { Revel string } Paths struct { Import string Source string Base string App string Views string Code []string Template []string Config []string } PackageInfo struct { Config config.Context Packaged bool DevMode bool Vendor bool } Application struct { Name string Root string } ImportPath string // The import path SourcePath string // The full source path RunMode string // The current run mode RevelPath string // The path to the Revel source code BasePath string // The base path to the application AppPath string // The application path (BasePath + "/app") ViewsPath string // The application views path CodePaths []string // All the code paths TemplatePaths []string // All the template paths ConfPaths []string // All the configuration paths Config *config.Context // The global config object Packaged bool // True if packaged DevMode bool // True if running in dev mode HTTPPort int // The http port HTTPAddr string // The http address HTTPSsl bool // True if running https HTTPSslCert string // The SSL certificate HTTPSslKey string // The SSL key AppName string // The application name AppRoot string // The application root from the config `app.root` CookiePrefix string // The cookie prefix CookieDomain string // The cookie domain CookieSecure bool // True if cookie is secure SecretStr string // The secret string MimeConfig *config.Context // The mime configuration ModulePathMap map[string]*ModuleInfo // The module path map }
The container object for describing all Revels variables
func NewRevelPaths ¶
func NewRevelPaths(mode, importPath, appSrcPath string, callback RevelCallback) (rp *RevelContainer, err error)
This function returns a container object describing the revel application eventually this type of function will replace the global variables.
func (*RevelContainer) LoadMimeConfig ¶
func (rp *RevelContainer) LoadMimeConfig() (err error)
LoadMimeConfig load mime-types.conf on init.
func (*RevelContainer) ResolveImportPath ¶
func (rp *RevelContainer) ResolveImportPath(importPath string) (string, error)
ResolveImportPath returns the filesystem path for the given import path. Returns an error if the import path could not be found.
type SourceInfo ¶
type SourceInfo struct { // StructSpecs lists type info for all structs found under the code paths. // They may be queried to determine which ones (transitively) embed certain types. StructSpecs []*TypeInfo // ValidationKeys provides a two-level lookup. The keys are: // 1. The fully-qualified function name, // e.g. "github.com/caeril/frevel/examples/chat/app/controllers.(*Application).Action" // 2. Within that func's file, the line number of the (overall) expression statement. // e.g. the line returned from runtime.Caller() // The result of the lookup the name of variable being validated. ValidationKeys map[string]map[int]string // A list of import paths. // Revel notices files with an init() function and imports that package. InitImportPaths []string // packageMap a map of import to system directory (if available) PackageMap map[string]string // contains filtered or unexported fields }
func (*SourceInfo) ControllerSpecs ¶
func (s *SourceInfo) ControllerSpecs() []*TypeInfo
ControllerSpecs returns the all the controllers that embeds `revel.Controller`
func (*SourceInfo) Merge ¶
func (s *SourceInfo) Merge(srcInfo2 *SourceInfo)
func (*SourceInfo) TestSuites ¶
func (s *SourceInfo) TestSuites() []*TypeInfo
TestSuites returns the all the Application tests that embeds `testing.TestSuite`
func (*SourceInfo) TypesThatEmbed ¶
func (s *SourceInfo) TypesThatEmbed(targetType, packageFilter string) (filtered []*TypeInfo)
TypesThatEmbed returns all types that (directly or indirectly) embed the target type, which must be a fully qualified type name, e.g. "github.com/caeril/frevel/revel.Controller"
type TypeExpr ¶
type TypeExpr struct { Expr string // The unqualified type expression, e.g. "[]*MyType" PkgName string // The default package idenifier Valid bool // contains filtered or unexported fields }
func NewTypeExprFromAst ¶
NewTypeExpr returns the syntactic expression for referencing this type in Go.
func NewTypeExprFromData ¶
Returns a new type from the data
type TypeInfo ¶
type TypeInfo struct { StructName string // e.g. "Application" ImportPath string // e.g. "github.com/caeril/frevel/examples/chat/app/controllers" PackageName string // e.g. "controllers" MethodSpecs []*MethodSpec // Method specifications, the action functions EmbeddedTypes []*EmbeddedTypeName // Used internally to identify controllers that indirectly embed *revel.Controller. }
TypeInfo summarizes information about a struct type in the app source code.
type Version ¶
type Version struct { Prefix string Major int Minor int Maintenance int Suffix string BuildDate string MinGoVersion string }
func ParseVersion ¶
Parse the version and return it as a Version object
func (*Version) CompatibleFramework ¶
func (v *Version) CompatibleFramework(c *CommandConfig) error
Returns true if this major revision is compatible
func (*Version) MajorNewer ¶
Returns true if this major revision is newer then the passed in
func (*Version) MinorNewer ¶
Returns true if this major or major and minor revision is newer then the value passed in
func (*Version) ParseVersion ¶
Parse the version and return it as a Version object
func (*Version) VersionString ¶
Convert the version to a string
type WrappedRevelCallback ¶
type WrappedRevelCallback struct { FireEventFunction func(key Event, value interface{}) (response EventResponse) ImportFunction func(pkgName string) error }
func (*WrappedRevelCallback) FireEvent ¶
func (w *WrappedRevelCallback) FireEvent(key Event, value interface{}) (response EventResponse)
Function to implement the FireEvent
func (*WrappedRevelCallback) PackageResolver ¶
func (w *WrappedRevelCallback) PackageResolver(pkgName string) error