Coder Social home page Coder Social logo

on-the-beach-coding-challange's Introduction

Thought Process

  • First thing I decided to do is get my code working. So whatever Idea I thought of I jump started with that.

  • Then I realised for some valid cases circular dependency error was raised.

  • So I decided to validate the Input first and then just order them.

  • Self dependency validation was straight forward.

  • circular dependency error was a little bit tricky. So I decided to put a check for each job, where a loop runs until dependency cycle for a job ends. e.g. a => b => c => d => nil. So at d dependency cycle ends and if any of the jobs gets repeated I will raise an circular dependency error.

  • I have added test cases also for all the given scenarios.

  • I have added a main.rb file which contains the steps to run the project.

How to run the project

  • Input accepted is an comma separated string, e.g. - "a =>, b => c, c => d"
  • go to main.rb and update the input string to desired input string.
  • Once correct input is given just run ruby main.rb
  • The above command will raise an error if there is self or circular dependency
  • Exceptions raised are Exceptions::SelfDependencyError, Exceptions::CircularDependencyError

How to run test cases

  • To run test cases first make sure minitest is installed in your system. To install run gem install minitest
  • once minitest is installed run ruby tests/job_processor_test.rb to run the test cases

on-the-beach-coding-challange's People

Contributors

sinscary avatar

Watchers

 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.