SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
5 Awesome Gems
                            ...and some fun with MemeGenerator




                                                             Custom Software, Simplified

Wednesday, February 6, 13
Hi!
                    • I’m Dan
                     • Co-Organizer @ BostonRB
                     • Principal Consultant @ LaunchWare
                     • Head of Instruction @ Launch
                              Academy

                            • dpickett on Twitter / GitHub/
                              everyHub

                                                              Custom Software, Simplified

Wednesday, February 6, 13
Some Favorites

                    • inherited_resources
                    • kaminari
                    • guard
                    • configatron
                    • bourbon
                                            Custom Software, Simplified

Wednesday, February 6, 13
Inherited Resources




                                Custom Software, Simplified

Wednesday, February 6, 13
Why?

                    • Makes writing boilerplate controllers
                            easier

                    • Easy internationalization of flash text
                            with the Responders gem

                    • Easy API generation for JSON and XML

                                                         Custom Software, Simplified

Wednesday, February 6, 13
Why Not?

                    • Another DSL/Library to Learn
                    • Can sometimes get in your way for
                            nonstandard controller actions

                    • Not good for beginners - feel the pain
                            of repetition in your controllers, first



                                                                 Custom Software, Simplified

Wednesday, February 6, 13
class	
  AccountsController	
  <	
  ApplicationController
            	
  	
  respond_to	
  :json
            	
  	
  inherit_resources	
  #gives	
  you	
  all	
  RESTful	
  actions	
  for	
  Account
            end




                                                                                           Custom Software, Simplified

Wednesday, February 6, 13
Kaminari




                                       Custom Software, Simplified

Wednesday, February 6, 13
Why?
                    • Easily customizable/themed
                            •   great configuration options

                            •   awesome generators

                    • Scope-Based
                    • Doesn’t hack core objects
                    • I18n ready for localization
                                                             Custom Software, Simplified

Wednesday, February 6, 13
Why Not?

                    • Other engines might express alternative
                            decisions (refinery, ie)

                    • Can be painful to paginate non-scope/
                            AREL collections



                                                       Custom Software, Simplified

Wednesday, February 6, 13
#in	
  your	
  controller
             @users	
  =	
  User.
             	
  	
  page(params[:page]).
             	
  	
  per(50)

             #in your view
             <%= paginate @users %>




                                            Custom Software, Simplified

Wednesday, February 6, 13
guard




                                    Custom Software, Simplified

Wednesday, February 6, 13
Why?

                    • Don’t constantly have to run tests
                            manually

                    • Invokes tests for files that change
                    • Extensible plugin architecture
                    • Extensible notification architecture

                                                           Custom Software, Simplified

Wednesday, February 6, 13
Why Not?


                    • Minor issue where guard plugins can
                            lag behind on dependencies




                                                         Custom Software, Simplified

Wednesday, February 6, 13
Configatron




                                         Custom Software, Simplified

Wednesday, February 6, 13
Why?

                    • Easy, dynamic configuration for gems
                            and applications

                    • Configure via manual code, hash or
                            YAML

                    • Plays nicely with Rails Application
                            configuration


                                                            Custom Software, Simplified

Wednesday, February 6, 13
Why Not?


                    • nulls vs. blanks can be confusing


                                                          Custom Software, Simplified

Wednesday, February 6, 13
module	
  Facebook
         	
  	
  def	
  self.secret_key=(key)
         	
  	
  	
  
                  	
  configatron.facebook.secret_key	
  =	
  key
         	
  	
  end

         	
  	
  def	
  self.secret_key
         	
  	
  	
  
                  	
  configatron.facebook.secret_key
         	
  	
  end
         end




                                                             Custom Software, Simplified

Wednesday, February 6, 13
Bourbon




                                      Custom Software, Simplified

Wednesday, February 6, 13
Why?

                    • Handy shortcuts for common CSS
                            idioms

                    • Beautiful documentation
                    • Exposes you to lots of great/creative
                            CSS uses



                                                        Custom Software, Simplified

Wednesday, February 6, 13
Why Not?

                    • Can be difficult to install/configure as
                            part of the asset pipeline

                    • You still need to be an informed
                            consumer of experimental CSS
                            features



                                                           Custom Software, Simplified

Wednesday, February 6, 13
http://bourbon.io




                                                Custom Software, Simplified

Wednesday, February 6, 13
To Learn More...




                               http://launchacademy.co
                            The Fun Begins May 1st
                                                         Custom Software, Simplified

Wednesday, February 6, 13
For More Gems...


                    • Ignition, our rails template is available
                            •   http://github.com/LaunchWare/ignition




                                                                 Custom Software, Simplified

Wednesday, February 6, 13
Questions?



                                         Custom Software, Simplified

