diff --git a/src/en/guide/GORM/advancedGORMFeatures/ormdsl/caching.gdoc b/src/en/guide/GORM/advancedGORMFeatures/ormdsl/caching.gdoc index bd88f7f8a33..6fb7d15e1be 100644 --- a/src/en/guide/GORM/advancedGORMFeatures/ormdsl/caching.gdoc +++ b/src/en/guide/GORM/advancedGORMFeatures/ormdsl/caching.gdoc @@ -103,5 +103,5 @@ Below is a description of the different cache settings and their usages: * @read-only@ - If your application needs to read but never modify instances of a persistent class, a read-only cache may be used. * @read-write@ - If the application needs to update data, a read-write cache might be appropriate. -* @nonstrict-read-write@ - If the application only occasionally needs to update data (ie. if it is very unlikely that two transactions would try to update the same item simultaneously) and strict transaction isolation is not required, a @nonstrict-read-write@ cache might be appropriate. +* @nonstrict-read-write@ - If the application only occasionally needs to update data (i.e. if it is very unlikely that two transactions would try to update the same item simultaneously) and strict transaction isolation is not required, a @nonstrict-read-write@ cache might be appropriate. * @transactional@ - The @transactional@ cache strategy provides support for fully transactional cache providers such as JBoss TreeCache. Such a cache may only be used in a JTA environment and you must specify @hibernate.transaction.manager_lookup_class@ in the @grails-app/conf/DataSource.groovy@ file's @hibernate@ config. diff --git a/src/en/guide/GORM/advancedGORMFeatures/ormdsl/tableAndColumnNames.gdoc b/src/en/guide/GORM/advancedGORMFeatures/ormdsl/tableAndColumnNames.gdoc index ad63e5dd164..539fe386f40 100644 --- a/src/en/guide/GORM/advancedGORMFeatures/ormdsl/tableAndColumnNames.gdoc +++ b/src/en/guide/GORM/advancedGORMFeatures/ormdsl/tableAndColumnNames.gdoc @@ -33,7 +33,7 @@ Here @firstName@ is a dynamic method within the @mapping@ Closure that has a sin h4. Column type -GORM supports configuration of Hibernate types with the DSL using the type attribute. This includes specifing user types that implement the Hibernate [org.hibernate.usertype.UserType|api:org.hibernate.usertype.UserType] interface, which allows complete customization of how a type is persisted. As an example if you had a @PostCodeType@ you could use it as follows: +GORM supports configuration of Hibernate types with the DSL using the type attribute. This includes specifying user types that implement the Hibernate [org.hibernate.usertype.UserType|api:org.hibernate.usertype.UserType] interface, which allows complete customization of how a type is persisted. As an example if you had a @PostCodeType@ you could use it as follows: {code:java} class Address { diff --git a/src/en/guide/GORM/domainClasses/sets,ListsAndMaps.gdoc b/src/en/guide/GORM/domainClasses/sets,ListsAndMaps.gdoc index 3857d1c2bc4..0f4298ce2f8 100644 --- a/src/en/guide/GORM/domainClasses/sets,ListsAndMaps.gdoc +++ b/src/en/guide/GORM/domainClasses/sets,ListsAndMaps.gdoc @@ -8,7 +8,7 @@ class Author { } {code} -The books property that GORM injects is a @java.util.Set@. Sets guarantee uniquenes but not order, which may not be what you want. To have custom ordering you configure the Set as a @SortedSet@: +The books property that GORM injects is a @java.util.Set@. Sets guarantee uniqueness but not order, which may not be what you want. To have custom ordering you configure the Set as a @SortedSet@: {code} class Author { diff --git a/src/en/guide/GORM/querying/criteria.gdoc b/src/en/guide/GORM/querying/criteria.gdoc index 963ba919df5..d93e7385c13 100644 --- a/src/en/guide/GORM/querying/criteria.gdoc +++ b/src/en/guide/GORM/querying/criteria.gdoc @@ -256,7 +256,7 @@ def accountNumber = results.getLong('number') To quote the documentation of Hibernate ScrollableResults: {quote} -A result iterator that allows moving around within the results by arbitrary increments. The Query / ScrollableResults pattern is very similar to the JDBC PreparedStatement/ ResultSet pattern and the semantics of methods of this interface are similar to the similarly named methods on ResultSet. +A result iterator that allows moving around within the results by arbitrary increments. The Query / ScrollableResults pattern is very similar to the JDBC PreparedStatement / ResultSet pattern and the semantics of methods of this interface are similar to the similarly named methods on ResultSet. {quote} Contrary to JDBC, columns of results are numbered from zero. diff --git a/src/en/guide/GORM/querying/detachedCriteria.gdoc b/src/en/guide/GORM/querying/detachedCriteria.gdoc index a76e0f9e842..ade494801ea 100644 --- a/src/en/guide/GORM/querying/detachedCriteria.gdoc +++ b/src/en/guide/GORM/querying/detachedCriteria.gdoc @@ -104,7 +104,7 @@ def results = Person.withCriteria { } {code} -Notice that in this case the subquery class is the same as the original criteria query class (ie. @Person@) and hence the query can be shortened to: +Notice that in this case the subquery class is the same as the original criteria query class (i.e. @Person@) and hence the query can be shortened to: {code} def results = Person.withCriteria { diff --git a/src/en/guide/async/asyncRequests.gdoc b/src/en/guide/async/asyncRequests.gdoc index 2d3fc340e9a..a95c80d947a 100644 --- a/src/en/guide/async/asyncRequests.gdoc +++ b/src/en/guide/async/asyncRequests.gdoc @@ -6,7 +6,7 @@ The reason being that with an asynchronous / non-blocking response, the one thre For example, if you have 70 available container threads and an action takes a minute to complete, if the actions are not executed in a non-blocking fashion the likelihood of all 70 threads being occupied and the container not being able to respond is quite high and you should consider asynchronous request processing. -Since Grails 2.3, Grails features a simplified API for creating asynchronous responses built on the @Promise@ mechism discussed previously. +Since Grails 2.3, Grails features a simplified API for creating asynchronous responses built on the @Promise@ mechanism discussed previously. The implementation is based on Servlet 3.0 async so to enable the async features you need to set your servlet target version to 3.0 in BuildConfig.groovy: diff --git a/src/en/guide/async/promises.gdoc b/src/en/guide/async/promises.gdoc index a913506e3bb..392779a4a05 100644 --- a/src/en/guide/async/promises.gdoc +++ b/src/en/guide/async/promises.gdoc @@ -150,7 +150,7 @@ import grails.async.* Promises.promiseFactory = new SynchronousPromiseFactory() {code} -Using the @PromiseFactory@ mechanism is theoritically possible to plug in other concurrency libraries into the Grails framework. +Using the @PromiseFactory@ mechanism is theoretically possible to plug in other concurrency libraries into the Grails framework. h3. DelegateAsync Transformation diff --git a/src/en/guide/commandLine/forkedMode.gdoc b/src/en/guide/commandLine/forkedMode.gdoc index 290ced0be31..6d21d61c2d3 100644 --- a/src/en/guide/commandLine/forkedMode.gdoc +++ b/src/en/guide/commandLine/forkedMode.gdoc @@ -40,9 +40,9 @@ grails.project.fork = [ ] {code} -h4. Using the Test Runnner Deamon to Speed-up Test Execution +h4. Using the Test Runner Daemon to Speed-up Test Execution -The defaut configuration for the testing is to activate a daemon to run tests using the @daemon@ argument: +The default configuration for the testing is to activate a daemon to run tests using the @daemon@ argument: {code} grails.project.fork = [ diff --git a/src/en/guide/commandLine/interactiveMode.gdoc b/src/en/guide/commandLine/interactiveMode.gdoc index fd97cfc0792..96e79feeaf8 100644 --- a/src/en/guide/commandLine/interactiveMode.gdoc +++ b/src/en/guide/commandLine/interactiveMode.gdoc @@ -20,4 +20,4 @@ Note that with \! (bang) commands, you get file path auto completion - ideal for The @stop-app@ command will stop an application that has been run with the @run-app@ command. -To exit interactive mode enter the @exit@ command. Note that if the Grails application has been run with @run-app@ normally it will terminate when the interactive mode console exits because the JVM will be terminated. An exception to this would be if the application were running in forked mode which means the application is running in a different JVM. In that case the application will be left running afer the interactive mode console terminates. If you want to exit interactive mode and stop an application that is running in forked mode, use the @quit@ command. The @quit@ command will stop the running application and then close interactive mode. +To exit interactive mode enter the @exit@ command. Note that if the Grails application has been run with @run-app@ normally it will terminate when the interactive mode console exits because the JVM will be terminated. An exception to this would be if the application were running in forked mode which means the application is running in a different JVM. In that case the application will be left running after the interactive mode console terminates. If you want to exit interactive mode and stop an application that is running in forked mode, use the @quit@ command. The @quit@ command will stop the running application and then close interactive mode. diff --git a/src/en/guide/conf/config/builtInOptions.gdoc b/src/en/guide/conf/config/builtInOptions.gdoc index 72aae819a16..e0d7be70833 100644 --- a/src/en/guide/conf/config/builtInOptions.gdoc +++ b/src/en/guide/conf/config/builtInOptions.gdoc @@ -34,7 +34,7 @@ On the runtime front, i.e. @Config.groovy@, there are quite a few more core sett h3. War generation * @grails.project.war.file@ - Sets the name and location of the WAR file generated by the [war|commandLine] command -* @grails.war.dependencies@ - A closure containing Ant builder syntax or a list of JAR filenames. Lets you customise what libaries are included in the WAR file. +* @grails.war.dependencies@ - A closure containing Ant builder syntax or a list of JAR filenames. Lets you customise what libraries are included in the WAR file. * @grails.war.copyToWebApp@ - A closure containing Ant builder syntax that is legal inside an Ant copy, for example "fileset()". Lets you control what gets included in the WAR file from the "web-app" directory. * @grails.war.resources@ - A closure containing Ant builder syntax. Allows the application to do any other work before building the final WAR file diff --git a/src/en/guide/conf/config/logging.gdoc b/src/en/guide/conf/config/logging.gdoc index 7f91a320fc1..91298f7990c 100644 --- a/src/en/guide/conf/config/logging.gdoc +++ b/src/en/guide/conf/config/logging.gdoc @@ -92,7 +92,7 @@ This example configures loggers with names starting with 'org.codehaus.groovy.gr In other words, loggers are hierarchical. This makes configuring them by package much simpler than it would otherwise be. -The most common things that you will want to capture log output from are your controllers, services, and other artifacts. Use the convention mentioned earlier to do that: _grails.app.._. In particular the class name must be fully qualifed, i.e. with the package if there is one: +The most common things that you will want to capture log output from are your controllers, services, and other artifacts. Use the convention mentioned earlier to do that: _grails.app.._. In particular the class name must be fully qualified, i.e. with the package if there is one: {code:java} log4j = { diff --git a/src/en/guide/conf/dataSource.gdoc b/src/en/guide/conf/dataSource.gdoc index dc9bfc0ec60..b09caafa508 100644 --- a/src/en/guide/conf/dataSource.gdoc +++ b/src/en/guide/conf/dataSource.gdoc @@ -153,7 +153,7 @@ h4. More on dbCreate Hibernate can automatically create the database tables required for your domain model. You have some control over when and how it does this through the @dbCreate@ property, which can take these values: -* *create* - Drops the existing schemaCreates the schema on startup, dropping existing tables, indexes, etc. first. +* *create* - Drops the existing schema and creates the schema on startup, dropping existing tables, indexes, etc. first. * *create-drop* - Same as *create*, but also drops the tables when the application shuts down cleanly. * *update* - Creates missing tables and indexes, and updates the current schema without dropping any tables or data. Note that this can't properly handle many schema changes like column renames (you're left with the old column containing the existing data). * *validate* - Makes no changes to your database. Compares the configuration with the existing database schema and reports warnings. diff --git a/src/en/guide/conf/dependencyResolution.gdoc b/src/en/guide/conf/dependencyResolution.gdoc index 4333a4c6cd1..eaf695d1d72 100644 --- a/src/en/guide/conf/dependencyResolution.gdoc +++ b/src/en/guide/conf/dependencyResolution.gdoc @@ -1,6 +1,6 @@ Grails features a dependency resolution DSL that lets you control how plugins and JAR dependencies are resolved. -You can choose to use Aether (since Grails 2.3) or Apache Ivy as the dependency resolution engine. Aether is the dependency resolution library used by the Maven build tool, so if you are looking for Maven-like behavior then Aether is the better choise. Ivy allows more flexibility if you wish to resolve jars from flat file systems or none HTTP repositories. Aether is the default dependency resolution engine for Grails applications since Grails 2.3. +You can choose to use Aether (since Grails 2.3) or Apache Ivy as the dependency resolution engine. Aether is the dependency resolution library used by the Maven build tool, so if you are looking for Maven-like behavior then Aether is the better choice. Ivy allows more flexibility if you wish to resolve jars from flat file systems or none HTTP repositories. Aether is the default dependency resolution engine for Grails applications since Grails 2.3. {warning} As of Grails 2.4 the Ivy resolver is considered deprecated and no longer maintained. It is recommended all users switch to using Aether. diff --git a/src/en/guide/conf/dependencyResolution/mavendeploy.gdoc b/src/en/guide/conf/dependencyResolution/mavendeploy.gdoc index 56e9b3e4bd0..0ed80ec6cb2 100644 --- a/src/en/guide/conf/dependencyResolution/mavendeploy.gdoc +++ b/src/en/guide/conf/dependencyResolution/mavendeploy.gdoc @@ -57,7 +57,7 @@ remoteRepository(id: "myRepo", url: "scp://localhost/www/repository") { } {code} -By default the plugin will try to detect the protocol to use from the URL of the repository (ie "http" from "http://.." etc.), however to specify a different protocol you can do: +By default the plugin will try to detect the protocol to use from the URL of the repository (e.g. "http" from "http://.." etc.), however to specify a different protocol you can do: {code} grails maven-deploy --repository=myRepo --protocol=webdav diff --git a/src/en/guide/contributing.gdoc b/src/en/guide/contributing.gdoc index 480409a7404..c0701cb1682 100644 --- a/src/en/guide/contributing.gdoc +++ b/src/en/guide/contributing.gdoc @@ -1 +1 @@ -Grails is an open source project with an active community and we rely heavily on that community to help make Grails better. As such, there are various ways in which people can contribute to Grails. One of these is by [writing useful plugins|guide:plugins] and making them publicly available. In this chapter, we'll look at some fo the other options. +Grails is an open source project with an active community and we rely heavily on that community to help make Grails better. As such, there are various ways in which people can contribute to Grails. One of these is by [writing useful plugins|guide:plugins] and making them publicly available. In this chapter, we'll look at some of the other options. diff --git a/src/en/guide/contributing/build.gdoc b/src/en/guide/contributing/build.gdoc index bf3beedab37..45ba31f0934 100644 --- a/src/en/guide/contributing/build.gdoc +++ b/src/en/guide/contributing/build.gdoc @@ -3,7 +3,7 @@ If you're interested in contributing fixes and features to the core framework, y * A JDK (1.6 or above) * A git client -Once you have all the pre-requisite packages installed, the next step is to download the Grails source code, which is hosted at [GitHub|http://github.com] in several repositories owned by the ["grails" GitHub user|http://github.com/grails]. This is a simple case of cloning the repository you're interested in. For example, to getthe core framework run: +Once you have all the pre-requisite packages installed, the next step is to download the Grails source code, which is hosted at [GitHub|http://github.com] in several repositories owned by the ["grails" GitHub user|http://github.com/grails]. This is a simple case of cloning the repository you're interested in. For example, to get the core framework run: {code} git clone http://github.com/grails/grails-core.git diff --git a/src/en/guide/i18n.gdoc b/src/en/guide/i18n.gdoc index 1878fbec5fe..20083529a48 100644 --- a/src/en/guide/i18n.gdoc +++ b/src/en/guide/i18n.gdoc @@ -4,4 +4,4 @@ Grails supports Internationalization (i18n) out of the box by leveraging the und A Locale object represents a specific geographical, political, or cultural region. An operation that requires a Locale to perform its task is called locale-sensitive and uses the Locale to tailor information for the user. For example, displaying a number is a locale-sensitive operation--the number should be formatted according to the customs/conventions of the user's native country, region, or culture. {quote} -A Locale is made up of a [language code|http://www.loc.gov/standards/iso639-2/php/English_list.php] and a [country code|http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm]. For example "en_US" is the code for US english, whilst "en_GB" is the code for British English. +A Locale is made up of a [language code|http://www.loc.gov/standards/iso639-2/php/English_list.php] and a [country code|http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm]. For example "en_US" is the code for US English, whilst "en_GB" is the code for British English. diff --git a/src/en/guide/introduction/whatsNew/persistenceFeatures.gdoc b/src/en/guide/introduction/whatsNew/persistenceFeatures.gdoc index 1fb56da2cad..3b1e2faabd6 100644 --- a/src/en/guide/introduction/whatsNew/persistenceFeatures.gdoc +++ b/src/en/guide/introduction/whatsNew/persistenceFeatures.gdoc @@ -29,7 +29,7 @@ h4. New findOrCreate and findOrSave Methods Domain classes have support for the findOrCreateWhere, findOrSaveWhere, findOrCreateBy and findOrSaveBy query methods which behave just like findWhere and findBy methods except that they should never return null. If a matching instance cannot be found in the database then a new instance is created, populated with values represented in the query parameters and returned. In the case of findOrSaveWhere and findOrSaveBy, the instance is saved before being returned. {code} -def book = Book.findOrCreateWhere(author: 'Douglas Adams', title: "The Hitchiker's Guide To The Galaxy") +def book = Book.findOrCreateWhere(author: 'Douglas Adams', title: "The Hitchhiker's Guide To The Galaxy") def book = Book.findOrSaveWhere(author: 'Daniel Suarez', title: 'Daemon') def book = Book.findOrCreateByAuthorAndTitle('Daniel Suarez', 'Daemon') def book = Book.findOrSaveByAuthorAndTitle('Daniel Suarez', 'Daemon') diff --git a/src/en/guide/introduction/whatsNew22.gdoc b/src/en/guide/introduction/whatsNew22.gdoc index a73b68a5245..c43e02ffea3 100644 --- a/src/en/guide/introduction/whatsNew22.gdoc +++ b/src/en/guide/introduction/whatsNew22.gdoc @@ -70,7 +70,7 @@ def c = Box.createCriteria() def results = c.list { projections { - sqlProjection '(2 * (width + height)) as perimiter, (width * height) as area', ['perimeter', 'area'], [INTEGER, INTEGER] + sqlProjection '(2 * (width + height)) as perimeter, (width * height) as area', ['perimeter', 'area'], [INTEGER, INTEGER] } } {code} diff --git a/src/en/guide/introduction/whatsNew24.gdoc b/src/en/guide/introduction/whatsNew24.gdoc index 93ec8777569..77482a878b6 100644 --- a/src/en/guide/introduction/whatsNew24.gdoc +++ b/src/en/guide/introduction/whatsNew24.gdoc @@ -26,8 +26,8 @@ The asset-pipeline provides a new, easier to manage, faster means of managing yo All your assets should now live in the @grails-app/assets@ subfolders. Three folders are made for you by default: -* javascripts -* stylesheets +* javascript +* stylesheets * images Now, defining manifests are done directly in your JavaScript files, or CSS by using require directives! @@ -226,7 +226,7 @@ This means that the Maven plugin version number is no longer tied to the version h4. Unit Testing improvements -There is a Grails "unit testing runtime" that is based on the previous TestMixin based solution. It now separates the TestMixin classes and the actual runtime that handles the lifecycle of the Grails unit testing runtime. State of the runtime is not kept in static fields of the TestMixin classes anymore. The Groovy AST transformation behind the TestMixin annotation integrates to Junit and Spock test classes by adding Junit Rule fields to the class. In the previous solution, Before/BeforeClass and After/AfterClass annotations on AST added mix-in methods were used for the integration. +There is a Grails "unit testing runtime" that is based on the previous TestMixin based solution. It now separates the TestMixin classes and the actual runtime that handles the lifecycle of the Grails unit testing runtime. State of the runtime is not kept in static fields of the TestMixin classes anymore. The Groovy AST transformation behind the TestMixin annotation integrates to JUnit and Spock test classes by adding JUnit Rule fields to the class. In the previous solution, Before/BeforeClass and After/AfterClass annotations on AST added mix-in methods were used for the integration. Some of the main features: diff --git a/src/en/guide/plugins/evaluatingConventions.gdoc b/src/en/guide/plugins/evaluatingConventions.gdoc index 6a5cc1a9a2e..6677f5b66c3 100644 --- a/src/en/guide/plugins/evaluatingConventions.gdoc +++ b/src/en/guide/plugins/evaluatingConventions.gdoc @@ -34,7 +34,7 @@ The @GrailsClass@ interface has a number of useful methods that let you further * @getFullName@ - Returns the full name of the class in the application with the trailing convention part and with the package name * @getPropertyName@ - Returns the name of the class as a property name * @getLogicalPropertyName@ - Returns the logical property name of the class in the application without the trailing convention part if applicable -* @getNaturalName@ - Returns the name of the property in natural terms (eg. 'lastName' becomes 'Last Name') +* @getNaturalName@ - Returns the name of the property in natural terms (e.g. 'lastName' becomes 'Last Name') * @getPackageName@ - Returns the package name For a full reference refer to the [javadoc API|api:org.codehaus.groovy.grails.commons.GrailsClass]. diff --git a/src/en/guide/scaffolding.gdoc b/src/en/guide/scaffolding.gdoc index d92e8e2e083..65cbccefed5 100644 --- a/src/en/guide/scaffolding.gdoc +++ b/src/en/guide/scaffolding.gdoc @@ -13,7 +13,7 @@ As of Grails 2.3, the scaffolding feature has been moved to a plugin. By default } {code} -Version 1.0.0 of the plugin provides the same scaffolding seen in Grails 2.2.x and below. Version 2.0.x of the scaffolding plugin includes different scaffolding templates that are aligned with the new REST APIs introcued in Grails 2.3 and above. +Version 1.0.0 of the plugin provides the same scaffolding seen in Grails 2.2.x and below. Version 2.0.x of the scaffolding plugin includes different scaffolding templates that are aligned with the new REST APIs introduced in Grails 2.3 and above. h4. Dynamic Scaffolding diff --git a/src/en/guide/security/codecs.gdoc b/src/en/guide/security/codecs.gdoc index 3c77fee773d..f066053edd9 100644 --- a/src/en/guide/security/codecs.gdoc +++ b/src/en/guide/security/codecs.gdoc @@ -58,7 +58,7 @@ Example of usage: Note that the HTML encoding does not re-encode apostrophe/single quote so you must use double quotes on attribute values to avoid text with apostrophes affecting your page. {note} -HTMLCodec defaults to HTML4 style escaping (legacy HTMLCodec implementation in Grails ersions before 2.3.0 ) which escapes non-ascii characters. +HTMLCodec defaults to HTML4 style escaping (legacy HTMLCodec implementation in Grails versions before 2.3.0) which escapes non-ascii characters. You can use plain XML escaping instead of HTML4 escaping by setting this config property in Config.groovy: {code} diff --git a/src/en/guide/security/securingAgainstAttacks.gdoc b/src/en/guide/security/securingAgainstAttacks.gdoc index 3bc06270661..a85570da042 100644 --- a/src/en/guide/security/securingAgainstAttacks.gdoc +++ b/src/en/guide/security/securingAgainstAttacks.gdoc @@ -8,7 +8,7 @@ def vulnerable() { } {code} -or the analagous call using a GString: +or the analogous call using a GString: {code:java} def vulnerable() { diff --git a/src/en/guide/spring/theBeanBuilderDSLExplained.gdoc b/src/en/guide/spring/theBeanBuilderDSLExplained.gdoc index eaca589bb22..44de526dbaf 100644 --- a/src/en/guide/spring/theBeanBuilderDSLExplained.gdoc +++ b/src/en/guide/spring/theBeanBuilderDSLExplained.gdoc @@ -111,7 +111,7 @@ Here the example property of @AnotherBean@ is set using a runtime reference to t {code:java} ApplicationContext parent = ...// -der bb = new BeanBuilder(parent) +def bb = new BeanBuilder(parent) bb.beans { anotherBean(AnotherBean) { example = ref("${beanName}Bean", true) diff --git a/src/en/guide/staticTypeCheckingAndCompilation/grailsCompileStatic.gdoc b/src/en/guide/staticTypeCheckingAndCompilation/grailsCompileStatic.gdoc index 6785f452eb0..310ee151033 100644 --- a/src/en/guide/staticTypeCheckingAndCompilation/grailsCompileStatic.gdoc +++ b/src/en/guide/staticTypeCheckingAndCompilation/grailsCompileStatic.gdoc @@ -77,6 +77,6 @@ class SomeClass { } {code} -Code that is marked with @GrailsCompileStatic@ will all be statically compiled except for Grails specific interactions that cannot be statically compiled but that @GrailsCompileStatic@ can identify as permissable for dynamic dispatch. These include things like invoking dynamic finders and DSL code in configuration blocks like constraints and mapping closures in domain classes. +Code that is marked with @GrailsCompileStatic@ will all be statically compiled except for Grails specific interactions that cannot be statically compiled but that @GrailsCompileStatic@ can identify as permissible for dynamic dispatch. These include things like invoking dynamic finders and DSL code in configuration blocks like constraints and mapping closures in domain classes. Care must be taken when deciding to statically compile code. There are benefits associated with static compilation but in order to take advantage of those benefits you are giving up the power and flexibility of dynamic dispatch. For example if code is statically compiled it cannot take advantage of runtime metaprogramming enhancements which may be provided by plugins. \ No newline at end of file diff --git a/src/en/guide/testing.gdoc b/src/en/guide/testing.gdoc index 6249b04c4b0..f0a569e9aed 100644 --- a/src/en/guide/testing.gdoc +++ b/src/en/guide/testing.gdoc @@ -1,7 +1,7 @@ Automated testing is a key part of Grails. Hence, Grails provides many ways to making testing easier from low level unit testing to high level functional tests. This section details the different capabilities that Grails offers for testing. {note} -Grails 1.3.x and below used the @grails.test.GrailsUnitTestCase@ class hierarchy for testing in a JUnit 3 style. Grails 2.0.x and above deprecates these test harnesses in favour of mixins that can be applied to a range of different kinds of tests (JUnit 3, Junit 4, Spock etc.) without subclassing +Grails 1.3.x and below used the @grails.test.GrailsUnitTestCase@ class hierarchy for testing in a JUnit 3 style. Grails 2.0.x and above deprecates these test harnesses in favour of mixins that can be applied to a range of different kinds of tests (JUnit 3, JUnit 4, Spock etc.) without subclassing {note} The first thing to be aware of is that all of the @create-\*@ and @generate-\*@ commands create @unit@ or @integration@ tests automatically. For example if you run the [create-controller|commandLine] command as follows: diff --git a/src/en/guide/testing/unitTesting/unitTestingControllers.gdoc b/src/en/guide/testing/unitTesting/unitTestingControllers.gdoc index 6f4e59255b0..a35a7bbe368 100644 --- a/src/en/guide/testing/unitTesting/unitTestingControllers.gdoc +++ b/src/en/guide/testing/unitTesting/unitTestingControllers.gdoc @@ -718,7 +718,7 @@ class SimpleControllerSpec extends Specification { } {code} -The testing framework also supports allowing Grails to create the command object instance automatically. To test this invoke the no-arg version of the controller action method. Grails will create an instance of the command object, perform data binding on it using the request parameters and validate the object just like it does in when the application is runnning. See the test below. +The testing framework also supports allowing Grails to create the command object instance automatically. To test this invoke the no-arg version of the controller action method. Grails will create an instance of the command object, perform data binding on it using the request parameters and validate the object just like it does in when the application is running. See the test below. {code:java} import grails.test.mixin.TestFor diff --git a/src/en/guide/theWebLayer/ajax/ajaxSupport/ajaxEvents.gdoc b/src/en/guide/theWebLayer/ajax/ajaxSupport/ajaxEvents.gdoc index 9679ee68468..617f7c55454 100644 --- a/src/en/guide/theWebLayer/ajax/ajaxSupport/ajaxEvents.gdoc +++ b/src/en/guide/theWebLayer/ajax/ajaxSupport/ajaxEvents.gdoc @@ -12,7 +12,7 @@ The above code will execute the "showProgress()" function which may show a progr * @onSuccess@ - The JavaScript function to call if successful * @onFailure@ - The JavaScript function to call if the call failed -* @on_ERROR_CODE@ - The JavaScript function to call to handle specified error codes (eg on404="alert('not found!')") +* @onERROR_CODE@ - The JavaScript function to call to handle specified error codes (e.g. @on404="alert('not found!')"@) * @onUninitialized@ - The JavaScript function to call the a Ajax engine failed to initialise * @onLoading@ - The JavaScript function to call when the remote function is loading the response * @onLoaded@ - The JavaScript function to call when the remote function is completed loading the response diff --git a/src/en/guide/theWebLayer/controllers/controllerExceptionHandling.gdoc b/src/en/guide/theWebLayer/controllers/controllerExceptionHandling.gdoc index 8c09eb26654..3911188a2a3 100644 --- a/src/en/guide/theWebLayer/controllers/controllerExceptionHandling.gdoc +++ b/src/en/guide/theWebLayer/controllers/controllerExceptionHandling.gdoc @@ -64,7 +64,7 @@ The exception handler method names can be any valid method name. The name is no The exception handler methods can do anything that a controller action can do including invoking @render@, @redirect@, returning a model, etc. -One way to share exception handler methods across multiple controllers is to use inheritance. Exception handler methods are inherited into sublcasses so an application could define the exception handlers in an abstract class that multiple controllers extend from. Another way to share exception handler methods across multiple controllers is to use a trait, as shown below... +One way to share exception handler methods across multiple controllers is to use inheritance. Exception handler methods are inherited into subclasses so an application could define the exception handlers in an abstract class that multiple controllers extend from. Another way to share exception handler methods across multiple controllers is to use a trait, as shown below... {code:java} // src/groovy/com/demo/DatabaseExceptionHandler.groovy diff --git a/src/en/guide/theWebLayer/controllers/dataBinding.gdoc b/src/en/guide/theWebLayer/controllers/dataBinding.gdoc index 5d999601e33..b2c08e5c3ca 100644 --- a/src/en/guide/theWebLayer/controllers/dataBinding.gdoc +++ b/src/en/guide/theWebLayer/controllers/dataBinding.gdoc @@ -125,7 +125,7 @@ def band = Band.get(someBandId) band.properties = bindingMap {code} -When binding to a @Map@ the structure of the binding @Map@ is the same as the structore of a @Map@ used for binding to a @List@ or a @Set@ and the index inside of square brackets corresponds to the key in the @Map@ being bound to. See the following code: +When binding to a @Map@ the structure of the binding @Map@ is the same as the structure of a @Map@ used for binding to a @List@ or a @Set@ and the index inside of square brackets corresponds to the key in the @Map@ being bound to. See the following code: {code:java} class Album { @@ -154,7 +154,7 @@ assert album.players.vocals.name == 'Peter Gabriel' assert album.players.keyboards.name == 'Tony Banks' {code} -When updating an exisiting @Map@, if the key specified in the binding @Map@ does not exist in the @Map@ being bound to then a new value will be created and added to the @Map@ with the specified key as in the following example: +When updating an existing @Map@, if the key specified in the binding @Map@ does not exist in the @Map@ being bound to then a new value will be created and added to the @Map@ with the specified key as in the following example: {code} @@ -219,7 +219,7 @@ def save() { This has the same effect as using the implicit constructor. -When binding an empty String (a String with no characters in it, not even spaces), the data binder will convert the empty String to null. This simplifies the most common case where the intent is to treat an empty form field as having the value null since there isn't a way to actually submit a null as a request parameter. When this behavior is not desireable the application may assign the value directly. +When binding an empty String (a String with no characters in it, not even spaces), the data binder will convert the empty String to null. This simplifies the most common case where the intent is to treat an empty form field as having the value null since there isn't a way to actually submit a null as a request parameter. When this behavior is not desirable the application may assign the value directly. The mass property binding mechanism will by default automatically trim all Strings at binding time. To disable this behavior set the @grails.databinding.trimStrings@ property to false in @grails-app/conf/Config.groovy@. @@ -578,7 +578,7 @@ The default formats that are used are "yyyy-MM-dd HH:mm:ss.S" and "yyyy-MM-dd'T' h4. Custom Formatted Converters -You may supply your own handler for the [BindingFormat|api:org.grails.databinding.BindingFormat] annotation by writing a class which implements the [FormattedValueConverter|api:org.grails.databinding.converters.FormattedValueConverter] interface and regiserting an instance of that class as a bean in the Spring application context. Below is an example of a trivial custom String formatter that might convert the case of a String based on the value assigned to the BindingFormat annotation. +You may supply your own handler for the [BindingFormat|api:org.grails.databinding.BindingFormat] annotation by writing a class which implements the [FormattedValueConverter|api:org.grails.databinding.converters.FormattedValueConverter] interface and registering an instance of that class as a bean in the Spring application context. Below is an example of a trivial custom String formatter that might convert the case of a String based on the value assigned to the BindingFormat annotation. {code:java} package com.myapp.converters @@ -721,7 +721,7 @@ beans = { } {code} -When the data binder binds to an instance of the @Gadget@ class it will check to see if there are request parameters with names @compressedShape@ and @expandedShape@ which have a value of "struct" and if they do exist, that will trigger the use of the @StructuredShapeEditor@. The individual components of the structure need to have parameter names of the form propertyName_structuredElementName. In the case of the @Gadget@ class above that would mean that the @compressedShape@ request parameter should have a value of "struct" and the @compressedShape_width@ and @compressedShape_height@ parameters should have values which represent the width and the height of the compressed @Shape@. Similarly, the @expandedShape@ request parameter should have a value of "struct" and the @expandedShape_width@ and @expandedShape_height@ parameters should have values which represent the width and the hight of the expanded @Shape@. +When the data binder binds to an instance of the @Gadget@ class it will check to see if there are request parameters with names @compressedShape@ and @expandedShape@ which have a value of "struct" and if they do exist, that will trigger the use of the @StructuredShapeEditor@. The individual components of the structure need to have parameter names of the form propertyName_structuredElementName. In the case of the @Gadget@ class above that would mean that the @compressedShape@ request parameter should have a value of "struct" and the @compressedShape_width@ and @compressedShape_height@ parameters should have values which represent the width and the height of the compressed @Shape@. Similarly, the @expandedShape@ request parameter should have a value of "struct" and the @expandedShape_width@ and @expandedShape_height@ parameters should have values which represent the width and the height of the expanded @Shape@. {code} // grails-app/controllers/demo/DemoController.groovy diff --git a/src/en/guide/theWebLayer/gsp/makingChangesToADeployedApplication.gdoc b/src/en/guide/theWebLayer/gsp/makingChangesToADeployedApplication.gdoc index 462e03803d9..5a00961f04b 100644 --- a/src/en/guide/theWebLayer/gsp/makingChangesToADeployedApplication.gdoc +++ b/src/en/guide/theWebLayer/gsp/makingChangesToADeployedApplication.gdoc @@ -25,7 +25,7 @@ One thing to bear in mind with this technique is that every time you modify a GS There are also some System properties to control GSP reloading: {table} *Name* | *Description* | *Default* -grails.gsp.enable.reload | altervative system property for enabling the GSP reload mode without changing Config.groovy | +grails.gsp.enable.reload | alternative system property for enabling the GSP reload mode without changing Config.groovy | grails.gsp.reload.interval | interval between checking the lastmodified time of the gsp source file, unit is milliseconds | 5000 grails.gsp.reload.granularity | the number of milliseconds leeway to give before deciding a file is out of date. this is needed because different roundings usually cause a 1000ms difference in lastmodified times | 1000 {table} diff --git a/src/en/guide/theWebLayer/gsp/resources.gdoc b/src/en/guide/theWebLayer/gsp/resources.gdoc index e2600665cfd..5c5bc315fb3 100644 --- a/src/en/guide/theWebLayer/gsp/resources.gdoc +++ b/src/en/guide/theWebLayer/gsp/resources.gdoc @@ -7,11 +7,11 @@ However modern applications with dependencies on multiple JavaScript and CSS lib The issues that the Asset-Pipeline plugin tackles are: * Reduced Dependence - The plugin has compression, minification, and cache-digests built in. -* Easy Debugging - Makes for easy debugging by keeping files seperate in development mode. +* Easy Debugging - Makes for easy debugging by keeping files separate in development mode. * Asset Bundling using require [directives|http://bertramdev.github.io/asset-pipeline/guide/usage.html#directives]. -* Web application performance tuning is difficult -* The need for a standard way to expose static assets in plugins and applications -* The need for extinsible processing to make languages like LESS or Coffee first class citizens. +* Web application performance tuning is difficult. +* The need for a standard way to expose static assets in plugins and applications. +* The need for extensible processing to make languages like LESS or Coffee first class citizens. The asset-pipeline allows you to define your javascript or css requirements right at the top of the file and they get compiled on War creation. diff --git a/src/en/guide/theWebLayer/gsp/tags/tagsAsMethodCalls.gdoc b/src/en/guide/theWebLayer/gsp/tags/tagsAsMethodCalls.gdoc index 16ca2e7ea47..e892becc118 100644 --- a/src/en/guide/theWebLayer/gsp/tags/tagsAsMethodCalls.gdoc +++ b/src/en/guide/theWebLayer/gsp/tags/tagsAsMethodCalls.gdoc @@ -14,7 +14,7 @@ This is particularly useful for using a tag within an attribute: {code} -In view technologies that don't support this feature you have to nest tags within tags, which becomes messy quickly and often has an adverse effect of WYSWIG tools such as Dreamweaver that attempt to render the mark-up as it is not well-formed: +In view technologies that don't support this feature you have to nest tags within tags, which becomes messy quickly and often has an adverse effect of WYSIWYG tools such as Dreamweaver that attempt to render the mark-up as it is not well-formed: {code:xml} " /> diff --git a/src/en/guide/upgradingFrom22.gdoc b/src/en/guide/upgradingFrom22.gdoc index cf718bf1c57..73e7e7fcb3a 100644 --- a/src/en/guide/upgradingFrom22.gdoc +++ b/src/en/guide/upgradingFrom22.gdoc @@ -40,7 +40,7 @@ mavenRepo("http://artifactory.mycompany.com/repo") { h4. Dependency Metadata Changes -In addition, the POM and dependency metadata for Grails 2.3 has been re-arranged and cleaned up so that only direct dependencies are specified for an application and all other dependencies are inherited transitvely. This has implications to the upgrade since, for example, Ehcache is now a transitive dependency of the Hibernate plugin, whilst before it was a direct dependency. If get a compilation error related to Ehcache, it is most likely that you don't have the Hibernate plugin installed and need to directly declare the Ehcache dependency: +In addition, the POM and dependency metadata for Grails 2.3 has been re-arranged and cleaned up so that only direct dependencies are specified for an application and all other dependencies are inherited transitively. This has implications to the upgrade since, for example, Ehcache is now a transitive dependency of the Hibernate plugin, whilst before it was a direct dependency. If get a compilation error related to Ehcache, it is most likely that you don't have the Hibernate plugin installed and need to directly declare the Ehcache dependency: {code} compile "net.sf.ehcache:ehcache-core:2.4.6" @@ -143,7 +143,7 @@ $ grails -> test-app $ grails -> test-app {code} -Test execution will be noticably faster and is the recommended way to run tests in Grails. On older hardware that does not include multiple cores (to run the separate JVMs) it is recommended you disable forked execution for tests to achieve faster test execution times: +Test execution will be noticeably faster and is the recommended way to run tests in Grails. On older hardware that does not include multiple cores (to run the separate JVMs) it is recommended you disable forked execution for tests to achieve faster test execution times: {code} forkConfig = [maxMemory: 1024, minMemory: 64, debug: false, maxPerm: 256] diff --git a/src/en/guide/upgradingFrom23.gdoc b/src/en/guide/upgradingFrom23.gdoc index b6483042ff9..7d48678bb06 100644 --- a/src/en/guide/upgradingFrom23.gdoc +++ b/src/en/guide/upgradingFrom23.gdoc @@ -141,7 +141,7 @@ class SomeController { // then obj1 will be populated with values parsed from // the body instead of with values in params. - // With Grails 2.4 obj1 will be pouplated with values + // With Grails 2.4 obj1 will be populated with values // in params. def obj1 = new SomeDomainClass(params) diff --git a/src/en/guide/validation/validatingConstraints.gdoc b/src/en/guide/validation/validatingConstraints.gdoc index 5f54ff4325e..e2ca64a973f 100644 --- a/src/en/guide/validation/validatingConstraints.gdoc +++ b/src/en/guide/validation/validatingConstraints.gdoc @@ -35,7 +35,7 @@ if (user.hasErrors()) { } {code} -The second phase of validation happens when you call [validate|domainClasses] or [save|domainClasses]. This is when Grails will validate the bound values againts the [constraints|domainClasses] you defined. For example, by default the [save|domainClasses] method calls @validate@ before executing, allowing you to write code like: +The second phase of validation happens when you call [validate|domainClasses] or [save|domainClasses]. This is when Grails will validate the bound values against the [constraints|domainClasses] you defined. For example, by default the [save|domainClasses] method calls @validate@ before executing, allowing you to write code like: {code:java} if (user.save()) { diff --git a/src/en/guide/webServices/REST/hypermedia/hal.gdoc b/src/en/guide/webServices/REST/hypermedia/hal.gdoc index 63d61444769..ccd9bc97d0a 100644 --- a/src/en/guide/webServices/REST/hypermedia/hal.gdoc +++ b/src/en/guide/webServices/REST/hypermedia/hal.gdoc @@ -150,7 +150,7 @@ Date: Thu, 17 Oct 2013 02:34:14 GMT } {code} -Notice that the key associated with the list of @Book@ objects in the rendered JSON is @book@ which is derived from the type of objects in the collecion, namely @Book@. In order to customize the value of this key assign a value to the @collectionName@ property on the @HalJsonCollectionRenderer@ bean as shown below: +Notice that the key associated with the list of @Book@ objects in the rendered JSON is @book@ which is derived from the type of objects in the collection, namely @Book@. In order to customize the value of this key assign a value to the @collectionName@ property on the @HalJsonCollectionRenderer@ bean as shown below: {code} import grails.rest.render.hal.* diff --git a/src/en/guide/webServices/REST/renderers/objectMarshallerInterface.gdoc b/src/en/guide/webServices/REST/renderers/objectMarshallerInterface.gdoc index 47915549507..d0feea14b75 100644 --- a/src/en/guide/webServices/REST/renderers/objectMarshallerInterface.gdoc +++ b/src/en/guide/webServices/REST/renderers/objectMarshallerInterface.gdoc @@ -70,7 +70,7 @@ With the above change the output would now be: The Stand {code} -h4. Outputing Markup Using the Converters API or Builder +h4. Outputting Markup Using the Converters API or Builder With the passed Converter object you can explicitly code to the Converters API to stream markup to the response: diff --git a/src/en/guide/webServices/REST/renderers/objectMarshallers.gdoc b/src/en/guide/webServices/REST/renderers/objectMarshallers.gdoc index 3dc3de1d2d0..647fb23b058 100644 --- a/src/en/guide/webServices/REST/renderers/objectMarshallers.gdoc +++ b/src/en/guide/webServices/REST/renderers/objectMarshallers.gdoc @@ -9,7 +9,7 @@ XML.registerObjectMarshaller Book, { Book book, XML xml -> } {code} -You can customize the formatting of an indvidual value this way too. For example the [JodaTime plugin|http://grails.org/plugin/jodatime] does the following to support rendering of JodaTime dates in JSON output: +You can customize the formatting of an individual value this way too. For example the [JodaTime plugin|http://grails.org/plugin/jodatime] does the following to support rendering of JodaTime dates in JSON output: {code} JSON.registerObjectMarshaller(DateTime) { diff --git a/src/en/ref/Command Line/integrate-with.gdoc b/src/en/ref/Command Line/integrate-with.gdoc index b2feb3b4a2e..01543793780 100644 --- a/src/en/ref/Command Line/integrate-with.gdoc +++ b/src/en/ref/Command Line/integrate-with.gdoc @@ -32,6 +32,6 @@ eventIntegrateWithStart = { Fired Events: * @IntegrateWithStart@ - Fired when the script is first run -* @Integrate[NAME]Start@ - Fired when each integration starts (eg. IntegrateEclipseStart) -* @Integrate[NAME]End@ - Fired when each integration ends (eg. IntegrateIntellijEnd) +* @Integrate[NAME]Start@ - Fired when each integration starts (e.g. IntegrateEclipseStart) +* @Integrate[NAME]End@ - Fired when each integration ends (e.g. IntegrateIntellijEnd) * @IntegrateWithEnd@ - Fired when the script finishes diff --git a/src/en/ref/Tags/actionSubmit.gdoc b/src/en/ref/Tags/actionSubmit.gdoc index 00e349b3722..5281afeff99 100644 --- a/src/en/ref/Tags/actionSubmit.gdoc +++ b/src/en/ref/Tags/actionSubmit.gdoc @@ -71,7 +71,7 @@ This isn't too much of a problem when the form URL does not include an action na where the action specified in the mapping is either the default action of the controller, or the action specified in the @@ tag. -Also note that this tag relies on the multipart resolver to be able to inspect parameters included with mulitpart requests. If you disable the resolver by setting @grails.disableCommonsMultipart@ to true in @Config.groovy@, @actionSubmit@ will not work. +Also note that this tag relies on the multipart resolver to be able to inspect parameters included with multipart requests. If you disable the resolver by setting @grails.disableCommonsMultipart@ to true in @Config.groovy@, @actionSubmit@ will not work. h2. Source diff --git a/src/en/ref/Tags/currencySelect.gdoc b/src/en/ref/Tags/currencySelect.gdoc index e3460d7506f..dbde5fdd143 100644 --- a/src/en/ref/Tags/currencySelect.gdoc +++ b/src/en/ref/Tags/currencySelect.gdoc @@ -2,7 +2,7 @@ h1. currencySelect h2. Purpose -Generates an HTML select tag with currency symbols (eg. 'EUR', 'USD' etc.). +Generates an HTML select tag with currency symbols (e.g. 'EUR', 'USD', etc.). h2. Examples diff --git a/src/en/ref/Tags/datePicker.gdoc b/src/en/ref/Tags/datePicker.gdoc index e4fc66fa6a9..514803ad4dc 100644 --- a/src/en/ref/Tags/datePicker.gdoc +++ b/src/en/ref/Tags/datePicker.gdoc @@ -40,7 +40,7 @@ Attributes *** minute = 00 * @noSelection@ (optional) - A single-entry Map detailing the key and value to use for the "no selection made" choice in the select box. If there is no current selection this will be shown as it is first in the list, and if submitted with this selected, the key that you provide will be submitted. Typically this will be blank. * @years@ (optional) - A list or range of years to display, in the order specified. i.e. specify 2007..1900 for a reverse order list going back to 1900. If this attribute is not specified, a range of years from the current year + 100 to current year - 100 will be shown. -* @relativeYears@ (optional) - A range of int representing values relative to @value@. For example, a @relativeYears@ of [-2..7] and a @value@ of today will render a list of 10 years starting with 2 years ago through 7 years in the future. This can be useful for things like credit card expiration dates or birthdates which should be bound relative to today. +* @relativeYears@ (optional) - A range of int representing values relative to @value@. For example, a @relativeYears@ of [-2..7] and a @value@ of today will render a list of 10 years starting with 2 years ago through 7 years in the future. This can be useful for things like credit card expiration dates or birth dates which should be bound relative to today. h2. Source diff --git a/src/en/ref/Tags/formRemote.gdoc b/src/en/ref/Tags/formRemote.gdoc index 52f1cbea8cc..d50cd099793 100644 --- a/src/en/ref/Tags/formRemote.gdoc +++ b/src/en/ref/Tags/formRemote.gdoc @@ -77,7 +77,7 @@ Events * @onSuccess@ (optional) - The JavaScript function to call if successful * @onFailure@ (optional) - The JavaScript function to call if the call fails -* @on_ERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (eg on404="alert('not found!')") +* @onERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (e.g. @on404="alert('not found!')"@) * @onUninitialized@ (optional) - The JavaScript function to call if Ajax fails to initialise * @onLoading@ (optional) - The JavaScript function to call when the remote function loads the response * @onLoaded@ (optional) - The JavaScript function to call when the remote function completes loading the response diff --git a/src/en/ref/Tags/formatNumber.gdoc b/src/en/ref/Tags/formatNumber.gdoc index 4a5ad1b6b9c..c77d632f442 100644 --- a/src/en/ref/Tags/formatNumber.gdoc +++ b/src/en/ref/Tags/formatNumber.gdoc @@ -42,7 +42,7 @@ h2. Description Attributes -* @number@ (required) - The number object to formate +* @number@ (required) - The number object to format * @format@ (optional) - The formatting pattern to use for the number, see [DecimalFormat|api:java.text.DecimalFormat] * @formatName@ (optional) - Look up @format@ from the default MessageSource / ResourceBundle (i18n/*.properties file) with this key. Look up @format@ from the default MessageSource / ResourceBundle (i18n/*.properties file) with this key. If @format@ and @formatName@ are empty, @format@ is looked up with '@default.number.format@' key. If the key is missing, '0' formatting pattern is used. * @type@ (optional) - The type of formatter to use: 'number', 'currency' or 'percent' . @format@ or @formatName@ aren't used when @type@ is specified. diff --git a/src/en/ref/Tags/radioGroup.gdoc b/src/en/ref/Tags/radioGroup.gdoc index 0bffbe86761..353066c2ce6 100644 --- a/src/en/ref/Tags/radioGroup.gdoc +++ b/src/en/ref/Tags/radioGroup.gdoc @@ -48,7 +48,7 @@ Attributes * @name@ (required) - The name of the group * @values@ (required) - The list of values for the radio buttons * @value@ (optional) - The selected value -* @labels@ (optional) - Labels for each value contained in the @values@ list. If this is ommitted the label property on the iterator variable (see below) will default to 'Radio ' + value. +* @labels@ (optional) - Labels for each value contained in the @values@ list. If this is omitted the label property on the iterator variable (see below) will default to 'Radio ' + value. h2. Source diff --git a/src/en/ref/Tags/remoteField.gdoc b/src/en/ref/Tags/remoteField.gdoc index 45a5d57b3f4..9cedd3859ff 100644 --- a/src/en/ref/Tags/remoteField.gdoc +++ b/src/en/ref/Tags/remoteField.gdoc @@ -54,7 +54,7 @@ Events * @onSuccess@ (optional) - The JavaScript function to call if successful * @onFailure@ (optional) - The JavaScript function to call if the call fails -* @on_ERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (eg on404="alert('not found!')") +* @onERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (e.g. @on404="alert('not found!')"@) * @onUninitialized@ (optional) - The JavaScript function to call if Ajax fails to initialise * @onLoading@ (optional) - The JavaScript function to call when the remote function loads the response * @onLoaded@ (optional) - The JavaScript function to call when the remote function completes loading the response diff --git a/src/en/ref/Tags/remoteFunction.gdoc b/src/en/ref/Tags/remoteFunction.gdoc index 123dcd2dd84..47a0a74e55e 100644 --- a/src/en/ref/Tags/remoteFunction.gdoc +++ b/src/en/ref/Tags/remoteFunction.gdoc @@ -73,7 +73,7 @@ Events * @onSuccess@ (optional) - The JavaScript function to call if successful * @onFailure@ (optional) - The JavaScript function to call if the call fails -* @on_ERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (eg on404="alert('not found!')") +* @onERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (e.g. @on404="alert('not found!')"@) * @onUninitialized@ (optional) - The JavaScript function to call if Ajax fails to initialise * @onLoading@ (optional) - The JavaScript function to call when the remote function loads the response * @onLoaded@ (optional) - The JavaScript function to call when the remote function completes loading the response diff --git a/src/en/ref/Tags/remoteLink.gdoc b/src/en/ref/Tags/remoteLink.gdoc index 0859f40590a..71e82a8cf2d 100644 --- a/src/en/ref/Tags/remoteLink.gdoc +++ b/src/en/ref/Tags/remoteLink.gdoc @@ -78,7 +78,7 @@ Events * @onSuccess@ (optional) - The JavaScript function to call if successful * @onFailure@ (optional) - The JavaScript function to call if the call fails -* @on_ERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (eg on404="alert('not found!')"). With Prototype, this prevents execution of @onSuccess@ and @onFailure@. +* @onERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (e.g. @on404="alert('not found!')"@). With Prototype, this prevents execution of @onSuccess@ and @onFailure@. * @onUninitialized@ (optional) - The JavaScript function to call if Ajax fails to initialise * @onLoading@ (optional) - The JavaScript function to call when the remote function loads the response * @onLoaded@ (optional) - The JavaScript function to call when the remote function completes loading the response diff --git a/src/en/ref/Tags/select.gdoc b/src/en/ref/Tags/select.gdoc index 55bdad2f9e0..d4b3cfef0ba 100644 --- a/src/en/ref/Tags/select.gdoc +++ b/src/en/ref/Tags/select.gdoc @@ -84,7 +84,7 @@ If you specify an @optionKey@ then be aware that you should use that property in name="book" from="${bookList}" /> {code} -In this case, @value@ should contain the ID of @favouriteBook@ rather than the book object itself because @optionKey@ is set to the @id@ property. +In this case, @value@ should contain the ID of @favoriteBook@ rather than the book object itself because @optionKey@ is set to the @id@ property. h2. Source diff --git a/src/en/ref/Tags/submitToRemote.gdoc b/src/en/ref/Tags/submitToRemote.gdoc index 093c0fdaee8..4fd8ed461a9 100644 --- a/src/en/ref/Tags/submitToRemote.gdoc +++ b/src/en/ref/Tags/submitToRemote.gdoc @@ -50,7 +50,7 @@ Events * @onSuccess@ (optional) - The JavaScript function to call if successful * @onFailure@ (optional) - The JavaScript function to call if the call fails -* @on_ERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (eg on404="alert('not found!')") +* @onERROR_CODE@ (optional) - The JavaScript function to call to handle the specified error code (e.g. @on404="alert('not found!')"@) * @onUninitialized@ (optional) - The JavaScript function to call if Ajax fails to initialise * @onLoading@ (optional) - The JavaScript function to call when the remote function loads the response * @onLoaded@ (optional) - The JavaScript function to call when the remote function completes loading the response