CloudWalk Ruby Runtime - Criando uma nova app

  1. Pré-requisitos
  2. Criando uma nova aplicação POSXML/Ruby
  3. Compilando
  4. Testando
  5. Publicando

Este guia o conduzirá através do processo de criação e emulação de uma aplicação Ruby através da CloudWalk CLI. Atente-se aos pré-requisitos e siga todos os passos com atenção.

Pré-requisitos

  1. A CloudWalk CLI esteja devidamente instalada

Criando uma nova aplicação POSXML/Ruby

Assumindo que a CloudWalk CLI está instalada e configurada, execute o comando cloudwalk new -xml nome_aplicacao, com -xml para informar a CLI que é uma aplicação POSXML.

$ cloudwalk new -xml posxmltest
  create  .gitignore
  create  Gemfile
  create  Cwfile.json
  create  Rakefile
  create  lib/
  create  lib/posxmltest.xml
  create  test/
  create  test/unit/
  skip    test
  create  test/integration/
  create  test/test_helper.rb
  create  test/unit/posxmltest_test.rb
  create  test/integration/posxmltest_test.rb

Assumindo que a CloudWalk CLI está instalada e configurada, execute o comando cloudwalk new nome_aplicacao para criar uma aplicação Ruby.

$ cloudwalk new rb_test
  create  .gitignore
  create  Gemfile
  create  Cwfile.json
  create  Rakefile
  create  lib/
  create  lib/main.rb
  create  test/
  create  test/unit/
  skip    test
  create  test/integration/
  create  test/test_helper.rb
  create  test/unit/rb_test_test.rb
  create  test/integration/rb_test_test.rb

Depois de criado vamos instalar as gems e o arquivo Cwfile.json.lock

$ cd application_name 
$ bundle install # Gemfile
Fetching gem metadata from https://rubygems.org/.....
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.5.0
Using io-like 0.3.0
Using bundler 1.15.1
Using cloudwalk_handshake 0.10.0
Using funky-tlv 0.2.3
Using archive-zip 0.10.0
Using cloudwalk 0.8.0
Using funky-emv 0.9.1
Using posxml_parser 0.23.0
Using da_funk 0.16.0
Bundle complete! 3 Gemfile dependencies, 10 gems now installed.
$ bundle exec rake cloudwalk:update # Cwfile.json.lock

Compilando

Com a aplicação criada, é possível compila-la utilizando o seguinte comando bundle exec rake cloudwalk:build, no qual é o mesmo para aplicações Ruby ou POSXML, porém com diferentes resultados, para POSXML um arquivo .posxml e para Ruby um arquivo .mrb

Compilação POSXML:

$ bundle exec rake cloudwalk:build 
cloudwalk compile -xml -o ./out/shared/posxmltest.posxml lib/posxmltest.xml
=> 27

Compilação Ruby:

$ bundle exec rake cloudwalk:build 
env cloudwalk compile -g -o ./out/rb_test/main.mrb lib/main.rb

Publicando

Com a aplicação criada, é possível publica-la utilizando o seguinte comando bundle exec rake cloudwalk:deploy, no qual é o mesmo para aplicações Ruby ou POSXML, porém diferentes arquivos são publicados, para POSXML um arquivo .posxml e para Ruby um arquivo .zip com toda a estrutura da aplicação

Publicação POSXML:

$ bundle exec rake cloudwalk:deploy 
cloudwalk compile -xml -o ./out/shared/posxmltest.posxml lib/posxmltest.xml
=> 27
=> Success Deployed

Publicação de unico arquivo POSXML:

$ bundle exec rake cloudwalk:deploy lib/posxmltest.xml
cloudwalk compile -xml -o ./out/shared/posxmltest.posxml lib/posxmltest.xml
=> 27
=> Success Deployed

Publicação Ruby:

$ bundle exec rake cloudwalk:deploy 
env cloudwalk compile -g -o ./out/rb_test/main.mrb lib/main.rb
=> Success Deployed

Testando

Para executar os cenário de testes basta executar o seguinte comando:

$ bundle exec rake test 
env cloudwalk compile -g -o ./out/main/command_line_platform.mrb .../.rvm/gems/ruby-2.3.1/gems/da_funk-0.16.0/lib/da_funk/../../utils/command_line_platform.rb
env cloudwalk compile -g -o ./out/rb_test/test.mrb test/test_helper.rb lib/main.rb test/integration/rb_test_test.rb test/unit/rb_test_test.rb .../.rvm/gems/ruby-2.3.1/gems/da_funk-0.16.0/lib/da_funk/.
cd ./out
cloudwalk run -b rb_test/test.mrb

# Running tests:

Hello World!

...

Finished tests in 17.310441s, 0.1733 tests/s, 0.1733 assertions/s.

3 tests, 3 assertions, 0 failures, 0 errors, 0 skips

Apenas para aplicações Ruby temos uma suite que implementa uma API de testes que emula o ambiente de um device, mais detalhes na próxima sessão Cutomizando uma app →.