SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 5 Of Our Favorite Ruby Gems

Aloha on-rails-2009
Aloha on-rails-2009Aloha on-rails-2009
Aloha on-rails-2009
John Woodell
 
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
 
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
Anthony Somerset
 

Similaire à 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
 

Plus 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
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

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