-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* install Yard * add some basic docs to test with * and go go gadget yard * Revert "and go go gadget yard" This reverts commit b2c8000. * use square brackets not braces * fully document Faker::Blockchain * exclude deprecated methods * add version numbers to blockchain * update documentation to match what was discussed in #1330 * remove class level @faker.version from docs * update CONTRIBUTING.md * add documentation to Alphanumeric * consistently use braces for types * document the Books namespace * add doc url * Add yard docs for Faker::Blockchain::Tezos.block * update docs for named params * convert back to [] for types Although YARD supports any kind of bracket for the Typing, square brackets are used in the documentation. For those contributing, and unfamiliar with YARD, it would be best that our documentation matches the same style as that in YARD's tutorials and documentation. * document Faker::Creature::Animal * document Faker::Creature::Cat * document Faker::Creature::Dog * document Faker::Creature::Horse * Update lib/faker/default/alphanumeric.rb Co-Authored-By: Connor Shea <[email protected]> * Update lib/faker/creature/dog.rb Co-Authored-By: Connor Shea <[email protected]> * document Faker::Game * document Faker::Games::HalfLife * document Faker::Games::Zelda * document Faker::Games::SuperSmashBros * document Faker::TvShows::BreakingBad * Document Faker::Games::ElderScrolls * document Faker::Gender * document Faker::House * document Faker::ProgrammingLanguage * document Faker::Source * Update some of the docs to use examples without titles. * Update a few more docs to use examples without titles. * Update more docs to use title-less examples. * document Faker::Boolean * document Faker::Avatar * document Faker::Games::Fallout * document Faker::Games::Overwatch * document Faker::Hacker * Fix a method description. * Remove trailing whitespace. * document Faker::App * Add faker version for BreakingBad methods. * Add faker version to Zelda methods. * document Faker::Artist * Merge the examples for semantic_version in app.rb. * Add faker versions for elder_scrolls.rb and fallout.rb. Some of the Elder Scrolls methods were added after others, in 1.9.0. * Update version tags in Elder Scrolls and Fallout. * Clean up docs Co-Authored-By: Connor Shea <[email protected]> Update CONTRIBUTING.md to match new example format install Yard and go go gadget yard Revert "and go go gadget yard" This reverts commit b2c8000. fully document Faker::Blockchain exclude deprecated methods add version numbers to blockchain update documentation to match what was discussed in #1330 remove class level @faker.version from docs update CONTRIBUTING.md update existing yard docs clean up some of the docs * fix line ending issues
- Loading branch information
Showing
37 changed files
with
1,218 additions
and
104 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,3 +23,6 @@ coverage/* | |
# Ignore rvm and rbenv files | ||
.ruby-version | ||
.ruby-gemset | ||
|
||
.yardoc/ | ||
doc/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--no-private | ||
--tag faker.version:"Available since" | ||
--exclude lib/faker/deprecate/ | ||
--output-dir yard_docs | ||
lib/**/*.rb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,110 @@ | ||
We love pull requests. Here's a quick guide: | ||
|
||
1. Fork the repo. | ||
|
||
2. Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate: `bundle && bundle exec rake` | ||
|
||
3. We are using [Rubocop](https://github.com/bbatsov/rubocop) because we love static code analyzers. | ||
* Ways to run Rubocop: | ||
- `bundle exec rubocop` | ||
- `bundle exec rake` would run the test suite and after that it runs the Ruby static code analyzer. | ||
|
||
4. Please add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need a test! We use [Minitest](https://github.com/seattlerb/minitest) in this project. | ||
|
||
5. Make the test pass. Always use `sample`, `shuffle`, and `rand` from the Base class (just like the rest of the code) rather than `Array#sample`, `Array#shuffle` and `Kernel#rand` to preserve the deterministic feature. | ||
|
||
6. We care about code coverage and use `SimpleCov` to analyze the code and generate test coverage reports. It's possible to check the test coverage by running `open coverage/index.html`. Please make sure to not decrease our `current % covered` and add appropriate test cases when necessary. | ||
|
||
7. When adding a new class, add a new yaml file to `lib/locales/en` rather than adding translations to `lib/locales/en.yml`. For example, if you add Faker::MyThing, put your translations in `lib/locales/en/my_thing.yml`. See [the locale README](./lib/locales/en/README.md) for more info. | ||
|
||
8. When removing a method, don't forget to deprecate it. You can `extend Gem::Deprecate` and use the `deprecate` method to accomplish this task. | ||
|
||
9. Methods with optional arguments should use keyword rather than positional arguments. An exception to this could be a method that takes only one optional argument, and it's unlikely that that method would ever take more than one optional argument. | ||
|
||
10. Push to your fork and submit a pull request. | ||
|
||
### Github Flow for contributors and collaborators | ||
|
||
For those of you with commit access, please check out Scott Chacon's blog post about [github flow](http://scottchacon.com/2011/08/31/github-flow.html) | ||
|
||
> * Anything in the master branch is deployable | ||
> * To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes) | ||
> * Commit to that branch locally and regularly push your work to the same named branch on the server | ||
> * When you need feedback or help, or you think the branch is ready for merging, open a pull request | ||
> * After someone else has reviewed and signed off on the feature, you can merge it into master | ||
If you're reviewing a PR, you should ask yourself: | ||
> * Does it work as described? A PR should have a great description. | ||
> * Is it understandable? | ||
> * Is it well implemented? | ||
> * Is it well tested? | ||
> * Is it well documented? | ||
> * Is it following the structure of the project? | ||
### Syntax/Good practices: | ||
|
||
* Two spaces, no tabs. | ||
* No trailing whitespace. Blank lines should not have any space. | ||
* Prefer `&&`, `||` over `and`, `or`. | ||
* `MyClass.my_method(my_arg)` not `my_method( my_arg )` or `my_method my_arg`. | ||
* `a = b` and not `a=b`. | ||
* use dash syntax for yaml arrays: | ||
```Yaml | ||
# this | ||
a_things: | ||
- small_thing | ||
- big_thing | ||
- other_thing | ||
|
||
# instead of these: | ||
b_things: [small_thing, big_thing, other_thing] | ||
c_things: [ | ||
small_thing, | ||
big_thing, | ||
other_thing, | ||
] | ||
|
||
# If in doubt, `bundle exec rake reformat_yaml['lib/path/to/file.yml']` | ||
``` | ||
* In general, follow the conventions you see used in the source already. | ||
* **ALL SHALL OBEY THE RUBOCOP** | ||
|
||
### Tips | ||
|
||
* Use the `rake console` task to start a session with Faker loaded. | ||
We love pull requests. Here's a quick guide: | ||
|
||
1. Fork the repo. | ||
|
||
2. Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate: `bundle && bundle exec rake` | ||
|
||
3. We are using [Rubocop](https://github.com/bbatsov/rubocop) because we love static code analyzers. | ||
* Ways to run Rubocop: | ||
- `bundle exec rubocop` | ||
- `bundle exec rake` would run the test suite and after that it runs the Ruby static code analyzer. | ||
|
||
4. Please add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need a test! We use [Minitest](https://github.com/seattlerb/minitest) in this project. | ||
|
||
5. Make the test pass. Always use `sample`, `shuffle`, and `rand` from the Base class (just like the rest of the code) rather than `Array#sample`, `Array#shuffle` and `Kernel#rand` to preserve the deterministic feature. | ||
|
||
6. We care about code coverage and use `SimpleCov` to analyze the code and generate test coverage reports. It's possible to check the test coverage by running `open coverage/index.html`. Please make sure to not decrease our `current % covered` and add appropriate test cases when necessary. | ||
|
||
7. When adding a new class, add a new yaml file to `lib/locales/en` rather than adding translations to `lib/locales/en.yml`. For example, if you add Faker::MyThing, put your translations in `lib/locales/en/my_thing.yml`. See [the locale README](./lib/locales/en/README.md) for more info. | ||
|
||
8. When removing a method, don't forget to deprecate it. You can `extend Gem::Deprecate` and use the `deprecate` method to accomplish this task. | ||
|
||
9. Methods with optional arguments should use keyword rather than positional arguments. An exception to this could be a method that takes only one optional argument, and it's unlikely that that method would ever take more than one optional argument. | ||
|
||
10. Push to your fork and submit a pull request. | ||
|
||
### Github Flow for contributors and collaborators | ||
|
||
For those of you with commit access, please check out Scott Chacon's blog post about [github flow](http://scottchacon.com/2011/08/31/github-flow.html) | ||
|
||
> * Anything in the master branch is deployable | ||
> * To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes) | ||
> * Commit to that branch locally and regularly push your work to the same named branch on the server | ||
> * When you need feedback or help, or you think the branch is ready for merging, open a pull request | ||
> * After someone else has reviewed and signed off on the feature, you can merge it into master | ||
If you're reviewing a PR, you should ask yourself: | ||
> * Does it work as described? A PR should have a great description. | ||
> * Is it understandable? | ||
> * Is it well implemented? | ||
> * Is it well tested? | ||
> * Is it well documented? | ||
> * Is it following the structure of the project? | ||
### Syntax/Good practices: | ||
|
||
#### Documentation | ||
Include [YARD] style docs for all methods that includes: | ||
- A short description of what the method generates | ||
- Descriptions for all params (`@param`) | ||
- The return type (`@return`) | ||
- At least one example of the output (`@example`) | ||
- The version that the method was added (`@faker.version`) | ||
- Set as `next` for new methods | ||
|
||
```ruby | ||
## | ||
# Produces a random string of alphabetic characters, (no digits) | ||
# | ||
# @param char_count [Integer] The length of the string to generate | ||
# | ||
# @return [String] | ||
# | ||
# @example | ||
# Faker:Alphanumeric.alpha | ||
# #=> "kgdpxlgwjirlqhwhrebvuomdcjjpeqlq" | ||
# @example | ||
# Faker:Alphanumeric.alpha(number: 10) | ||
# #=> "zlvubkrwga" | ||
# | ||
# @faker.version next | ||
def alpha(number: 32) | ||
# ... | ||
end | ||
``` | ||
|
||
#### Code Styles | ||
Please follow these guidelines when adding new code: | ||
* Two spaces, no tabs. | ||
* No trailing whitespace. Blank lines should not have any space. | ||
* Prefer `&&`, `||` over `and`, `or`. | ||
* `MyClass.my_method(my_arg)` not `my_method( my_arg )` or `my_method my_arg`. | ||
* `a = b` and not `a=b`. | ||
* In general, follow the conventions you see used in the source already. | ||
* **ALL SHALL OBEY THE RUBOCOP** | ||
|
||
#### YAML | ||
Please use dash syntax for yaml arrays: | ||
```Yaml | ||
# instead of these | ||
b_things: [small_thing, big_thing, other_thing] | ||
c_things: [ | ||
small_thing, | ||
big_thing, | ||
other_thing, | ||
] | ||
|
||
# this is preferred | ||
a_things: | ||
- small_thing | ||
- big_thing | ||
- other_thing | ||
``` | ||
- If in doubt, `bundle exec rake reformat_yaml['lib/path/to/file.yml']` | ||
|
||
### Tips | ||
|
||
* Use the `rake console` task to start a session with Faker loaded. | ||
* Use `bundle exec yard server -r` to launch the YARD Doc server | ||
|
||
[YARD]: (https://www.rubydoc.info/gems/yard/file/README.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.