- Install leiningen
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Make changes
- Run tests (
lein test
). - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- Check if Request passed Travis-Ci
-
Create yaml file with the name of your issue. Look at the example
# source/array_fetch.yml level: easy # (elementary|easy|medium|hard) tags: [string, numbers] author: github_nickname: your_name web_page: "http://your.site" description: | This is description. The description can be multiline. multicode_checks: langs: [javascript, php] #[ruby, javascript, python, php]
Example: array_fetch.yml
-
Create a .clj file in the test/battle_solutions folder, e.g. array_fetch_test.clj
-
Write a test by defining a function (deftest test-asserts ()) Look at the example
; test/battle_solutions/array_fetch_test.clj (deftest test-asserts (let [arr [\a \b \c]] (assert-equal \b (fetch arr 1 \d)) (assert-equal \d (fetch arr 5 \d)) (assert-equal \c (fetch arr -1 \d)) (assert-equal \d (fetch arr -5 \d))))
-
Write a namespace with your issue name
; test/battle_solutions/array_fetch_test.clj (ns battle-solutions.array-fetch-test (:require [clojure.test :refer :all] [battle-asserts.test-helper :refer [assert-equal assert]]))
-
Write a function to resolve your tests
; test/battle_solutions/array_fetch_test.clj (defn fetch [s index default] (let [positive-index (if (> index 0) index (+ (count s) index))] (nth s positive-index default)))
Example: array_fetch_test.clj
- Run tests
lein test
If you want to run test for only one issue - use lein test + namespace
lein test battle-solutions.array-fetch-test
- Run code format
make format
- https://github.com/Abica/ruby-99-problems
- https://github.com/hcf/99-problems-in-Ruby
- https://github.com/kevinrutherford/rrwb-code