SlideShare a Scribd company logo
Bootstrapping Project Code
                          László Bácsi
                           @icanscale
                       github.com/lackac




2009. szeptember 28.
In the old days
          $ 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



                                           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.
Takes a lot of time and
                   effort but it’s “modular”



2009. szeptember 28.
Then came app skeletons
                       Bort

                       and many others




2009. szeptember 28.
Lightning fast but no
                            modularity



2009. szeptember 28.
Then came Rails templates
          # 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'"



          $ rails myapp -m template.rb




2009. szeptember 28.
Lightning fast, easier
                       customization but still
                            no modularity


2009. szeptember 28.
Then came App LEGO

                       Using Rails templates

                       Modular

                         each feature has its own template

                         you can decide which modules you want



2009. szeptember 28.
Then came App LEGO
          $ 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
          ...




2009. szeptember 28.
Modules are plain templates
          gem 'haml', :version => '>= 2.1'
          gem 'chriseppstein-compass', :lib => 'compass', :version => '>= 0.3.4'

          run "haml --rails ."
          run "echo -e 'ynnn' | compass --rails -f blueprint"

          git :add => "."
          git :commit => "-a -m 'Added haml for views and compass for css'"




                       braid                                             auth
                       basic                                             couchdb
                       rspec                                             locale
                       haml                                              misc
                       jquery                                            and others...


2009. szeptember 28.
And others...




2009. szeptember 28.
Still fast, modular and
                             customizable



2009. szeptember 28.
Downsides


                       really long command line to remember

                       a lot of questions

                       options in ENV vars




2009. szeptember 28.
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.
Thank you!
                            László Bácsi, @icanscale
                       http://github.com/lackac/app_lego




2009. szeptember 28.

More Related Content

KEY
Setup ruby
jugyo kohno
 
KEY
Rails3勘所
Hiroshi Nakao
 
KEY
End to-End CoffeeScript
TrevorBurnham
 
PPTX
CoffeeScript - An Introduction
Manvendra Singh
 
PPTX
RJB - another choice for Ruby and Java interoperability
Akio Tajima
 
PDF
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Alberto Perdomo
 
KEY
Beginner's Sinatra
Tomokazu Kiyohara
 
PPTX
A Blink Into The Rails Magic
Nikos Dimitrakopoulos
 
Setup ruby
jugyo kohno
 
Rails3勘所
Hiroshi Nakao
 
End to-End CoffeeScript
TrevorBurnham
 
CoffeeScript - An Introduction
Manvendra Singh
 
RJB - another choice for Ruby and Java interoperability
Akio Tajima
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Alberto Perdomo
 
Beginner's Sinatra
Tomokazu Kiyohara
 
A Blink Into The Rails Magic
Nikos Dimitrakopoulos
 

What's hot (20)

KEY
Sinatra for REST services
Emanuele DelBono
 
PDF
PROCESS WARP「プロセスがデバイス間で移動する」仕組みを作る
祐司 伊藤
 
PDF
Deploying Rails Applications with Capistrano
Almir Mendes
 
PPT
Calabash automated test
kellinreaver
 
PDF
Sinatra Rack And Middleware
Ben Schwarz
 
PDF
Moving to modules
Sean Mize
 
PPTX
The Power of F#
Isaac Abraham
 
PPTX
Laravel mix
Cloud Wu
 
PDF
Extracting ruby gem
Yura Tolstik
 
PDF
Coffeescript: An Opinionated Introduction
Joe Fleming
 
PDF
ZSH and RVM
freelancing_god
 
ZIP
Ruby Kaigi 2008 LT
Motohiro Takayama
 
PDF
Happy Programming with CoffeeScript
Eddie Kao
 
PDF
Tools beyond ruby on rails
Tomáš Jukin
 
PDF
Rails 3 : Cool New Things
Y. Thong Kuah
 
PDF
Custom Non-RDS Multi-AZ Mysql Replication
Michael H. Oshita
 
KEY
Cucaruba!
Matt Yoho
 
PDF
So R Debugging
wear
 
PDF
Apache Sling - The whys and the hows
Robert Munteanu
 
KEY
TsWorkflow
Yongwu Choi
 
Sinatra for REST services
Emanuele DelBono
 
PROCESS WARP「プロセスがデバイス間で移動する」仕組みを作る
祐司 伊藤
 
Deploying Rails Applications with Capistrano
Almir Mendes
 
Calabash automated test
kellinreaver
 
Sinatra Rack And Middleware
Ben Schwarz
 
Moving to modules
Sean Mize
 
The Power of F#
Isaac Abraham
 
Laravel mix
Cloud Wu
 
Extracting ruby gem
Yura Tolstik
 
Coffeescript: An Opinionated Introduction
Joe Fleming
 
ZSH and RVM
freelancing_god
 
Ruby Kaigi 2008 LT
Motohiro Takayama
 
Happy Programming with CoffeeScript
Eddie Kao
 
Tools beyond ruby on rails
Tomáš Jukin
 
Rails 3 : Cool New Things
Y. Thong Kuah
 
Custom Non-RDS Multi-AZ Mysql Replication
Michael H. Oshita
 
Cucaruba!
Matt Yoho
 
So R Debugging
wear
 
