Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bootstrapping Project Code

Bootstrapping Project Code

An old presentation of about App LEGO. The project is defunct now, but it's nice to have this presentation up here.

László Bácsi

September 27, 2009
Tweet

More Decks by László Bácsi

Other Decks in Programming

Transcript

  1. $ rails myapp create create app/controllers create app/helpers create app/models

    create app/views/layouts create config/environments create config/initializers create config/locales create db create doc create lib In the old days and later... $ script/plugin install stuff $ script/generate stuff MyStuff $ cp -r ../other_stuff my_other_stuff $ # and much much more other stuff 2009. szeptember 28.
  2. # template.rb run "rm public/index.html" generate(:scaffold, "person name:string") route "map.root

    :controller => 'people'" rake("db:migrate") git :init git :add => "." git :commit => "-a -m 'Initial commit'" Then came Rails templates $ rails myapp -m template.rb 2009. szeptember 28.
  3. Then came App LEGO Using Rails templates Modular each feature

    has its own template you can decide which modules you want 2009. szeptember 28.
  4. $ rails -m http://github.com/lackac/app_lego/raw/master/app_lego.rb my_app ... create log/test.log applying template:

    http://github.com/lackac/app_lego/raw/master/app_lego.rb Use braid for vendor management? y Do you want to play LEGO? y Install everything without question? n Do basic setup? (only exclude this if you already have a Rails app skeleton with Rails 2.3+ frozen, or as a gem) y applying template: http://github.com/lackac/app_lego/raw/master/basic.rb executing rmdir tmp/{pids,sessions,sockets,cache} from /private/tmp/my_app executing rm README log/*.log public/index.html public/images/rails.png from /private/tmp/my_app executing find . \( -type d -empty \) -and \( -not -regex ./\.git.* \) -exec touch {}/.gitignore \; from / private/tmp/my_app running git init file .gitignore executing cp config/database.yml config/database.yml.sample from /private/tmp/my_app running git add . running git commit -a -m 'Setting up a new rails app. Copy config/database.yml.sample to config/ database.yml and customize.' executing braid add git://github.com/rails/rails.git vendor/rails from /private/tmp/my_app initialized application structure applied http://github.com/lackac/app_lego/raw/master/basic.rb Use RSpec instead of test/unit? y applying template: http://github.com/lackac/app_lego/raw/master/rspec.rb ... Then came App LEGO 2009. szeptember 28.
  5. gem 'haml', :version => '>= 2.1' gem 'chriseppstein-compass', :lib =>

    'compass', :version => '>= 0.3.4' run "haml --rails ." run "echo -e 'y\nn\n' | compass --rails -f blueprint" git :add => "." git :commit => "-a -m 'Added haml for views and compass for css'" Modules are plain templates braid basic rspec haml jquery auth couchdb locale misc and others... 2009. szeptember 28.
  6. Downsides really long command line to remember a lot of

    questions options in ENV vars 2009. szeptember 28.
  7. Future create wrapper script use dependencies instead of ordering use

    regular and meaningful command line options simple sinatra application as a user interface merge interesting modules 2009. szeptember 28.