Wednesday, February 6, 13

Más contenido relacionado

Similar a 5 Of Our Favorite Ruby Gems

Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object PatternDante Briones
 
Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009John Woodell
 
Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Jess Coburn
 
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...PatrickCrompton
 
Optimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingOptimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingJon Brown
 
Hadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-TenancyHadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-TenancyTreasure Data, Inc.
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCTroy Miles
 
VIB - Very Important Bundles
VIB - Very Important BundlesVIB - Very Important Bundles
VIB - Very Important BundlesRoman Roelofsen
 
Fault tolerance - look, it's simple!
Fault tolerance - look, it's simple!Fault tolerance - look, it's simple!
Fault tolerance - look, it's simple!Izzet Mustafaiev
 
Scaling the synchronous web - Elaine Wherry
Scaling the synchronous web - Elaine WherryScaling the synchronous web - Elaine Wherry
Scaling the synchronous web - Elaine WherryCarsonified Team
 
Cross-platform tools for mobile application development
Cross-platform tools for mobile application developmentCross-platform tools for mobile application development
Cross-platform tools for mobile application developmentbertouttier
 
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...VMware Tanzu
 
Let's speed it up a bit (AmsterdamPHP)
Let's speed it up a bit (AmsterdamPHP)Let's speed it up a bit (AmsterdamPHP)
Let's speed it up a bit (AmsterdamPHP)pascaldevink
 
Techzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile AppsTechzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile AppsAnthony Somerset
 
static ABAP code analyzers
static ABAP code analyzersstatic ABAP code analyzers
static ABAP code analyzersMarkus Theilen
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer ToolboxYnon Perek
 

Similar a 5 Of Our Favorite Ruby Gems (20)

App Engine Meetup
App Engine MeetupApp Engine Meetup
App Engine Meetup
 
Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object Pattern
 
Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009
 
Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11
 
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
 
Optimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingOptimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web Hosting
 
Hadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-TenancyHadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-Tenancy
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVC
 
VIB - Very Important Bundles
VIB - Very Important BundlesVIB - Very Important Bundles
VIB - Very Important Bundles
 
Fault tolerance - look, it's simple!
Fault tolerance - look, it's simple!Fault tolerance - look, it's simple!
Fault tolerance - look, it's simple!
 
Scaling the synchronous web - Elaine Wherry
Scaling the synchronous web - Elaine WherryScaling the synchronous web - Elaine Wherry
Scaling the synchronous web - Elaine Wherry
 
Rubypalooza 2009
Rubypalooza 2009Rubypalooza 2009
Rubypalooza 2009
 
Agile framework Support
Agile framework SupportAgile framework Support
Agile framework Support
 
Cross-platform tools for mobile application development
Cross-platform tools for mobile application developmentCross-platform tools for mobile application development
Cross-platform tools for mobile application development
 
java Features
java Featuresjava Features
java Features
 
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
SpringOne Tour: 10 Practical Tips for Building Native and Serverless Spring A...
 
Let's speed it up a bit (AmsterdamPHP)
Let's speed it up a bit (AmsterdamPHP)Let's speed it up a bit (AmsterdamPHP)
Let's speed it up a bit (AmsterdamPHP)
 
Techzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile AppsTechzim Surge: Important Considerations for Hosting Web or Mobile Apps
Techzim Surge: Important Considerations for Hosting Web or Mobile Apps
 
static ABAP code analyzers
static ABAP code analyzersstatic ABAP code analyzers
static ABAP code analyzers
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer Toolbox
 

Más de Dan Pickett

Developing Developers Through Apprenticeship
Developing Developers Through ApprenticeshipDeveloping Developers Through Apprenticeship
Developing Developers Through ApprenticeshipDan Pickett
 
Engines Lightning Talk
Engines Lightning TalkEngines Lightning Talk
Engines Lightning TalkDan Pickett
 
Refinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS ShowdownRefinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS ShowdownDan Pickett
 
VCR Lightning Talk
VCR Lightning TalkVCR Lightning Talk
VCR Lightning TalkDan Pickett
 
A Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery MobileA Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery MobileDan Pickett
 
So You've Got a Software Idea...Now What?
So You've Got a Software Idea...Now What?So You've Got a Software Idea...Now What?
So You've Got a Software Idea...Now What?Dan Pickett
 
It's Not Just About Code
It's Not Just About CodeIt's Not Just About Code
It's Not Just About CodeDan Pickett
 

Más de Dan Pickett (8)

Developing Developers Through Apprenticeship
Developing Developers Through ApprenticeshipDeveloping Developers Through Apprenticeship
Developing Developers Through Apprenticeship
 
