<commit_before>---
layout:     post
title:      "Advanced Ruby"
date:       2020-04-25 00:00:00
author:     "<NAME>"
header-img: "img/post-bg-14.jpg"
lang:       en
---

# Advance Ruby (Summary)

In the following set of posts I'm going ot explore some advance concepts of Ruby, usually these special features most of programmers don't use, because these concepts are not found in other programming languages. When a programmer uses Ruby at first time, usually he doesn't realize how important and usefull this language is. This is because the real motivation to use Ruby is hidden from the average programmer, because in other mainstream languages these features doesn't even exists.

These advance features are:

- [Mixins]({% link _posts/2020-04-26-advanced-ruby-1.markdown %})
- [Object-Specific Classes]({% link _posts/2020-05-02-advanced-ruby-2.markdown %})
- [module_eval]({% link _posts/2020-05-13-advanced-ruby-3.markdown %})
- [class << self]({% link _posts/2020-05-16-advanced-ruby-4.markdown %})
- Metaclasses
- Dynamic typing
- Duck typing
- DSL
- Functional programming
- Procedural programming
- Aspect oriented programming <commit_msg>ruby advance 5<commit_after>---
layout:     post
title:      "Advanced Ruby"
date:       2020-04-25 00:00:00
author:     "<NAME>"
header-img: "img/post-bg-14.jpg"
lang:       en
---

# Advance Ruby (Summary)

In the following set of posts I'm going ot explore some advance concepts of Ruby, usually these special features most of programmers don't use, because these concepts are not found in other programming languages. When a programmer uses Ruby at first time, usually he doesn't realize how important and usefull this language is. This is because the real motivation to use Ruby is hidden from the average programmer, because in other mainstream languages these features doesn't even exists.

These advance features are:

- [Mixins]({% link _posts/2020-04-26-advanced-ruby-1.markdown %})
- [Object-Specific Classes]({% link _posts/2020-05-02-advanced-ruby-2.markdown %})
- [module_eval]({% link _posts/2020-05-13-advanced-ruby-3.markdown %})
- [class << self]({% link _posts/2020-05-16-advanced-ruby-4.markdown %})
- [Metaclasses]({% link _posts/2020-05-20-advanced-ruby-5.markdown %})
- Dynamic typing
- Duck typing
- DSL
- Functional programming
- Procedural programming
- Aspect oriented programming 
{'fraction_non_alphanumeric': 0.10899067005937235, 'fraction_numerical': 0.04834605597964377, 'mean_word_length': 3.9873150105708244, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5096173', 'n_tokens_mistral': 791, 'n_tokens_neox': 655, 'n_words': 258}