mirror of
https://github.com/jbranchaud/til
synced 2026-09-02 09:41:47 +00:00
Add link to Ruby docs and apply markdown formatting
This commit is contained in:
@@ -4,7 +4,9 @@ I recently ran into some code that was building up a hash keyed by _category_.
|
|||||||
It was a series of chained method calls building and transforming to produce the
|
It was a series of chained method calls building and transforming to produce the
|
||||||
hash. It then ended with `.slice(*CATEGORIES)`.
|
hash. It then ended with `.slice(*CATEGORIES)`.
|
||||||
|
|
||||||
That `#slice` call at the end was doing two things:
|
That
|
||||||
|
[`Hash#slice`](https://docs.ruby-lang.org/en/master/Hash.html#method-i-slice)
|
||||||
|
call at the end was doing two things:
|
||||||
|
|
||||||
1. It was removing any key-value pairs not in `CATEGORIES`
|
1. It was removing any key-value pairs not in `CATEGORIES`
|
||||||
2. It was reordering the hash keys based on the order they appeared in `CATEGORIES`
|
2. It was reordering the hash keys based on the order they appeared in `CATEGORIES`
|
||||||
@@ -23,12 +25,12 @@ Let's look at a minimum example of this:
|
|||||||
```
|
```
|
||||||
|
|
||||||
- I first define `CATEGORIES` which is an (ordered) array of symbols that
|
- I first define `CATEGORIES` which is an (ordered) array of symbols that
|
||||||
represent the categories I care about.
|
represent the categories I care about.
|
||||||
- Then I manufacture a hash of items by category. This is a bunch of dummy data,
|
- Then I manufacture a hash of items by category. This is a bunch of dummy data,
|
||||||
including extra categories, meant to demonstrate what `#slice` can do.
|
including extra categories, meant to demonstrate what `#slice` can do.
|
||||||
- Lastly I call `.slice(*CATEGORIES)` on this hash which both pairs it down to
|
- Lastly I call `.slice(*CATEGORIES)` on this hash which both pairs it down to
|
||||||
that set of categories and reorders the hash so that the keys appears in the
|
that set of categories and reorders the hash so that the keys appears in the
|
||||||
same order they do in the `CATEGORIES` array.
|
same order they do in the `CATEGORIES` array.
|
||||||
|
|
||||||
This might be useful if I've defined `CATEGORIES` to be in a specific display
|
This might be useful if I've defined `CATEGORIES` to be in a specific display
|
||||||
order and I'm preparing this hash for consumption in some UI layer.
|
order and I'm preparing this hash for consumption in some UI layer.
|
||||||
|
|||||||
Reference in New Issue
Block a user