Code Monkey home page Code Monkey logo

ganon's Introduction

Logo

Ganon is a functional javascript library designed and maintained by open source contributors.

Build Status npm License Downloads


A HUGE THANKS!!

A very special thanks to @csleong98 for designing our logo!

Huge props to @andreasgruenh and @ktilcu for helping collaborate.

And the biggest of credit goes to all of our awesome Contributors!!

Usage

$ yarn add ganon

NodeJS

// import { sum } from 'ganon';
const { sum } = require('ganon');

const sumOfOneAndTwo = sum(1, 2);
=> 3

Javascript

// import sum from 'ganon/dist/sum';
const sum = require('ganon/dist/sum');

const sumOfOneAndTwo = sum(1, 2);
=> 3

Objective

To build a suite of javascript methods by the time hacktoberfest ends! Let's get some T-shirts!!

Ganon is designed to get as many people involved as possible, so our objective here is to fix or improve an existing method and then write the skeleton of a desired method for someone else to build. In the spirit of getting everyone involved, please only fix one or two methods and make sure to push up something for someone else to work on!

This project was created to have fun.

Project Structure

All methods will live in the lib directory of the project. They should be written as [methodName].js, required and exported in lib/index.js.

All tests will live in the test directory. A test file should be formatted [methodName].test.js to reflect what method is being tested.

Contributing

Please read our Contributing Guide for information on how to contribute to this project! All skill levels are more than welcome to participate in this project!

Demo

We're going to walk through the process of taking on an issue, resolving it, writing a new issue, and shipping some code.

The method we are going to resolve is called sum:

// lib/sum.js

function sum(a, b) {
// Your code goes here.
}

module.exports = sum;

In order to test this method, we will first run yarn test sum:

$ yarn test sum

  FAIL  problems/sum.test.js
    ✕ adds 1 + 2 to equal 3 (8ms)
    ✕ adds 3 + 4 to equal 7 (1ms)

    ● adds 1 + 2 to equal 3

      expect(received).toBe(expected)

      Expected value to be (using ===):
        3
      Received:
        undefined

As you can see, there is something wrong with the function sum, so let's resolve it:

// lib/sum.js

function sum(a, b) {
  return a + b;
}

module.exports = sum;

Run the test again:

$ yarn test sum
  
  PASS  problems/sum.test.js
    ✓ adds 1 + 2 to equal 3 (6ms)
    ✓ adds 3 + 4 to equal 7 (1ms)

Now that I have fixed the sum function to return the desired value, I need to write the skeleton of a new method for other contributors to work on. Let's write one called difference:

// lib/difference.js

// Write a function that returns the difference of the first two parameters

function difference(a, b) {
// Your code goes here.
}

module.exports = difference;

We will need to accompany this method with a test(s) to ensure it returns the proper value:

// test/difference.test.js

const { difference } = require("../lib");

describe("difference", () => {
  test("subtracts 1 - 3 to equal -2", () => {
    expect(difference(1, 3)).toBe(-2);
  });

  test("subtracts 10 - 3 to equal 7", () => {
    expect(difference(10, 3)).toBe(7);
  });
});

Now that we have fixed a method, written the skeleton of a new method, and a test to accompany it, we can push up our changes and open a pull request. 🔥 🔥 🔥

ganon's People

Contributors

blakeguilloud avatar stillnovice avatar ktilcu avatar aaronjlech avatar wulingoh avatar hugoduraes avatar doubledare704 avatar dna113p avatar edgardmota avatar amoradi avatar grigori-gru avatar luisvillalba avatar nyrkuredla avatar 5hanth avatar lsboss avatar brycereynolds avatar damjanh avatar ltetzlaff avatar tomasswood avatar ksjc1995 avatar jonaylor89 avatar csleong98 avatar abhigyank avatar melissa3000 avatar mmartinsky avatar ncaron avatar akim95 avatar ruskakimov avatar domosapien avatar gabrielfabian avatar

Watchers

James Cloos avatar Chris avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.