Intro to jquery
Intro to jqueryIntro to jquery
Intro to jquery
 
Engines Lightning Talk
Engines Lightning TalkEngines Lightning Talk
Engines Lightning Talk
 
Refinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS ShowdownRefinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS Showdown
 
VCR Lightning Talk
VCR Lightning TalkVCR Lightning Talk
VCR Lightning Talk
 
A Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery MobileA Brief Introduction to JQuery Mobile
A Brief Introduction to JQuery Mobile
 
So You've Got a Software Idea...Now What?
So You've Got a Software Idea...Now What?So You've Got a Software Idea...Now What?
So You've Got a Software Idea...Now What?
 
It's Not Just About Code
It's Not Just About CodeIt's Not Just About Code
It's Not Just About Code
 

Último

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Último (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

5 Of Our Favorite Ruby Gems

  • 1. 5 Awesome Gems ...and some fun with MemeGenerator Custom Software, Simplified Wednesday, February 6, 13
  • 2. Hi! • I’m Dan • Co-Organizer @ BostonRB • Principal Consultant @ LaunchWare • Head of Instruction @ Launch Academy • dpickett on Twitter / GitHub/ everyHub Custom Software, Simplified Wednesday, February 6, 13
  • 3. Some Favorites • inherited_resources • kaminari • guard • configatron • bourbon Custom Software, Simplified Wednesday, February 6, 13
  • 4. Inherited Resources Custom Software, Simplified Wednesday, February 6, 13
  • 5. Why? • Makes writing boilerplate controllers easier • Easy internationalization of flash text with the Responders gem • Easy API generation for JSON and XML Custom Software, Simplified Wednesday, February 6, 13
  • 6. Why Not? • Another DSL/Library to Learn • Can sometimes get in your way for nonstandard controller actions • Not good for beginners - feel the pain of repetition in your controllers, first Custom Software, Simplified Wednesday, February 6, 13
  • 7. class  AccountsController  <  ApplicationController    respond_to  :json    inherit_resources  #gives  you  all  RESTful  actions  for  Account end Custom Software, Simplified Wednesday, February 6, 13
  • 8. Kaminari Custom Software, Simplified Wednesday, February 6, 13
  • 9. Why? • Easily customizable/themed • great configuration options • awesome generators • Scope-Based • Doesn’t hack core objects • I18n ready for localization Custom Software, Simplified Wednesday, February 6, 13
  • 10. Why Not? • Other engines might express alternative decisions (refinery, ie) • Can be painful to paginate non-scope/ AREL collections Custom Software, Simplified Wednesday, February 6, 13
  • 11. #in  your  controller @users  =  User.    page(params[:page]).    per(50) #in your view <%= paginate @users %> Custom Software, Simplified Wednesday, February 6, 13
  • 12. guard Custom Software, Simplified Wednesday, February 6, 13
  • 13. Why? • Don’t constantly have to run tests manually • Invokes tests for files that change • Extensible plugin architecture • Extensible notification architecture Custom Software, Simplified Wednesday, February 6, 13
  • 14. Why Not? • Minor issue where guard plugins can lag behind on dependencies Custom Software, Simplified Wednesday, February 6, 13
  • 15. Configatron Custom Software, Simplified Wednesday, February 6, 13
  • 16. Why? • Easy, dynamic configuration for gems and applications • Configure via manual code, hash or YAML • Plays nicely with Rails Application configuration Custom Software, Simplified Wednesday, February 6, 13
  • 17. Why Not? • nulls vs. blanks can be confusing Custom Software, Simplified Wednesday, February 6, 13
  • 18. module  Facebook    def  self.secret_key=(key)        configatron.facebook.secret_key  =  key    end    def  self.secret_key        configatron.facebook.secret_key    end end Custom Software, Simplified Wednesday, February 6, 13
  • 19. Bourbon Custom Software, Simplified Wednesday, February 6, 13
  • 20. Why? • Handy shortcuts for common CSS idioms • Beautiful documentation • Exposes you to lots of great/creative CSS uses Custom Software, Simplified Wednesday, February 6, 13
  • 21. Why Not? • Can be difficult to install/configure as part of the asset pipeline • You still need to be an informed consumer of experimental CSS features Custom Software, Simplified Wednesday, February 6, 13
  • 22. http://bourbon.io Custom Software, Simplified Wednesday, February 6, 13
  • 23. To Learn More... http://launchacademy.co The Fun Begins May 1st Custom Software, Simplified Wednesday, February 6, 13
  • 24. For More Gems... • Ignition, our rails template is available • http://github.com/LaunchWare/ignition Custom Software, Simplified Wednesday, February 6, 13
  • 25. Questions? Custom Software, Simplified Wednesday, February 6, 13