funcml-core 0.9.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da9c2ae2356b8d3277cbbaecbeeed6592a285211d8cb77802cbe29aa6b60ef8b
4
- data.tar.gz: de2322628fec13589866f907191aed5b50b7daf3c123e87d6b49ea61f4965750
3
+ metadata.gz: 44b6c971761ae0490fe5e6e2fd1d01dc5f432de709db16390cf7689812da089f
4
+ data.tar.gz: fd6cfd70f933800d444e98b23df4ca1e5db587abb41174d2ac8ec504d9db89f2
5
5
  SHA512:
6
- metadata.gz: 4b7ee27995128146f4678e98830a55683ed3989980d78ecbb1f11584913b669cb2d010c681266b4ad3dbc5edc28dad06e42cf8ce19f832f49b07564d11c4827a
7
- data.tar.gz: 6b57b3bb725765618c42753ae33fabb25982ec92af880720cc4721271856a570161017e4ea93393324cd7319698a5ad786c77745427beb563b81c07e987540c2
6
+ metadata.gz: 46ca29aa02bf9d4655eddf55f2ff03b6ad1d37c3972232da5c6278e0f0f30c08d61ab4ce4ece8320635fb05db8a41ce0c819d6de5c78b2cdc9abea09183dd37a
7
+ data.tar.gz: a1f23fb26b844e4c9944ae5bd0db4db5fd2031619c95daaab7526d6463d7202d02f3414fc81dd2f6e1f02e3ec35a0923c6a24414345a133ed5d3b79b72bc3757
@@ -32,6 +32,14 @@ class Hash
32
32
  self
33
33
  end
34
34
 
35
+ def _map(mutations)
36
+ self.fetch(:_map).then do |ctx|
37
+ ctx.fetch(:items, []).mutate(mutations).map do |item|
38
+ {ctx.fetch(:call).to_sym => item}.mutate(mutations)
39
+ end
40
+ end
41
+ end
42
+
35
43
  def _if(mutations)
36
44
  _runcond = Proc.new do |cond, mutations|
37
45
  case cond
@@ -173,13 +181,31 @@ class Hash
173
181
  self.fetch(:_replace).then do |ctx|
174
182
  content = ctx.fetch(:content)
175
183
  ctx.fetch(:substitutions).each do |from, to|
176
- content = content.gsub(from, to)
184
+ content = content.gsub(from.mutate(mutations), to.mutate(mutations))
177
185
  end
178
186
 
179
187
  content
180
188
  end
181
189
  end
182
190
 
191
+ def _upcase(mutations)
192
+ self.fetch(:_upcase).then do |ctx|
193
+ return ctx.mutate(mutations).upcase
194
+ end
195
+ end
196
+
197
+ def _downcase(mutations)
198
+ self.fetch(:_downcase).then do |ctx|
199
+ return ctx.mutate(mutations).downcase
200
+ end
201
+ end
202
+
203
+ def _capitalize(mutations)
204
+ self.fetch(:_capitalize).then do |ctx|
205
+ return ctx.mutate(mutations).capitalize
206
+ end
207
+ end
208
+
183
209
  def dig_from_str(path, mutations)
184
210
  path_array_sym = path.split('.').map do |sub|
185
211
  sub.to_sym
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Funcml
4
- VERSION = "0.9.3"
4
+ VERSION = "1.0.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: funcml-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mimopotato
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-02 00:00:00.000000000 Z
11
+ date: 2024-08-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A library that implements mutations on data-structures
14
14
  email: