Download - App Lego
![Page 1: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/1.jpg)
Bootstrapping Project CodeLászló Bácsi@icanscale
github.com/lackac
2009. szeptember 28.
![Page 2: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/2.jpg)
$ 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.
![Page 3: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/3.jpg)
Takes a lot of time and effort but it’s “modular”
2009. szeptember 28.
![Page 4: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/4.jpg)
Then came app skeletons
Bort
and many others
2009. szeptember 28.
![Page 5: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/5.jpg)
Lightning fast but no modularity
2009. szeptember 28.
![Page 6: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/6.jpg)
# template.rbrun "rm public/index.html"generate(:scaffold, "person name:string")route "map.root :controller => 'people'"rake("db:migrate")
git :initgit :add => "."git :commit => "-a -m 'Initial commit'"
Then came Rails templates
$ rails myapp -m template.rb
2009. szeptember 28.
![Page 7: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/7.jpg)
Lightning fast, easier customization but still
no modularity
2009. szeptember 28.
![Page 8: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/8.jpg)
Then came App LEGO
Using Rails templates
Modular
each feature has its own template
you can decide which modules you want
2009. szeptember 28.
![Page 9: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/9.jpg)
$ 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.
![Page 10: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/10.jpg)
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
braidbasicrspechamljquery
authcouchdblocalemiscand others...
2009. szeptember 28.
![Page 11: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/11.jpg)
And others...
2009. szeptember 28.
![Page 12: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/12.jpg)
Still fast, modular and customizable
2009. szeptember 28.
![Page 13: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/13.jpg)
Downsides
really long command line to remember
a lot of questions
options in ENV vars
2009. szeptember 28.
![Page 14: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/14.jpg)
Futurecreate 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.
![Page 15: App Lego](https://reader033.vdocument.in/reader033/viewer/2022051314/54b8faed4a7959d8738b45c2/html5/thumbnails/15.jpg)
Thank you!László Bácsi, @icanscale
http://github.com/lackac/app_lego
2009. szeptember 28.