Contribution

Last updated 5 months ago

This book is under CC BY-NC-SA License so we appreciate all kinds of contributions, distribution and we preserve our contributors efforts, forever.

Note: The code in this book is tested on Ruby version > 2.2.0

Contribution methods

There are several kinds of contributions that could help this book achieve the best results:

  • Contribution by adding tricky code.

  • Contribution by adding more explanation for existing code.

  • Contribution by enhancing the code quality or alternatives.

  • Contribution by enhancing the book quality:

    • Structure enhancements

    • Spelling, proofreading enhancements

    • Design enhancements

    • Ideas and requests

    • Any other

  • Contribution by spreading the book in social media and IS communities.

  • Contribution by adding more resources and references.

  • Contribution by donation.

How to?

Start contributing

Please find all you need to know about GitBook and markdown editing in the References section. As good start, you can refer to how to use it from official readme. You can easily use GitBook Desktop editor.

  1. Create a GitHub account.

  2. Clone GitHub forked RubyFu repository:

    git clone https://github.com/[YourGithubAccount]/RubyFu

  3. Create a GitBook account.

  4. Go to GitBook editor and Sign-in with your GitBook account

  5. Press the Import button to import the cloned repository. Then, you'll find it in the LOCAL LIBRARY tab.

  6. Add the forked RubyFu repository GitHub URL to GitBook Editor: Toolbar >> File >> Preferences >> GIT.

  7. Start your awesome contribution.

  8. From GitBook editor, Sync your changes to the forked repository.

  9. From GitHub, send a Pull Request(PR) to the Master branch.

Not sure where to start helping? Go to TODO list and check the unchecked items.

Contributing with Code

Ruby code

  • Use the triple ticks ``` followed by ruby then your code in between the ``` to get ruby code highlighted. e.g.

    puts "Ruby Code here"
  • Explain the main idea -with some details- of the code, if you explain every line that would be great but it's not a must.

  • Choose the correct Module.

  • Make your title clear.

  • Use Text editor/ide for code identification before pasting your code.

  • Mention the source, if you copied or developed code that has been created by others; please mention the source in the footer. e.g.

    puts "Your good code"
    [Source][1]

    Then add the following to the footer

    [1]: http://TheSouceCodeURL

    Your notes should be under the footer's line. Add the following to initiate the footer if it does not yet exist

    <br><br><br>
    ---
    YOUR NOTES SHALL BE HERE
  • Try to use readable code, if you have to add more tricky/skilled code then explain it well.

    Remember! Hacker's code =! Cryptic code

Command-line

Use triple ticks to highlight your command-line. ex.

ls

Contributing with Translation

To translate Rubyfu, make sure to

  • Create a new branch for your translation.

  • Add a sub-directory under Rubyfu's root directory with the name of the language you will translate to.

  • Update the LANGS.md file

  • Copy and paste the content of en/ folder to your language folder, then translate it.

  • Create a Pull Request (PR).

Please make sure to mark the repository as Watch to keep your translated efforts up-to-date.

General Contribution

General contributions might be topic requests, proofreading, spelling, book organization and style. All these contributions are welcome; however, they have to be discussed on Rubyfu issues - especially things in regards to topics and/or book organization and styling. At the same time don't hesitate to report even a single word observation about the book, it's for you at the end of the day.

Note: Since this book is enhanced dynamically and unordered, it's hard to make the footer notes with an order-series of numbers for the whole book, so -until I find better solution- I'll make the number order separate for each page individually.