Repository: groovy Updated Branches: refs/heads/GROOVY_2_5_X 149abea2a -> 4318a0a7b
addendum to pr#661 move the examples in question into a test, so they will stay correct Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/4318a0a7 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/4318a0a7 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/4318a0a7 Branch: refs/heads/GROOVY_2_5_X Commit: 4318a0a7b098dc1c99eaa3285803cbe1f41f506b Parents: 149abea Author: paulk <pa...@asert.com.au> Authored: Mon Feb 12 11:55:53 2018 +1000 Committer: paulk <pa...@asert.com.au> Committed: Mon Feb 12 11:57:36 2018 +1000 ---------------------------------------------------------------------- src/spec/doc/style-guide.adoc | 35 +----------------- src/spec/test/StyleGuideTest.groovy | 61 ++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/4318a0a7/src/spec/doc/style-guide.adoc ---------------------------------------------------------------------- diff --git a/src/spec/doc/style-guide.adoc b/src/spec/doc/style-guide.adoc index 9b0cfd8..828e628 100644 --- a/src/spec/doc/style-guide.adoc +++ b/src/spec/doc/style-guide.adoc @@ -486,40 +486,7 @@ Here are some examples of those native constructs: [source,groovy] ---- -def list = [1, 4, 6, 9] - -// by default, keys are Strings, no need to quote them -// you can wrap keys with () like [(variableStateAcronym): stateName] to insert a variable or object as a key. -def map = [CA: 'California', MI: 'Michigan'] - -// ranges can be inclusive and exclusive -def range = 10..20 // inclusive -assert range.size() == 11 -// use brackets if you need to call a method on a range definition -assert (10..<20).size() == 10 // exclusive - -def pattern = ~/fo*/ - -// equivalent to add() -list << 5 - -// call contains() -assert 4 in list -assert 5 in list -assert 15 in range - -// subscript notation -assert list[1] == 4 - -// add a new key value pair -map << [WA: 'Washington'] -// subscript notation -assert map['CA'] == 'California' -// property notation -assert map.WA == 'Washington' - -// matches() strings against patterns -assert 'foo' ==~ pattern +include::{projectdir}/src/spec/test/StyleGuideTest.groovy[tags=data_structures,indent=0] ---- == The Groovy Development Kit http://git-wip-us.apache.org/repos/asf/groovy/blob/4318a0a7/src/spec/test/StyleGuideTest.groovy ---------------------------------------------------------------------- diff --git a/src/spec/test/StyleGuideTest.groovy b/src/spec/test/StyleGuideTest.groovy new file mode 100644 index 0000000..9dd9dd2 --- /dev/null +++ b/src/spec/test/StyleGuideTest.groovy @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import gls.CompilableTestSupport + +class StyleGuideTest extends CompilableTestSupport { + + void testDataStructures() { + // tag::data_structures[] + def list = [1, 4, 6, 9] + + // by default, keys are Strings, no need to quote them + // you can wrap keys with () like [(variableStateAcronym): stateName] to insert a variable or object as a key. + def map = [CA: 'California', MI: 'Michigan'] + + // ranges can be inclusive and exclusive + def range = 10..20 // inclusive + assert range.size() == 11 + // use brackets if you need to call a method on a range definition + assert (10..<20).size() == 10 // exclusive + + def pattern = ~/fo*/ + + // equivalent to add() + list << 5 + + // call contains() + assert 4 in list + assert 5 in list + assert 15 in range + + // subscript notation + assert list[1] == 4 + + // add a new key value pair + map << [WA: 'Washington'] + // subscript notation + assert map['CA'] == 'California' + // property notation + assert map.WA == 'Washington' + + // matches() strings against patterns + assert 'foo' ==~ pattern + // end::data_structures[] + } +}