Montando a minha estação de trabalho

Vamos começar então a por a mão na massa?

Eu espero que você use um sistema unix, como alguma distribuição Linux ou Mac, caso contrário continue aí, tem vários tutoriais sobre Ruby e Ruby on Rails para windows, mas a arquitetura aqui usada é Ubuntu 12.4, servidor Apache 2.2.22  Ruby 1.9.3-p448, Rails 4.0.0

Existe um projeto chamado RVM que entre outras coisas ele disponibiliza no ambiente de usuário uma versão ruby definida por você em gems, ou seja o ambiente de desenvolvimento “montado” na máquina é inerente ao usuário e não ao sistema como um todo. Na verdade, não vejo muita utilidade olhando para por este âmbito, mas se olharmos para a possibilidade de alteração de uma versão ruby a qualquer momento, a coisa já muda de figura para as minhas necessidades.

 

Tutorial de instalação do RVM

 

Se você seguiu o tutorial até o final, você já tem rodando em sua máquina uma aplicação rails, mas digamos que você não seguiu até o fim e só deixou tudo instaladinho como precisamos.

Crie no diretório usado pelo seu servidor como raiz um diretório com o nome de app_rails

Esse diretório ao que parece, poderia ficar em qualquer lugar, mas eu gosto de centralizar, não foi a toa que os objetos me fascinaram. 🙂

No meu caso:

jackson@jackson:~$ mkdir /var/www/app_rails

 

Agora vamos criar nossa primeira aplicação usando Rails

jackson@jackson:~$ cd /var/www/app_rails
jackson@jackson:/var/www/app_rails$ rails new MeuSite
create
create README.rdoc
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/assets/javascripts/application.js
create app/assets/stylesheets/application.css
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/assets/images/.keep
create app/mailers/.keep
create app/models/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/filter_parameter_logging.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/secret_token.rb
create config/initializers/session_store.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/robots.txt
create test/fixtures
create test/fixtures/.keep
create test/controllers
create test/controllers/.keep
create test/mailers
create test/mailers/.keep
create test/models
create test/models/.keep
create test/helpers
create test/helpers/.keep
create test/integration
create test/integration/.keep
create test/test_helper.rb
create tmp/cache
create tmp/cache/assets
create vendor/assets/javascripts
create vendor/assets/javascripts/.keep
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep
run bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.1.0)
Using i18n (0.6.5)
Using minitest (4.7.5)
Using multi_json (1.8.2)
Using atomic (1.1.14)
Using thread_safe (0.1.3)
Using tzinfo (0.3.38)
Using activesupport (4.0.0)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0)
Using mime-types (1.25)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (4.0.0)
Using activemodel (4.0.0)
Using activerecord-deprecated_finders (1.0.3)
Using arel (4.0.1)
Using activerecord (4.0.0)
Using bundler (1.3.5)
Using coffee-script-source (1.6.3)
Using execjs (2.0.2)
Using coffee-script (2.2.0)
Using thor (0.18.1)
Using railties (4.0.0)
Using coffee-rails (4.0.1)
Using hike (1.2.3)
Using jbuilder (1.5.2)
Using jquery-rails (3.0.4)
Using json (1.8.1)
Using tilt (1.4.1)
Using sprockets (2.10.0)
Using sprockets-rails (2.0.1)
Using rails (4.0.0)
Using rdoc (3.12.2)
Using sass (3.2.12)
Using sass-rails (4.0.1)
Using sdoc (0.3.20)
Using sqlite3 (1.3.8)
Using turbolinks (1.3.0)
Using uglifier (2.2.1)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
jackson@jackson:/var/www/app_rails$

A primeira vista, confesso que tomei um susto quando vi a quantidade de diretórios e arquivos, mas logo cai na real que eu já tinha desenvolvido projetos que de cara dava pra ver que posuia um volume igual ou maior.

O que Rails cria aí quando pedimos a ele uma nova aplicação, é uma espécie de chassi se não estaria rebaixando Rails, pois ele por si próprio já é uma aplicação possível de reunir funcionalidades em instantes formando um novo site simples ou até mesmo um sistema mais complexo. O legal aí é que após a criação da aplicação, ele com base nessa aplicação gerada, coloca em uso para aplicação todas as bibliotecas externas que aplicação gerada depende, no nosso caso MeuSite.

Captura de tela de 2013-10-24 00:29:29

A estrutura MVC dentro do diretório app deixa clara a separação da lógica do sistema em si das visualizações.

Basicamente separamos nossa aplicação em modelos onde especificamos regras de inserção de dados como validações e alterações de valores antes e após as inserções ou filtragens.

Os controladores são os responsáveis por receber parâmetros vindos geralmente de uma view, com base nesses parâmetros, solicitar ao modelo dados ou entregar dados a ele. Da mesma forma que o controlador recebe parâmetros de uma view, ele disponibiliza variáveis de instância acessíveis na view.

O diretório config fala por si só.

O diretório db é onde fica toda a  estrutura do banco de dados da aplicação.

Os outros vamos vendo aos poucos com o tempo.

 

 

 

Se consegue editar qualquer arquivo da aplicação, sua estação de trabalho está pronta. É claro que temos preferências por editores e etc, mas com isso aí já dá pra gente seguir em frente.

 

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*