Skip to content

Commit

Permalink
Address instances, use PureConfig, introduce StringGenBuilder (#12)
Browse files Browse the repository at this point in the history
* Address instances, use PureConfig, introduce StringGenBuilder

* None-out the mima check

* set locale to US for tests (until other locales are supported)

* use java_opts

* fix env
  • Loading branch information
etspaceman authored Jul 5, 2020
1 parent db655b7 commit c1e4ae2
Show file tree
Hide file tree
Showing 47 changed files with 1,080 additions and 84 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/scala.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ on:

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
Expand All @@ -19,3 +17,5 @@ jobs:
java-version: 1.8
- name: Validate build
run: sbt validate
env:
JAVA_OPTS: -Duser.country=US -Duser.language=en
1 change: 0 additions & 1 deletion .scalafix.conf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ DisableSyntax {
noFinalVal = true
noXml = true
noDefaultArgs = true
noUniversalEquality = true
}

OrganizeImports {
Expand Down
8 changes: 5 additions & 3 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ credentials ++= (
libraryDependencies ++= Seq(
ScalaCheck,
TypesafeConfig,
PureConfig,
ApacheCommons,
ScalaTest % Test,
ScalaTestPlusScalaCheck % Test
Expand All @@ -32,9 +33,10 @@ scalacOptions ++= (ScalaVersionADT.fromString(scalaVersion.value) match {
case `2.12` => ScalacSettings.`2.12`
case `2.13` => ScalacSettings.`2.13`
})
mimaPreviousArtifacts := Set(
"io.github.etspaceman" %% "scalacheck-faker" % "1.0.1"
)
val mimaVersion: Option[String] = None
mimaPreviousArtifacts :=
mimaVersion.map("io.github.etspaceman" %% "scalacheck-faker" % _).toSet

homepage := Some(url("https://github.com/etspaceman/scalacheck-faker"))
licenses := Seq(
"MIT" -> url("https://github.com/etspaceman/scalacheck-faker/LICENSE")
Expand Down
1 change: 1 addition & 0 deletions project/LibraryDependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ object LibraryDependencies {
"org.scalatestplus" %% "scalacheck-1-14" % "3.1.0.0"
val KindProjector = "org.typelevel" % "kind-projector" % "0.11.0"
val OrganizeImports = "com.github.liancheng" %% "organize-imports" % "0.3.1-RC3"
val PureConfig = "com.github.pureconfig" %% "pureconfig" % "0.13.0"
}
2 changes: 2 additions & 0 deletions project/ScalacSettings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -100,5 +100,7 @@ object ScalacSettings {
"-Ywarn-unused:patvars",
"-Ywarn-unused:privates"
).contains(x)
) ++ Seq(
"-Ywarn-unused"
)
}
1 change: 0 additions & 1 deletion src/main/resources/default.conf
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
include "default/lorem.conf"
include "default/name.conf"
include "default/internet.conf"
2 changes: 2 additions & 0 deletions src/main/resources/en.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include "en/address.conf"
include "en/name.conf"
292 changes: 292 additions & 0 deletions src/main/resources/en/address.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
include "name.conf"

address {
city-prefixes = [North, East, West, South, New, Lake, Port]
city-suffixes = [town, ton, land, ville, berg, burgh, borough, bury, view, port, mouth, stad, furt, chester, mouth, fort, haven, side, shire]
city-builder = {
options = [
{parts = [{type = "seq-string-part", value = ${address.city-prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.first.names}}, {type = "seq-string-part", value = ${address.city-suffixes}}]},
{parts = [{type = "seq-string-part", value = ${address.city-prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.first.names}}]},
{parts = [{type = "seq-string-part", value = ${name.first.names}}, {type = "seq-string-part", value = ${address.city-suffixes}}]},
{parts = [{type = "seq-string-part", value = ${name.last.names}}, {type = "seq-string-part", value = ${address.city-suffixes}}]}
]
}
countries = [
{code = "AF", name = "Afghanistan"}
{code = "AL", name = "Albania"}
{code = "DZ", name = "Algeria"}
{code = "AS", name = "American Samoa"}
{code = "AD", name = "Andorra"}
{code = "AO", name = "Angola"}
{code = "AI", name = "Anguilla"}
{code = "AQ", name = "Antarctica"}
{code = "AG", name = "Antigua And Barbuda"}
{code = "AR", name = "Argentina"}
{code = "AM", name = "Armenia"}
{code = "AW", name = "Aruba"}
{code = "AU", name = "Australia"}
{code = "AT", name = "Austria"}
{code = "AX", name = "Aland Islands"}
{code = "AZ", name = "Azerbaijan"}
{code = "BS", name = "Bahamas"}
{code = "BH", name = "Bahrain"}
{code = "BD", name = "Bangladesh"}
{code = "BB", name = "Barbados"}
{code = "BY", name = "Belarus"}
{code = "BE", name = "Belgium"}
{code = "BZ", name = "Belize"}
{code = "BJ", name = "Benin"}
{code = "BM", name = "Bermuda"}
{code = "BT", name = "Bhutan"}
{code = "BO", name = "Bolivia"}
{code = "BQ", name = "Bonaire"}
{code = "BA", name = "Bosnia And Herzegovina"}
{code = "BW", name = "Botswana"}
{code = "BV", name = "Bouvet Island"}
{code = "BR", name = "Brazil"}
{code = "IO", name = "British Indian Ocean Territory"}
{code = "BN", name = "Brunei Darussalam"}
{code = "BG", name = "Bulgaria"}
{code = "BF", name = "Burkina Faso"}
{code = "BI", name = "Burundi"}
{code = "KH", name = "Cambodia"}
{code = "CM", name = "Cameroon"}
{code = "CA", name = "Canada"}
{code = "CV", name = "Cape Verde"}
{code = "KY", name = "Cayman Islands"}
{code = "CF", name = "Central African Republic"}
{code = "TD", name = "Chad"}
{code = "CL", name = "Chile"}
{code = "CN", name = "China"}
{code = "CX", name = "Christmas Island"}
{code = "CC", name = "Cocos (keeling) Islands"}
{code = "CO", name = "Colombia"}
{code = "KM", name = "Comoros"}
{code = "CG", name = "Congo"}
{code = "CD", name = "Congo, The Democratic Republic Of The"}
{code = "CK", name = "Cook Islands"}
{code = "CR", name = "Costa Rica"}
{code = "CI", name = "Cote D'ivoire"}
{code = "HR", name = "Croatia"}
{code = "CU", name = "Cuba"}
{code = "CW", name = "Curacao"}
{code = "CY", name = "Cyprus"}
{code = "CZ", name = "Czech Republic"}
{code = "DK", name = "Denmark"}
{code = "DJ", name = "Djibouti"}
{code = "DM", name = "Dominica"}
{code = "DO", name = "Dominican Republic"}
{code = "TP", name = "East Timor"}
{code = "EC", name = "Ecuador"}
{code = "EG", name = "Egypt"}
{code = "SV", name = "El Salvador"}
{code = "GQ", name = "Equatorial Guinea"}
{code = "ER", name = "Eritrea"}
{code = "EE", name = "Estonia"}
{code = "ET", name = "Ethiopia"}
{code = "FK", name = "Falkland Islands (malvinas)"}
{code = "FO", name = "Faroe Islands"}
{code = "FJ", name = "Fiji"}
{code = "FI", name = "Finland"}
{code = "FR", name = "France"}
{code = "GF", name = "French Guiana"}
{code = "PF", name = "French Polynesia"}
{code = "TF", name = "French Southern Territories"}
{code = "GA", name = "Gabon"}
{code = "GM", name = "Gambia"}
{code = "GE", name = "Georgia"}
{code = "DE", name = "Germany"}
{code = "GH", name = "Ghana"}
{code = "GI", name = "Gibraltar"}
{code = "GR", name = "Greece"}
{code = "GL", name = "Greenland"}
{code = "GD", name = "Grenada"}
{code = "GP", name = "Guadeloupe"}
{code = "GU", name = "Guam"}
{code = "GT", name = "Guatemala"}
{code = "GG", name = "Guernsey"}
{code = "GN", name = "Guinea"}
{code = "GW", name = "Guinea-bissau"}
{code = "GY", name = "Guyana"}
{code = "HT", name = "Haiti"}
{code = "HM", name = "Heard Island And Mcdonald Islands"}
{code = "VA", name = "Holy See (vatican City State)"}
{code = "HN", name = "Honduras"}
{code = "HK", name = "Hong Kong"}
{code = "HU", name = "Hungary"}
{code = "IS", name = "Iceland"}
{code = "IN", name = "India"}
{code = "ID", name = "Indonesia"}
{code = "IR", name = "Iran, Islamic Republic Of"}
{code = "IQ", name = "Iraq"}
{code = "IE", name = "Ireland"}
{code = "IM", name = "Isle of Man"}
{code = "IL", name = "Israel"}
{code = "IT", name = "Italy"}
{code = "JM", name = "Jamaica"}
{code = "JP", name = "Japan"}
{code = "JE", name = "Jersey"}
{code = "JO", name = "Jordan"}
{code = "KZ", name = "Kazakstan"}
{code = "KE", name = "Kenya"}
{code = "KI", name = "Kiribati"}
{code = "KP", name = "Korea, Democratic People's Republic Of"}
{code = "KR", name = "Korea, Republic Of"}
{code = "KV", name = "Kosovo"}
{code = "KW", name = "Kuwait"}
{code = "KG", name = "Kyrgyzstan"}
{code = "LA", name = "Lao People's Democratic Republic"}
{code = "LV", name = "Latvia"}
{code = "LB", name = "Lebanon"}
{code = "LS", name = "Lesotho"}
{code = "LR", name = "Liberia"}
{code = "LY", name = "Libyan Arab Jamahiriya"}
{code = "LI", name = "Liechtenstein"}
{code = "LT", name = "Lithuania"}
{code = "LU", name = "Luxembourg"}
{code = "MO", name = "Macau"}
{code = "MK", name = "Macedonia, The Former Yugoslav Republic Of"}
{code = "MG", name = "Madagascar"}
{code = "MW", name = "Malawi"}
{code = "MY", name = "Malaysia"}
{code = "MV", name = "Maldives"}
{code = "ML", name = "Mali"}
{code = "MT", name = "Malta"}
{code = "MH", name = "Marshall Islands"}
{code = "MQ", name = "Martinique"}
{code = "MR", name = "Mauritania"}
{code = "MU", name = "Mauritius"}
{code = "YT", name = "Mayotte"}
{code = "MX", name = "Mexico"}
{code = "FM", name = "Micronesia, Federated States Of"}
{code = "MD", name = "Moldova, Republic Of"}
{code = "MC", name = "Monaco"}
{code = "MN", name = "Mongolia"}
{code = "MS", name = "Montserrat"}
{code = "ME", name = "Montenegro"}
{code = "MA", name = "Morocco"}
{code = "MZ", name = "Mozambique"}
{code = "MM", name = "Myanmar"}
{code = "NA", name = "Namibia"}
{code = "NR", name = "Nauru"}
{code = "NP", name = "Nepal"}
{code = "NL", name = "Netherlands"}
{code = "AN", name = "Netherlands Antilles"}
{code = "NC", name = "New Caledonia"}
{code = "NZ", name = "New Zealand"}
{code = "NI", name = "Nicaragua"}
{code = "NE", name = "Niger"}
{code = "NG", name = "Nigeria"}
{code = "NU", name = "Niue"}
{code = "NF", name = "Norfolk Island"}
{code = "MP", name = "Northern Mariana Islands"}
{code = "NO", name = "Norway"}
{code = "OM", name = "Oman"}
{code = "PK", name = "Pakistan"}
{code = "PW", name = "Palau"}
{code = "PS", name = "Palestinian Territory, Occupied"}
{code = "PA", name = "Panama"}
{code = "PG", name = "Papua New Guinea"}
{code = "PY", name = "Paraguay"}
{code = "PE", name = "Peru"}
{code = "PH", name = "Philippines"}
{code = "PN", name = "Pitcairn"}
{code = "PL", name = "Poland"}
{code = "PT", name = "Portugal"}
{code = "PR", name = "Puerto Rico"}
{code = "QA", name = "Qatar"}
{code = "RE", name = "Reunion"}
{code = "RO", name = "Romania"}
{code = "RU", name = "Russian Federation"}
{code = "RW", name = "Rwanda"}
{code = "BL", name = "Saint Barthelemy"}
{code = "SH", name = "Saint Helena"}
{code = "KN", name = "Saint Kitts And Nevis"}
{code = "LC", name = "Saint Lucia"}
{code = "MF", name = "Saint Martin"}
{code = "PM", name = "Saint Pierre And Miquelon"}
{code = "VC", name = "Saint Vincent And The Grenadines"}
{code = "WS", name = "Samoa"}
{code = "SM", name = "San Marino"}
{code = "ST", name = "Sao Tome And Principe"}
{code = "SA", name = "Saudi Arabia"}
{code = "SN", name = "Senegal"}
{code = "RS", name = "Serbia"}
{code = "SC", name = "Seychelles"}
{code = "SL", name = "Sierra Leone"}
{code = "SG", name = "Singapore"}
{code = "SX", name = "Sint Maarten"}
{code = "SK", name = "Slovakia"}
{code = "SI", name = "Slovenia"}
{code = "SB", name = "Solomon Islands"}
{code = "SO", name = "Somalia"}
{code = "ZA", name = "South Africa"}
{code = "GS", name = "South Georgia And The South Sandwich Islands"}
{code = "SS", name = "South Sudan"}
{code = "ES", name = "Spain"}
{code = "LK", name = "Sri Lanka"}
{code = "SD", name = "Sudan"}
{code = "SR", name = "Suriname"}
{code = "SJ", name = "Svalbard And Jan Mayen"}
{code = "SZ", name = "Swaziland"}
{code = "SE", name = "Sweden"}
{code = "CH", name = "Switzerland"}
{code = "SY", name = "Syrian Arab Republic"}
{code = "TW", name = "Taiwan, Province Of China"}
{code = "TJ", name = "Tajikistan"}
{code = "TZ", name = "Tanzania, United Republic Of"}
{code = "TH", name = "Thailand"}
{code = "TL", name = "Timor-Leste"}
{code = "TG", name = "Togo"}
{code = "TK", name = "Tokelau"}
{code = "TO", name = "Tonga"}
{code = "TT", name = "Trinidad And Tobago"}
{code = "TN", name = "Tunisia"}
{code = "TR", name = "Turkey"}
{code = "TM", name = "Turkmenistan"}
{code = "TC", name = "Turks And Caicos Islands"}
{code = "TV", name = "Tuvalu"}
{code = "UG", name = "Uganda"}
{code = "UA", name = "Ukraine"}
{code = "AE", name = "United Arab Emirates"}
{code = "GB", name = "United Kingdom"}
{code = "US", name = "United States"}
{code = "UM", name = "United States Minor Outlying Islands"}
{code = "UY", name = "Uruguay"}
{code = "UZ", name = "Uzbekistan"}
{code = "VU", name = "Vanuatu"}
{code = "VE", name = "Venezuela"}
{code = "VN", name = "Viet Nam"}
{code = "VG", name = "Virgin Islands, British"}
{code = "VI", name = "Virgin Islands, U.s."}
{code = "WF", name = "Wallis And Futuna"}
{code = "EH", name = "Western Sahara"}
{code = "YE", name = "Yemen"}
{code = "ZM", name = "Zambia"}
{code = "ZW", name = "Zimbabwe"}
]
secondary-addresses = ["Apt. ###", "Suite ###"]
building-numbers = ["#####", "####", "###"]
street-suffixes = [Alley, Avenue, Branch, Bridge, Brook, Brooks, Burg, Burgs, Bypass, Camp, Canyon, Cape, Causeway, Center, Centers, Circle, Circles, Cliff, Cliffs, Club, Common, Corner, Corners, Course, Court, Courts, Cove, Coves, Creek, Crescent, Crest, Crossing, Crossroad, Curve, Dale, Dam, Divide, Drive, Drive, Drives, Estate, Estates, Expressway, Extension, Extensions, Fall, Falls, Ferry, Field, Fields, Flat, Flats, Ford, Fords, Forest, Forge, Forges, Fork, Forks, Fort, Freeway, Garden, Gardens, Gateway, Glen, Glens, Green, Greens, Grove, Groves, Harbor, Harbors, Haven, Heights, Highway, Hill, Hills, Hollow, Inlet, Inlet, Island, Island, Islands, Islands, Isle, Isle, Junction, Junctions, Key, Keys, Knoll, Knolls, Lake, Lakes, Land, Landing, Lane, Light, Lights, Loaf, Lock, Locks, Locks, Lodge, Lodge, Loop, Mall, Manor, Manors, Meadow, Meadows, Mews, Mill, Mills, Mission, Mission, Motorway, Mount, Mountain, Mountain, Mountains, Mountains, Neck, Orchard, Oval, Overpass, Park, Parks, Parkway, Parkways, Pass, Passage, Path, Pike, Pine, Pines, Place, Plain, Plains, Plains, Plaza, Plaza, Point, Points, Port, Port, Ports, Ports, Prairie, Prairie, Radial, Ramp, Ranch, Rapid, Rapids, Rest, Ridge, Ridges, River, Road, Road, Roads, Roads, Route, Row, Rue, Run, Shoal, Shoals, Shore, Shores, Skyway, Spring, Springs, Springs, Spur, Spurs, Square, Square, Squares, Squares, Station, Station, Stravenue, Stravenue, Stream, Stream, Street, Street, Streets, Summit, Summit, Terrace, Throughway, Trace, Track, Trafficway, Trail, Trail, Tunnel, Tunnel, Turnpike, Turnpike, Underpass, Union, Unions, Valley, Valleys, Via, Viaduct, View, Views, Village, Village, Villages, Ville, Vista, Vista, Walk, Walks, Wall, Way, Ways, Well, Wells]
street-prefixes = ["N.", "S.", "E.", "W."]
street-name-builder = {
options = [
{parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${address.street-suffixes}}]},
{parts = [{type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${address.street-suffixes}}]},
{parts = [{type = "seq-string-part", value = ${address.street-prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${address.street-suffixes}}]},
{parts = [{type = "seq-string-part", value = ${address.street-prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${address.street-suffixes}}]}
]
}
street-address-builder = {
options = [
{
parts = [
{type = "seq-string-part", value = ${address.building-numbers}, suffix = " "},
{type = "string-builder-part", value = ${address.street-name-builder}}
]
}
]
}
postal-code-builder = {options = [{parts = [{type = "string-part", value = "#####"}]}, {parts = [{type = "string-part", value = "#####-####"}]}]}
default-country = {code = "US", name = "United States"}
}
File renamed without changes.
1 change: 1 addition & 0 deletions src/main/resources/en_US.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include "en_US/address.conf"
Loading

0 comments on commit c1e4ae2

Please sign in to comment.