everythingrb 0.6.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +65 -1
- data/README.md +469 -46
- data/lib/everythingrb/all.rb +8 -0
- data/lib/everythingrb/array.rb +5 -21
- data/lib/everythingrb/boolean.rb +33 -0
- data/lib/everythingrb/data.rb +7 -0
- data/lib/everythingrb/date.rb +31 -0
- data/lib/everythingrb/enumerable.rb +4 -2
- data/lib/everythingrb/extensions/quotable.rb +82 -0
- data/lib/everythingrb/extensions.rb +3 -0
- data/lib/everythingrb/hash.rb +247 -24
- data/lib/everythingrb/kernel.rb +35 -0
- data/lib/everythingrb/nil.rb +15 -0
- data/lib/everythingrb/numeric.rb +18 -0
- data/lib/everythingrb/ostruct.rb +11 -1
- data/lib/everythingrb/prelude.rb +1 -0
- data/lib/everythingrb/range.rb +20 -0
- data/lib/everythingrb/regexp.rb +19 -0
- data/lib/everythingrb/string.rb +42 -9
- data/lib/everythingrb/struct.rb +7 -0
- data/lib/everythingrb/symbol.rb +3 -3
- data/lib/everythingrb/time.rb +19 -0
- data/lib/everythingrb/version.rb +1 -1
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b3c80f8891826722af0d521a4dad5ba31e90540ad46cc31e25d6fc0ed34cd52
|
4
|
+
data.tar.gz: 8e7f1daa4a9db4e31b2c4c3f58d3573ed36d833ab98e51d2daa997839f28eefd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bc88ea3c150c7e6cb6b55364d78f2eb863ec368c39b40f1f7d855dbaa43a3f3c7cde240971e649ca2b0eeded6c639179614d472446f37a5a89ae59cd026616d
|
7
|
+
data.tar.gz: 0327b5ae60b07e38ac81a292ca34639b6295beb23dab45410e0420350c3451e14745d1660e08520bcda2c92bc74a796bfdd12ecea1036414f01f1375218de1f1
|
data/CHANGELOG.md
CHANGED
@@ -15,6 +15,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
15
15
|
### Removed
|
16
16
|
-->
|
17
17
|
|
18
|
+
## [Unreleased]
|
19
|
+
|
20
|
+
### Added
|
21
|
+
|
22
|
+
### Changed
|
23
|
+
|
24
|
+
### Removed
|
25
|
+
|
26
|
+
## [0.8.0] - 12025-05-11
|
27
|
+
|
28
|
+
### Added
|
29
|
+
|
30
|
+
- Added conditional hash merging methods:
|
31
|
+
- `Hash#merge_if` and `Hash#merge_if!` - Merge key-value pairs based on a condition
|
32
|
+
- `Hash#merge_if_values` and `Hash#merge_if_values!` - Merge based on values only
|
33
|
+
- `Hash#merge_compact` and `Hash#merge_compact!` - Merge only non-nil values
|
34
|
+
- Added `String#to_camelcase` - Converts strings to camelCase/PascalCase while handling spaces, hyphens, underscores, and special characters
|
35
|
+
- Supports both lowercase first letter (`:lower`) and uppercase first letter (`:upper`), which is default
|
36
|
+
|
37
|
+
### Changed
|
38
|
+
|
39
|
+
- Updated documentation
|
40
|
+
|
41
|
+
### Removed
|
42
|
+
|
43
|
+
- Removed potentially dangerous `Array#deep_freeze` and `Hash#deep_freeze` methods to prevent accidental freezing of classes and singleton objects. This creates a safer API for the 1.0.0 milestone.
|
44
|
+
|
45
|
+
## [0.7.0] - 12025-05-04
|
46
|
+
|
47
|
+
### Added
|
48
|
+
|
49
|
+
- Created `Everythingrb::InspectQuotable` and `Everythingrb::StringQuotable` modules for consistent quote functionality
|
50
|
+
- Extended quotable functionality to many more Ruby core classes:
|
51
|
+
- `TrueClass` and `FalseClass` (boolean values)
|
52
|
+
- `NilClass`
|
53
|
+
- `Numeric`
|
54
|
+
- `Range`
|
55
|
+
- `Regexp`
|
56
|
+
- `Time`, `Date`, and `DateTime`
|
57
|
+
- `Data` and `Struct` classes
|
58
|
+
- Added new Hash methods for filtering based on values only:
|
59
|
+
- `Hash#select_values` - Returns a new hash with entries where the block returns true for the value
|
60
|
+
- `Hash#select_values!` - Same as `select_values` but modifies the hash in place
|
61
|
+
- `Hash#reject_values` - Returns a new hash with entries where the block returns false for the value
|
62
|
+
- `Hash#reject_values!` - Same as `reject_values` but modifies the hash in place
|
63
|
+
- Added `filter_values` and `filter_values!` as aliases for `select_values` and `select_values!` respectively
|
64
|
+
- Added `Kernel#morph` as an alias for `then` (and `yield_self`) that better communicates transformation intent:
|
65
|
+
```ruby
|
66
|
+
# Instead of this:
|
67
|
+
value.then { |v| transform_somehow(v) }
|
68
|
+
|
69
|
+
# You can write this:
|
70
|
+
value.morph { |v| transform_somehow(v) }
|
71
|
+
```
|
72
|
+
|
73
|
+
### Changed
|
74
|
+
|
75
|
+
- Refactored existing quotable implementations to use the new modules
|
76
|
+
- Standardized method order to prefer `in_quotes` as the primary method with `with_quotes` as an alias
|
77
|
+
|
78
|
+
### Removed
|
79
|
+
|
18
80
|
## [0.6.1] - 12025-04-26
|
19
81
|
|
20
82
|
### Changed
|
@@ -221,7 +283,9 @@ This change aligns our method signatures with Ruby's conventions and matches our
|
|
221
283
|
|
222
284
|
- Added alias `each` to `each_pair` in OpenStruct for better enumerable compatibility
|
223
285
|
|
224
|
-
[unreleased]: https://github.com/itsthedevman/everythingrb/compare/v0.
|
286
|
+
[unreleased]: https://github.com/itsthedevman/everythingrb/compare/v0.8.0...HEAD
|
287
|
+
[0.8.0]: https://github.com/itsthedevman/everythingrb/compare/v0.7.0...v0.8.0
|
288
|
+
[0.7.0]: https://github.com/itsthedevman/everythingrb/compare/v0.6.1...v0.7.0
|
225
289
|
[0.6.1]: https://github.com/itsthedevman/everythingrb/compare/v0.6.0...v0.6.1
|
226
290
|
[0.6.0]: https://github.com/itsthedevman/everythingrb/compare/v0.5.0...v0.6.0
|
227
291
|
[0.5.0]: https://github.com/itsthedevman/everythingrb/compare/v0.4.0...v0.5.0
|