Apache Sling - The whys and the hows
Robert Munteanu
 
TsWorkflow
Yongwu Choi
 
Ad

Viewers also liked (8)

PDF
Haml, Sass & Compass
László Bácsi
 
PDF
Ruby Crash Course
László Bácsi
 
PDF
Da Ideia ao Produto | Como criar o seu negócio
Alexandre Spengler
 
PDF
GovLoop Online Innovator's Summit 9/2012
Hillary Hartley
 
PDF
Firefox kiterjesztés fejlesztés
László Bácsi
 
PPTX
Criação de negócios inovadores
CoreBusiness Strategy
 
PDF
Hype vs. Reality: The AI Explainer
Luminary Labs
 
Haml, Sass & Compass
László Bácsi
 
Ruby Crash Course
László Bácsi
 
Da Ideia ao Produto | Como criar o seu negócio
Alexandre Spengler
 
GovLoop Online Innovator's Summit 9/2012
Hillary Hartley
 
Firefox kiterjesztés fejlesztés
László Bácsi
 
Criação de negócios inovadores
CoreBusiness Strategy
 
Hype vs. Reality: The AI Explainer
Luminary Labs
 
Ad

Similar to App Lego (20)

PDF
PDF Ruby on Rails 3 Day BC
Northwest Independent Ruby Development
 
KEY
Ruby on Rails survival guide of an aged Java developer
gicappa
 
PDF
Curso rails
Icalia Labs
 
PDF
Rails入門與新人實戰經驗分享
wildjcrt
 
KEY
An introduction to Rails 3
Blazing Cloud
 
KEY
Why ruby and rails
Reuven Lerner
 
KEY
Rapid Prototyping FTW!!!
cloudbring
 
PDF
Web Development using Ruby on Rails
Avi Kedar
 
PDF
Ruby and Rails for womens
s4nx
 
PPT
Rails 101
The Active Network
 
PDF
Ruby On Rails Basics
Amit Solanki
 
PDF
TorqueBox
bobmcwhirter
 
PDF
Frozen Rails Slides
carllerche
 
PDF
JRuby, Ruby, Rails and You on the Cloud
Hiro Asari
 
PDF
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Nilesh Panchal
 
PDF
Learning Rails
David Francisco
 
PDF
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
peter_marklund
 
PPTX
RoR guide_p1
Brady Cheng
 
PDF
Migrating Legacy Rails Apps to Rails 3
Clinton Dreisbach
 
PPTX
Rails Engine | Modular application
mirrec
 
PDF Ruby on Rails 3 Day BC
Northwest Independent Ruby Development
 
Ruby on Rails survival guide of an aged Java developer
gicappa
 
Curso rails
Icalia Labs
 
Rails入門與新人實戰經驗分享
wildjcrt
 
An introduction to Rails 3
Blazing Cloud
 
Why ruby and rails
Reuven Lerner
 
Rapid Prototyping FTW!!!
cloudbring
 
Web Development using Ruby on Rails
Avi Kedar
 
Ruby and Rails for womens
s4nx
 
Ruby On Rails Basics
Amit Solanki
 
TorqueBox
bobmcwhirter
 
Frozen Rails Slides
carllerche
 
JRuby, Ruby, Rails and You on the Cloud
Hiro Asari
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Nilesh Panchal
 
Learning Rails
David Francisco
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
peter_marklund
 
RoR guide_p1
Brady Cheng
 
Migrating Legacy Rails Apps to Rails 3
Clinton Dreisbach
 
Rails Engine | Modular application
mirrec
 

Recently uploaded (20)

PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Doc9.....................................
SofiaCollazos
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
The Future of Artificial Intelligence (AI)
Mukul
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Software Development Methodologies in 2025
KodekX
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 

App Lego

  • 1. Bootstrapping Project Code László Bácsi @icanscale github.com/lackac 2009. szeptember 28.
  • 2. In the old days $ 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 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.
  • 3. Takes a lot of time and effort but it’s “modular” 2009. szeptember 28.
  • 4. Then came app skeletons Bort and many others 2009. szeptember 28.
  • 5. Lightning fast but no modularity 2009. szeptember 28.
  • 6. Then came Rails templates # 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'" $ rails myapp -m template.rb 2009. szeptember 28.
  • 7. Lightning fast, easier customization but still no modularity 2009. szeptember 28.
  • 8. Then came App LEGO Using Rails templates Modular each feature has its own template you can decide which modules you want 2009. szeptember 28.
  • 9. Then came App LEGO $ 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 ... 2009. szeptember 28.
  • 10. Modules are plain templates gem 'haml', :version => '>= 2.1' gem 'chriseppstein-compass', :lib => 'compass', :version => '>= 0.3.4' run "haml --rails ." run "echo -e 'ynnn' | compass --rails -f blueprint" git :add => "." git :commit => "-a -m 'Added haml for views and compass for css'" braid auth basic couchdb rspec locale haml misc jquery and others... 2009. szeptember 28.
  • 12. Still fast, modular and customizable 2009. szeptember 28.
  • 13. Downsides really long command line to remember a lot of questions options in ENV vars 2009. szeptember 28.
  • 14. 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.
  • 15. Thank you! László Bácsi, @icanscale http://github.com/lackac/app_lego 2009. szeptember 28.