Skip to content

Commit e5e083d

Browse files
authored
Merge pull request #41 from jiro4989/chore/document
📝 Update document
2 parents 8784f86 + 4dda4bc commit e5e083d

File tree

2 files changed

+110
-5
lines changed

2 files changed

+110
-5
lines changed

README.md

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
# faker
22

3-
Faker is a Nim package that generates fake data for you.
3+
![Build Status](https://github.com/jiro4989/faker/workflows/build/badge.svg)
44

5-
WIP
5+
faker is a Nim package that generates fake data for you.
6+
faker is heavily inspired by [Python Faker](https://github.com/joke2k/faker).
7+
8+
***WIP***
69

710
## Installation
811

912
```bash
10-
nimble install https://github.com/jiro4989/faker
13+
nimble install faker
1114
```
1215

1316
## Usage
@@ -20,22 +23,46 @@ import faker
2023
block:
2124
let fake = newFaker("ja_JP")
2225
echo fake.address()
26+
# -> 茨城県港区東三島31丁目3番16号
27+
28+
echo fake.name()
29+
# -> 若松 香織
2330
2431
block:
2532
# default locale is `LANG` environment variables
33+
2634
let fake = newFaker()
2735
echo fake.address()
36+
# -> 94622 Cesar Camp Apt. 13 South Caitlyn, HI 35128
37+
38+
echo fake.name()
39+
# -> Bruce Wagner DDS
2840
```
2941

3042
### CLI
3143

3244
```bash
3345
$ faker address
3446
大阪府調布市湯宮27丁目24番12号
47+
48+
# Set locale and run
49+
$ LANG=en_US.UTF-8 faker name
50+
Mr. Leonard Johns
3551
```
3652

53+
## Supported locale
54+
55+
I understand only English and Japanese.
56+
57+
| Locale | Description |
58+
| ------ | ----------- |
59+
| en_US | English |
60+
| ja_JP | Japanese |
61+
3762
## Providers
3863

64+
TODO list.
65+
3966
- [ ] base
4067
- [x] faker.provider.address
4168
- [ ] faker.provider.automotive
@@ -59,3 +86,51 @@ $ faker address
5986
- [ ] faker.provider.python
6087
- [ ] faker.provider.ssn
6188
- [ ] faker.provider.user_agent
89+
90+
## API document
91+
92+
* https://jiro4989.github.io/faker/faker.html
93+
94+
## Development
95+
96+
### Adding new module
97+
98+
You can generate a new module with `nimble genMod` task.
99+
Run below.
100+
101+
```bash
102+
$ nimble genMod new_module
103+
```
104+
105+
Please see other module implements, and edit a generated module.
106+
107+
### Update provider code
108+
109+
You can update `src/faker/provider/*.nim` codes with `nimble genProvs` task.
110+
Run below if you had edited a new module.
111+
112+
```bash
113+
$ nimble genProvs
114+
```
115+
116+
See `src/faker/provider/*.nim`.
117+
A new provider will be generated.
118+
119+
```bash
120+
$ ls -1 src/faker/provider/*.nim
121+
src/faker/provider/address.nim
122+
src/faker/provider/job.nim
123+
src/faker/provider/person.nim
124+
src/faker/provider/phone_number.nim
125+
src/faker/provider/new_module.nim # <--- New provider.
126+
src/faker/provider/util.nim
127+
```
128+
129+
## Pull request
130+
131+
Welcome :heart:
132+
133+
## LICENSE
134+
135+
MIT
136+

src/faker/cli/faker.nim

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,35 @@ import os
22

33
import ../../faker
44

5+
const
6+
usage = """faker generates fake data for you.
7+
8+
Usage:
9+
faker <subcommand>
10+
faker -h | --help
11+
12+
Examples:
13+
$ faker address
14+
$ LANG=en_US.UTF-8 faker person
15+
$ LANG=ja_JP.UTF-8 faker person
16+
17+
Avairable subcommand:
18+
address
19+
phone_number, phoneNumber
20+
job
21+
name
22+
23+
Avairable locale:
24+
en_US
25+
ja_JP
26+
27+
Options:
28+
-h, --help Show usage and exit.
29+
"""
30+
531
proc main(args: seq[string]): int =
632
if args.len < 1:
7-
stderr.writeLine "Need args"
33+
stderr.writeLine usage
834
return 1
935

1036
let subcmd = args[0]
@@ -14,8 +40,12 @@ proc main(args: seq[string]): int =
1440
of "phoneNumber": echo fake.phoneNumber()
1541
of "phone_number": echo fake.phoneNumber()
1642
of "job": echo fake.job()
43+
of "name": echo fake.name()
44+
of "-h", "--help": echo usage
1745
else:
18-
discard
46+
stderr.writeLine subcmd & " is not supported."
47+
stderr.writeLine "See 'faker -h'."
48+
return 1
1949

2050
when isMainModule:
2151
let args = commandLineParams()

0 commit comments

Comments
 (0)