OK, czyli ostatnio skończyliśmy na tym, że trzeba ustawić wartość środowiskową przed startem skryptu. Chciałem do tego zaprząc narzędzie o nazwie rake - czyli menadżer budowania dla ruby.
Idea, która stoi za rake jest ciekawa. Postanowiono w skryptach do budowania ruby pisać w ..... ruby. Proste i genialne jednocześnie. Poza tym fajna gra słów w nazwie. Nazwa pochodzi od wcześniejszego narzędzia make dla C++ - tylko zamieniono literkę "M" na literkę "R" jak Ruby. Poza tym rake w tłumaczeniu to grabie.
Pasuje idealnie, jeżeli przyjąć ostatni trend porównywania tworzenia oprogramowania do projektowania i utrzymywania ogrodu zamiast do budowania domów.
W toku okazało się, że nie muszę ustawiać żadnej zmiennej środowiskowej.
To zadziała:
Jeżeli tylko ustawie prawidłowo ścieżki require:
Te kropki na początku ścieżki są tu kluczowe.
Warto wiedzieć, że null w Ruby nazywa się nil:
A więc ostateczny skrypt rake o nazwie Rakefile będzie po prostu:
Odpalanie projektu poleceniem rake daje takie wyniki:
Napisaliśmy to jeszcze raz, Sam. Tym razem działa :)
Cały czas mam z tyłu głowy potrzebę wersjonowania projektu i wysyłania go na serwer.
Dodaję pliki:
Kommituję lokalnie:
Ups, literówka w kommicie w wyrazie "Frist... Miałem na myśli "First....
Jak to naprawić?
Wujek Stack mówi, że tak:
Historia projektu:
Rzeczywiście potwierdza zmiany:
Teraz, jak już mam stabilne środowisko, mogę się pokusić o próbę implementacji komunikacji między aktorami tej tragedii, ale to już w następnym odcinku :)
Ups, zapomniałem wysłać kommitów na serwer:
Uff, zawsze czuję ulgę, gdy zapisuję coś gdzieś indziej niż w jednym miejscu.
Ostatni odcinek tu: https://michalkulinski.blogspot.fr/2017/03/prezentacja-aktorow.html
Idea, która stoi za rake jest ciekawa. Postanowiono w skryptach do budowania ruby pisać w ..... ruby. Proste i genialne jednocześnie. Poza tym fajna gra słów w nazwie. Nazwa pochodzi od wcześniejszego narzędzia make dla C++ - tylko zamieniono literkę "M" na literkę "R" jak Ruby. Poza tym rake w tłumaczeniu to grabie.
Pasuje idealnie, jeżeli przyjąć ostatni trend porównywania tworzenia oprogramowania do projektowania i utrzymywania ogrodu zamiast do budowania domów.
W toku okazało się, że nie muszę ustawiać żadnej zmiennej środowiskowej.
To zadziała:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# ruby ./test/smoke_test.rb
Jeżeli tylko ustawie prawidłowo ścieżki require:
require "./src/Client.rb" require "./src/ItPeople.rb" require "./src/Media.rb"
Te kropki na początku ścieżki są tu kluczowe.
Warto wiedzieć, że null w Ruby nazywa się nil:
def test_if_there_are_actors_of_that_tragedy client = Client.new it_people = ItPeople.new media = Media.new assert_not_nil(client); assert_not_nil(it_people); assert_not_nil(media); end
A więc ostateczny skrypt rake o nazwie Rakefile będzie po prostu:
task default: %w[test] task :test do ruby "./test/smoke_test.rb" end
Odpalanie projektu poleceniem rake daje takie wyniki:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# rake /usr/share/ruby-2.3.1/bin/ruby ./test/smoke_test.rb Loaded suite ./test/smoke_test Started .. Finished in 0.000537369 seconds. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 tests, 4 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3721.84 tests/s, 7443.67 assertions/s
Napisaliśmy to jeszcze raz, Sam. Tym razem działa :)
Cały czas mam z tyłu głowy potrzebę wersjonowania projektu i wysyłania go na serwer.
Dodaję pliki:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# git add . coola@sv26 [/home/coola/dsp2017/xp-simulator]# git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: Rakefile deleted: smoke_test.rb new file: src/Client.rb new file: src/ItPeople.rb new file: src/Media.rb new file: test/smoke_test.rb
Kommituję lokalnie:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# git commit -m "Frist actors of the system and rake building tool addition" [master dcfeb38] Frist actors of the system and rake building tool addition 6 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 Rakefile delete mode 100644 smoke_test.rb create mode 100644 src/Client.rb create mode 100644 src/ItPeople.rb create mode 100644 src/Media.rb create mode 100644 test/smoke_test.rb
Ups, literówka w kommicie w wyrazie "Frist... Miałem na myśli "First....
Jak to naprawić?
Wujek Stack mówi, że tak:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# git commit --amend -m "First actors of the system and rake building tool addition"
Historia projektu:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# git log
Rzeczywiście potwierdza zmiany:
commit 1f6a0632411d98ca1340a4ce6d48dffd68b79f88
Author: coola <coola@o2.pl>
Date: Thu Mar 23 16:37:59 2017 +0100
First actors of the system and rake building tool addition
commit 984f97a26cbf9ec32eed6b6304f0ac1ede1770ef
Author: coola <coola@o2.pl>
Date: Fri Mar 10 11:03:08 2017 +0100
First class. Test class
commit aef10c1c8f493e5a3ef0cfe654a12c89c3a0c616
Author: coola <coola@o2.pl>
Date: Tue Mar 7 13:36:07 2017 +0100
Pierwszy commit z plikiem README
Teraz, jak już mam stabilne środowisko, mogę się pokusić o próbę implementacji komunikacji między aktorami tej tragedii, ale to już w następnym odcinku :)
Ups, zapomniałem wysłać kommitów na serwer:
coola@sv26 [/home/coola/dsp2017/xp-simulator]# git push origin Username for 'https://github.com': coola Password for 'https://coola@github.com': Counting objects: 9, done. Delta compression using up to 8 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (9/9), 904 bytes | 0 bytes/s, done. Total 9 (delta 0), reused 0 (delta 0) To https://github.com/coola/xp-simulator.git 984f97a..1f6a063 master -> master
Uff, zawsze czuję ulgę, gdy zapisuję coś gdzieś indziej niż w jednym miejscu.
Komentarze
Prześlij komentarz