Submit Search
Upload
Metaprogramming patterns
•
0 likes
•
193 views
G
Glenn Espinosa
Follow
popular ruby metaprogramming patterns
Read less
Read more
Software
Report
Share
Report
Share
1 of 14
Download now
Download to read offline
Recommended
Ruby on rails intro
Ruby on rails intro
Ming-hsuan Chang
Groovy to gradle
Groovy to gradle
Geng-Dian Huang
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
ISsoft
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
SQALab
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Skills Matter
Xbase implementing specific domain language for java
Xbase implementing specific domain language for java
Yash Patel
Agile DSL Development in Ruby
Agile DSL Development in Ruby
elliando dias
Recommended
Ruby on rails intro
Ruby on rails intro
Ming-hsuan Chang
Groovy to gradle
Groovy to gradle
Geng-Dian Huang
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
ISsoft
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
SQALab
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Skills Matter
Xbase implementing specific domain language for java
Xbase implementing specific domain language for java
Yash Patel
Agile DSL Development in Ruby
Agile DSL Development in Ruby
elliando dias
Groovy DSL
Groovy DSL
NexThoughts Technologies
DSL Construction rith Ruby
DSL Construction rith Ruby
ThoughtWorks
Rust baksia2014
Rust baksia2014
Reidar Sollid
Domain Specific Languages
Domain Specific Languages
elliando dias
Sprache als Werkzeug: DSLs mit Kotlin (JAX 2020)
Sprache als Werkzeug: DSLs mit Kotlin (JAX 2020)
Frank Scheffler
Cucumber
Cucumber
Nagaraddi SS
An introduction to the ruby ecosystem
An introduction to the ruby ecosystem
Geison Goes
Preparing for Scala 3
Preparing for Scala 3
Martin Odersky
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
deimos
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)
Martijn Verburg
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
bartholomeocoombs
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
Mark Menard
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
Harshal Hayatnagarkar
Log cat kotlindsl
Log cat kotlindsl
sanaebadi1
Domain Specific Languages
Domain Specific Languages
Lakshan Perera
Devoxx: From-brown-field-to-green-field
Devoxx: From-brown-field-to-green-field
stijn vanpoucke
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
Espen Brækken
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
Schwannden Kuo
An introduction to_programming_with_c__threads 2005
An introduction to_programming_with_c__threads 2005
mohammad shayestehfar
Principles Of Programing Languages
Principles Of Programing Languages
Matthew McCullough
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
SolGuruz
More Related Content
Similar to Metaprogramming patterns
Groovy DSL
Groovy DSL
NexThoughts Technologies
DSL Construction rith Ruby
DSL Construction rith Ruby
ThoughtWorks
Rust baksia2014
Rust baksia2014
Reidar Sollid
Domain Specific Languages
Domain Specific Languages
elliando dias
Sprache als Werkzeug: DSLs mit Kotlin (JAX 2020)
Sprache als Werkzeug: DSLs mit Kotlin (JAX 2020)
Frank Scheffler
Cucumber
Cucumber
Nagaraddi SS
An introduction to the ruby ecosystem
An introduction to the ruby ecosystem
Geison Goes
Preparing for Scala 3
Preparing for Scala 3
Martin Odersky
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
deimos
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)
Martijn Verburg
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
bartholomeocoombs
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
Mark Menard
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
Harshal Hayatnagarkar
Log cat kotlindsl
Log cat kotlindsl
sanaebadi1
Domain Specific Languages
Domain Specific Languages
Lakshan Perera
Devoxx: From-brown-field-to-green-field
Devoxx: From-brown-field-to-green-field
stijn vanpoucke
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
Espen Brækken
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
Schwannden Kuo
An introduction to_programming_with_c__threads 2005
An introduction to_programming_with_c__threads 2005
mohammad shayestehfar
Principles Of Programing Languages
Principles Of Programing Languages
Matthew McCullough
Similar to Metaprogramming patterns
(20)
Groovy DSL
Groovy DSL
DSL Construction rith Ruby
DSL Construction rith Ruby
Rust baksia2014
Rust baksia2014
Domain Specific Languages
Domain Specific Languages
Sprache als Werkzeug: DSLs mit Kotlin (JAX 2020)
Sprache als Werkzeug: DSLs mit Kotlin (JAX 2020)
Cucumber
Cucumber
An introduction to the ruby ecosystem
An introduction to the ruby ecosystem
Preparing for Scala 3
Preparing for Scala 3
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
Log cat kotlindsl
Log cat kotlindsl
Domain Specific Languages
Domain Specific Languages
Devoxx: From-brown-field-to-green-field
Devoxx: From-brown-field-to-green-field
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
An introduction to_programming_with_c__threads 2005
An introduction to_programming_with_c__threads 2005
Principles Of Programing Languages
Principles Of Programing Languages
Recently uploaded
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
SolGuruz
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
aagamshah0812
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Jhone kinadey
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
kalichargn70th171
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
Willy Marroquin (WillyDevNET)
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
harshavardhanraghave
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
MyIntelliSource, Inc.
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
bodapatigopi8531
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
Software Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
Arshad QA
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
shikhaohhpro
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
panagenda
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
ThousandEyes
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
Fatema Valibhai
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
Delhi Call girls
Recently uploaded
(20)
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
Software Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
Metaprogramming patterns
1.
Popular Metaprogramming Patterns in Ruby Glenn
Espinosa
2.
Seeing Metaprogramming And
Lambda Function Patterns in Ruby By Lukas Nimmo
3.
“Ruby is beautiful
so our DSLs should be beautiful (yet extremely powerful)”
4.
Metaprogramming techniques for beautiful
DSLs • Configuration options • Situational language • Declarative DSLs • Flexible interfaces
5.
1. Configuration Options Goal:
Provide global config options for a library
6.
Solution: User can
specify config options and it will always configure the Singleton. Using a block makes configuration explicit. @gpespn
7.
2. Situational language Goal:
Offer situational language = Flexible interface that relies on the same implementation
8.
Solution: Alias methods
for singular & plural implementations, also consider synonyms (RSpec uses this a lot)
9.
3. Declarative DSL’s Goal:
Declarative DSL's for setting up classes in your domain with common functionality.
10.
11.
4. Flexible Interfaces Goal:
Allow many entries around the same structure. Reduce scoping for common functionality.
12.
13.
Reduce redundancy for your
users
Download now