dry-transformer 0.1.0 → 1.0.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 +23 -1
- data/LICENSE +1 -1
- data/README.md +6 -5
- data/dry-transformer.gemspec +26 -14
- data/lib/dry/transformer/{array.rb → array_transformations.rb} +1 -5
- data/lib/dry/transformer/{class.rb → class_transformations.rb} +0 -0
- data/lib/dry/transformer/coercions.rb +6 -6
- data/lib/dry/transformer/function.rb +0 -2
- data/lib/dry/transformer/{hash.rb → hash_transformations.rb} +50 -73
- data/lib/dry/transformer/pipe/class_interface.rb +3 -3
- data/lib/dry/transformer/pipe/dsl.rb +1 -1
- data/lib/dry/transformer/pipe.rb +0 -2
- data/lib/dry/transformer/{proc.rb → proc_transformations.rb} +0 -0
- data/lib/dry/transformer/recursion.rb +0 -2
- data/lib/dry/transformer/version.rb +1 -1
- data/lib/dry/transformer.rb +20 -10
- data/lib/dry-transformer.rb +1 -1
- metadata +33 -66
- data/.codeclimate.yml +0 -12
- data/.github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md +0 -10
- data/.github/ISSUE_TEMPLATE/---bug-report.md +0 -30
- data/.github/ISSUE_TEMPLATE/---feature-request.md +0 -18
- data/.github/workflows/custom_ci.yml +0 -66
- data/.github/workflows/docsite.yml +0 -34
- data/.github/workflows/sync_configs.yml +0 -34
- data/.gitignore +0 -16
- data/.rspec +0 -4
- data/.rubocop.yml +0 -95
- data/CODE_OF_CONDUCT.md +0 -13
- data/CONTRIBUTING.md +0 -29
- data/Gemfile +0 -19
- data/Rakefile +0 -6
- data/docsite/source/built-in-transformations.html.md +0 -47
- data/docsite/source/index.html.md +0 -15
- data/docsite/source/transformation-objects.html.md +0 -32
- data/docsite/source/using-standalone-functions.html.md +0 -82
- data/lib/dry/transformer/all.rb +0 -11
- data/spec/spec_helper.rb +0 -31
- data/spec/unit/array/combine_spec.rb +0 -224
- data/spec/unit/array_transformations_spec.rb +0 -233
- data/spec/unit/class_transformations_spec.rb +0 -50
- data/spec/unit/coercions_spec.rb +0 -132
- data/spec/unit/conditional_spec.rb +0 -48
- data/spec/unit/function_not_found_error_spec.rb +0 -12
- data/spec/unit/function_spec.rb +0 -193
- data/spec/unit/hash_transformations_spec.rb +0 -490
- data/spec/unit/proc_transformations_spec.rb +0 -20
- data/spec/unit/recursion_spec.rb +0 -145
- data/spec/unit/registry_spec.rb +0 -202
- data/spec/unit/store_spec.rb +0 -198
- data/spec/unit/transformer/class_interface_spec.rb +0 -350
- data/spec/unit/transformer/dsl_spec.rb +0 -15
- data/spec/unit/transformer/instance_methods_spec.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c7c1900796125a73ede474825b9da2021aa274e9b5a34f0e45a161c6abef772
|
4
|
+
data.tar.gz: a642ff796d204314dfc2650d65f6c42bd8d25e991aa144f5d680f1d08083ea08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cc3a05b5a3a792da5aad7b1f57d79e5598631de33b90f67509faf6c9a4478e382d191f4359553f849012f12e5cd0452a90df5a57f2fa98021835fe594ee553c
|
7
|
+
data.tar.gz: 7aa04fae45c928ad437526dbf0161130ba2f63c3883ef664d335acb08f21a90c5fad32726d0a0e9c0e698115c7ddaa8c68b23ad03737142e6bc8657f51cd545a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
-
|
1
|
+
<!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
|
2
|
+
|
3
|
+
## 1.0.0 2022-11-20
|
4
|
+
|
5
|
+
|
6
|
+
### Changed
|
7
|
+
|
8
|
+
- Use Zeitwerk to auto-load the gem (via #14) (@solnic)
|
9
|
+
- Dropped dependency on dry-core (via #14) (@solnic)
|
10
|
+
|
11
|
+
[Compare v0.1.1...v1.0.0](https://github.com/dry-rb/dry-transformer/compare/v0.1.1...v1.0.0)
|
12
|
+
|
13
|
+
## 0.1.1 2020-01-14
|
14
|
+
|
15
|
+
|
16
|
+
### Fixed
|
17
|
+
|
18
|
+
- Fixed Dry::Transformer::HashTransformations.unwrap when hash contains root key (@AMHOL)
|
19
|
+
|
20
|
+
|
21
|
+
[Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-transformer/compare/v0.1.0...v0.1.1)
|
22
|
+
|
23
|
+
## 0.1.0 2019-12-28
|
2
24
|
|
3
25
|
Initial port of the [transproc](https://github.com/solnic/transproc) gem.
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
<!--- this file is synced from dry-rb/template-gem project -->
|
1
2
|
[gem]: https://rubygems.org/gems/dry-transformer
|
2
3
|
[actions]: https://github.com/dry-rb/dry-transformer/actions
|
3
4
|
[codacy]: https://www.codacy.com/gh/dry-rb/dry-transformer
|
@@ -10,19 +11,19 @@
|
|
10
11
|
[][actions]
|
11
12
|
[][codacy]
|
12
13
|
[][codacy]
|
13
|
-
[][inchpages]
|
14
15
|
|
15
16
|
## Links
|
16
17
|
|
17
|
-
* [User documentation](
|
18
|
+
* [User documentation](https://dry-rb.org/gems/dry-transformer)
|
18
19
|
* [API documentation](http://rubydoc.info/gems/dry-transformer)
|
19
20
|
|
20
21
|
## Supported Ruby versions
|
21
22
|
|
22
|
-
This library officially supports following Ruby versions:
|
23
|
+
This library officially supports the following Ruby versions:
|
23
24
|
|
24
|
-
* MRI
|
25
|
-
* jruby
|
25
|
+
* MRI `>= 2.7.0`
|
26
|
+
* jruby `>= 9.3` (postponed until 2.7 is supported)
|
26
27
|
|
27
28
|
## License
|
28
29
|
|
data/dry-transformer.gemspec
CHANGED
@@ -1,22 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
# this file is synced from dry-rb/template-gem project
|
4
|
+
|
5
|
+
lib = File.expand_path("lib", __dir__)
|
4
6
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require
|
7
|
+
require "dry/transformer/version"
|
6
8
|
|
7
9
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name =
|
10
|
+
spec.name = "dry-transformer"
|
11
|
+
spec.authors = ["Piotr Solnica"]
|
12
|
+
spec.email = ["piotr.solnica@gmail.com"]
|
13
|
+
spec.license = "MIT"
|
9
14
|
spec.version = Dry::Transformer::VERSION.dup
|
10
|
-
|
11
|
-
spec.
|
12
|
-
spec.summary = 'Data transformation toolkit'
|
15
|
+
|
16
|
+
spec.summary = "Data transformation toolkit"
|
13
17
|
spec.description = spec.summary
|
14
|
-
spec.homepage =
|
15
|
-
spec.
|
16
|
-
|
17
|
-
spec.
|
18
|
-
spec.
|
19
|
-
|
20
|
-
spec.
|
21
|
-
spec.
|
18
|
+
spec.homepage = "https://dry-rb.org/gems/dry-transformer"
|
19
|
+
spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-transformer.gemspec", "lib/**/*"]
|
20
|
+
spec.bindir = "bin"
|
21
|
+
spec.executables = []
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
25
|
+
spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-transformer/blob/main/CHANGELOG.md"
|
26
|
+
spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-transformer"
|
27
|
+
spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-transformer/issues"
|
28
|
+
|
29
|
+
spec.required_ruby_version = ">= 2.7.0"
|
30
|
+
|
31
|
+
# to update dependencies edit project.yml
|
32
|
+
spec.add_runtime_dependency "zeitwerk", "~> 2.6"
|
33
|
+
|
22
34
|
end
|
@@ -1,9 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'dry/transformer/coercions'
|
4
|
-
require 'dry/transformer/hash'
|
5
|
-
require 'dry/transformer/array/combine'
|
6
|
-
|
7
3
|
module Dry
|
8
4
|
module Transformer
|
9
5
|
# Transformation functions for Array objects
|
@@ -163,7 +159,7 @@ module Dry
|
|
163
159
|
#
|
164
160
|
# @api public
|
165
161
|
def self.insert_key(array, key)
|
166
|
-
map_array(array, ->(v) { {
|
162
|
+
map_array(array, ->(v) { {key => v} })
|
167
163
|
end
|
168
164
|
|
169
165
|
# Adds missing keys with nil value to all tuples in array
|
File without changes
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
3
|
+
require "date"
|
4
|
+
require "time"
|
5
|
+
require "bigdecimal"
|
6
|
+
require "bigdecimal/util"
|
7
7
|
|
8
8
|
module Dry
|
9
9
|
module Transformer
|
@@ -13,8 +13,8 @@ module Dry
|
|
13
13
|
module Coercions
|
14
14
|
extend Registry
|
15
15
|
|
16
|
-
TRUE_VALUES = [true, 1,
|
17
|
-
FALSE_VALUES = [false, 0,
|
16
|
+
TRUE_VALUES = [true, 1, "1", "on", "t", "true", "y", "yes"].freeze
|
17
|
+
FALSE_VALUES = [false, 0, "0", "off", "f", "false", "n", "no", nil].freeze
|
18
18
|
|
19
19
|
BOOLEAN_MAP = Hash[
|
20
20
|
TRUE_VALUES.product([true]) + FALSE_VALUES.product([false])
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'dry/transformer/coercions'
|
4
|
-
|
5
3
|
module Dry
|
6
4
|
module Transformer
|
7
5
|
# Transformation functions for Hash objects
|
@@ -20,27 +18,19 @@ module Dry
|
|
20
18
|
module HashTransformations
|
21
19
|
extend Registry
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
Hash[source_hash].transform_keys!(&fn)
|
37
|
-
end
|
38
|
-
else
|
39
|
-
def self.map_keys(source_hash, fn)
|
40
|
-
Hash[source_hash].tap do |hash|
|
41
|
-
hash.keys.each { |key| hash[fn[key]] = hash.delete(key) }
|
42
|
-
end
|
43
|
-
end
|
21
|
+
# Map all keys in a hash with the provided transformation function
|
22
|
+
#
|
23
|
+
# @example
|
24
|
+
# Dry::Transformer(:map_keys, -> s { s.upcase })['name' => 'Jane']
|
25
|
+
# # => {"NAME" => "Jane"}
|
26
|
+
#
|
27
|
+
# @param [Hash]
|
28
|
+
#
|
29
|
+
# @return [Hash]
|
30
|
+
#
|
31
|
+
# @api public
|
32
|
+
def self.map_keys(source_hash, fn)
|
33
|
+
Hash[source_hash].transform_keys!(&fn)
|
44
34
|
end
|
45
35
|
|
46
36
|
# Symbolize all keys in a hash
|
@@ -76,11 +66,11 @@ module Dry
|
|
76
66
|
hash.each_with_object({}) do |(key, value), output|
|
77
67
|
output[key.to_sym] =
|
78
68
|
case value
|
79
|
-
when Hash
|
69
|
+
when ::Hash
|
80
70
|
deep_symbolize_keys(value)
|
81
|
-
when Array
|
71
|
+
when ::Array
|
82
72
|
value.map { |item|
|
83
|
-
item.is_a?(Hash) ? deep_symbolize_keys(item) : item
|
73
|
+
item.is_a?(::Hash) ? deep_symbolize_keys(item) : item
|
84
74
|
}
|
85
75
|
else
|
86
76
|
value
|
@@ -120,9 +110,9 @@ module Dry
|
|
120
110
|
hash.each_with_object({}) do |(key, value), output|
|
121
111
|
output[key.to_s] =
|
122
112
|
case value
|
123
|
-
when Hash
|
113
|
+
when ::Hash
|
124
114
|
deep_stringify_keys(value)
|
125
|
-
when Array
|
115
|
+
when ::Array
|
126
116
|
value.map { |item|
|
127
117
|
item.is_a?(Hash) ? deep_stringify_keys(item) : item
|
128
118
|
}
|
@@ -132,27 +122,19 @@ module Dry
|
|
132
122
|
end
|
133
123
|
end
|
134
124
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
Hash[source_hash].transform_values!(&fn)
|
149
|
-
end
|
150
|
-
else
|
151
|
-
def self.map_values(source_hash, fn)
|
152
|
-
Hash[source_hash].tap do |hash|
|
153
|
-
hash.each { |key, value| hash[key] = fn[value] }
|
154
|
-
end
|
155
|
-
end
|
125
|
+
# Map all values in a hash using transformation function
|
126
|
+
#
|
127
|
+
# @example
|
128
|
+
# Dry::Transformer(:map_values, -> v { v.upcase })[:name => 'Jane']
|
129
|
+
# # => {"name" => "JANE"}
|
130
|
+
#
|
131
|
+
# @param [Hash]
|
132
|
+
#
|
133
|
+
# @return [Hash]
|
134
|
+
#
|
135
|
+
# @api public
|
136
|
+
def self.map_values(source_hash, fn)
|
137
|
+
Hash[source_hash].transform_values!(&fn)
|
156
138
|
end
|
157
139
|
|
158
140
|
# Rename all keys in a hash using provided mapping hash
|
@@ -211,26 +193,20 @@ module Dry
|
|
211
193
|
Hash[hash].reject { |k, _| keys.include?(k) }
|
212
194
|
end
|
213
195
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
Hash[hash].slice(*keys)
|
229
|
-
end
|
230
|
-
else
|
231
|
-
def self.accept_keys(hash, keys)
|
232
|
-
reject_keys(hash, hash.keys - keys)
|
233
|
-
end
|
196
|
+
# Accepts specified keys from a hash
|
197
|
+
#
|
198
|
+
# @example
|
199
|
+
# Dry::Transformer(:accept_keys, [:name])[name: 'Jane', email: 'jane@doe.org']
|
200
|
+
# # => {:name=>"Jane"}
|
201
|
+
#
|
202
|
+
# @param [Hash] hash The input hash
|
203
|
+
# @param [Array] keys The keys to be accepted
|
204
|
+
#
|
205
|
+
# @return [Hash]
|
206
|
+
#
|
207
|
+
# @api public
|
208
|
+
def self.accept_keys(hash, keys)
|
209
|
+
Hash[hash].slice(*keys)
|
234
210
|
end
|
235
211
|
|
236
212
|
# Map a key in a hash with the provided transformation function
|
@@ -301,7 +277,7 @@ module Dry
|
|
301
277
|
return source_hash unless source_hash[root]
|
302
278
|
|
303
279
|
add_prefix = lambda do |key|
|
304
|
-
combined = [root, key].join(
|
280
|
+
combined = [root, key].join("_")
|
305
281
|
root.is_a?(::Symbol) ? combined.to_sym : combined
|
306
282
|
end
|
307
283
|
|
@@ -310,9 +286,10 @@ module Dry
|
|
310
286
|
keys = nested_hash.keys
|
311
287
|
keys &= selected if selected
|
312
288
|
new_keys = prefix ? keys.map(&add_prefix) : keys
|
289
|
+
nested_contains_root_key = nested_hash.key?(root)
|
313
290
|
|
314
291
|
hash.update(Hash[new_keys.zip(keys.map { |key| nested_hash.delete(key) })])
|
315
|
-
hash.delete(root) if nested_hash.empty?
|
292
|
+
hash.delete(root) if nested_hash.empty? && !nested_contains_root_key
|
316
293
|
end
|
317
294
|
end
|
318
295
|
|
@@ -410,9 +387,9 @@ module Dry
|
|
410
387
|
else
|
411
388
|
value
|
412
389
|
end
|
413
|
-
when Hash
|
390
|
+
when ::Hash
|
414
391
|
eval_values(value, args, filters)
|
415
|
-
when Array
|
392
|
+
when ::Array
|
416
393
|
value.map { |item|
|
417
394
|
item.is_a?(Hash) ? eval_values(item, args, filters) : item
|
418
395
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "dry/transformer/pipe/dsl"
|
4
4
|
|
5
5
|
module Dry
|
6
6
|
module Transformer
|
@@ -36,7 +36,7 @@ module Dry
|
|
36
36
|
|
37
37
|
subclass.container(@container) if defined?(@container)
|
38
38
|
|
39
|
-
subclass.instance_variable_set(
|
39
|
+
subclass.instance_variable_set("@dsl", dsl.dup) if dsl
|
40
40
|
end
|
41
41
|
|
42
42
|
# Get or set the container to resolve transprocs from.
|
@@ -80,7 +80,7 @@ module Dry
|
|
80
80
|
# @api public
|
81
81
|
def new(*)
|
82
82
|
super.tap do |transformer|
|
83
|
-
transformer.instance_variable_set(
|
83
|
+
transformer.instance_variable_set("@transproc", dsl.(transformer)) if dsl
|
84
84
|
end
|
85
85
|
end
|
86
86
|
ruby2_keywords(:new) if respond_to?(:ruby2_keywords, true)
|
data/lib/dry/transformer/pipe.rb
CHANGED
File without changes
|
data/lib/dry/transformer.rb
CHANGED
@@ -1,16 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require 'dry/transformer/constants'
|
5
|
-
require 'dry/transformer/function'
|
6
|
-
require 'dry/transformer/error'
|
7
|
-
require 'dry/transformer/store'
|
8
|
-
require 'dry/transformer/registry'
|
3
|
+
require "zeitwerk"
|
9
4
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
require 'dry/transformer/pipe'
|
5
|
+
require_relative "transformer/constants"
|
6
|
+
require_relative "transformer/error"
|
14
7
|
|
15
8
|
module Dry
|
16
9
|
module Transformer
|
@@ -19,5 +12,22 @@ module Dry
|
|
19
12
|
def self.[](registry)
|
20
13
|
Pipe[registry]
|
21
14
|
end
|
15
|
+
|
16
|
+
# @api private
|
17
|
+
def self.loader
|
18
|
+
@loader ||= Zeitwerk::Loader.new.tap do |loader|
|
19
|
+
root = File.expand_path("..", __dir__)
|
20
|
+
loader.tag = "dry-transformer"
|
21
|
+
loader.inflector = Zeitwerk::GemInflector.new("#{root}/dry-transformer.rb")
|
22
|
+
loader.push_dir(root)
|
23
|
+
loader.ignore(
|
24
|
+
"#{root}/dry-transformer.rb",
|
25
|
+
"#{root}/dry/transformer/{constants,error,version}.rb"
|
26
|
+
)
|
27
|
+
loader.inflector.inflect("dsl" => "DSL")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
loader.setup
|
22
32
|
end
|
23
33
|
end
|
data/lib/dry-transformer.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-transformer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2022-11-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: zeitwerk
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.6'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.6'
|
13
27
|
description: Data transformation toolkit
|
14
28
|
email:
|
15
29
|
- piotr.solnica@gmail.com
|
@@ -17,34 +31,15 @@ executables: []
|
|
17
31
|
extensions: []
|
18
32
|
extra_rdoc_files: []
|
19
33
|
files:
|
20
|
-
- ".codeclimate.yml"
|
21
|
-
- ".github/ISSUE_TEMPLATE/----please-don-t-ask-for-support-via-issues.md"
|
22
|
-
- ".github/ISSUE_TEMPLATE/---bug-report.md"
|
23
|
-
- ".github/ISSUE_TEMPLATE/---feature-request.md"
|
24
|
-
- ".github/workflows/custom_ci.yml"
|
25
|
-
- ".github/workflows/docsite.yml"
|
26
|
-
- ".github/workflows/sync_configs.yml"
|
27
|
-
- ".gitignore"
|
28
|
-
- ".rspec"
|
29
|
-
- ".rubocop.yml"
|
30
34
|
- CHANGELOG.md
|
31
|
-
- CODE_OF_CONDUCT.md
|
32
|
-
- CONTRIBUTING.md
|
33
|
-
- Gemfile
|
34
35
|
- LICENSE
|
35
36
|
- README.md
|
36
|
-
- Rakefile
|
37
|
-
- docsite/source/built-in-transformations.html.md
|
38
|
-
- docsite/source/index.html.md
|
39
|
-
- docsite/source/transformation-objects.html.md
|
40
|
-
- docsite/source/using-standalone-functions.html.md
|
41
37
|
- dry-transformer.gemspec
|
42
38
|
- lib/dry-transformer.rb
|
43
39
|
- lib/dry/transformer.rb
|
44
|
-
- lib/dry/transformer/all.rb
|
45
|
-
- lib/dry/transformer/array.rb
|
46
40
|
- lib/dry/transformer/array/combine.rb
|
47
|
-
- lib/dry/transformer/
|
41
|
+
- lib/dry/transformer/array_transformations.rb
|
42
|
+
- lib/dry/transformer/class_transformations.rb
|
48
43
|
- lib/dry/transformer/coercions.rb
|
49
44
|
- lib/dry/transformer/compiler.rb
|
50
45
|
- lib/dry/transformer/composite.rb
|
@@ -52,36 +47,24 @@ files:
|
|
52
47
|
- lib/dry/transformer/constants.rb
|
53
48
|
- lib/dry/transformer/error.rb
|
54
49
|
- lib/dry/transformer/function.rb
|
55
|
-
- lib/dry/transformer/
|
50
|
+
- lib/dry/transformer/hash_transformations.rb
|
56
51
|
- lib/dry/transformer/pipe.rb
|
57
52
|
- lib/dry/transformer/pipe/class_interface.rb
|
58
53
|
- lib/dry/transformer/pipe/dsl.rb
|
59
|
-
- lib/dry/transformer/
|
54
|
+
- lib/dry/transformer/proc_transformations.rb
|
60
55
|
- lib/dry/transformer/recursion.rb
|
61
56
|
- lib/dry/transformer/registry.rb
|
62
57
|
- lib/dry/transformer/store.rb
|
63
58
|
- lib/dry/transformer/version.rb
|
64
|
-
-
|
65
|
-
- spec/unit/array/combine_spec.rb
|
66
|
-
- spec/unit/array_transformations_spec.rb
|
67
|
-
- spec/unit/class_transformations_spec.rb
|
68
|
-
- spec/unit/coercions_spec.rb
|
69
|
-
- spec/unit/conditional_spec.rb
|
70
|
-
- spec/unit/function_not_found_error_spec.rb
|
71
|
-
- spec/unit/function_spec.rb
|
72
|
-
- spec/unit/hash_transformations_spec.rb
|
73
|
-
- spec/unit/proc_transformations_spec.rb
|
74
|
-
- spec/unit/recursion_spec.rb
|
75
|
-
- spec/unit/registry_spec.rb
|
76
|
-
- spec/unit/store_spec.rb
|
77
|
-
- spec/unit/transformer/class_interface_spec.rb
|
78
|
-
- spec/unit/transformer/dsl_spec.rb
|
79
|
-
- spec/unit/transformer/instance_methods_spec.rb
|
80
|
-
homepage: https://dry-rb.org/gems/dry-transformer/
|
59
|
+
homepage: https://dry-rb.org/gems/dry-transformer
|
81
60
|
licenses:
|
82
61
|
- MIT
|
83
|
-
metadata:
|
84
|
-
|
62
|
+
metadata:
|
63
|
+
allowed_push_host: https://rubygems.org
|
64
|
+
changelog_uri: https://github.com/dry-rb/dry-transformer/blob/main/CHANGELOG.md
|
65
|
+
source_code_uri: https://github.com/dry-rb/dry-transformer
|
66
|
+
bug_tracker_uri: https://github.com/dry-rb/dry-transformer/issues
|
67
|
+
post_install_message:
|
85
68
|
rdoc_options: []
|
86
69
|
require_paths:
|
87
70
|
- lib
|
@@ -89,31 +72,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
72
|
requirements:
|
90
73
|
- - ">="
|
91
74
|
- !ruby/object:Gem::Version
|
92
|
-
version: 2.
|
75
|
+
version: 2.7.0
|
93
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
77
|
requirements:
|
95
78
|
- - ">="
|
96
79
|
- !ruby/object:Gem::Version
|
97
80
|
version: '0'
|
98
81
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
100
|
-
signing_key:
|
82
|
+
rubygems_version: 3.3.7
|
83
|
+
signing_key:
|
101
84
|
specification_version: 4
|
102
85
|
summary: Data transformation toolkit
|
103
|
-
test_files:
|
104
|
-
- spec/spec_helper.rb
|
105
|
-
- spec/unit/array/combine_spec.rb
|
106
|
-
- spec/unit/array_transformations_spec.rb
|
107
|
-
- spec/unit/class_transformations_spec.rb
|
108
|
-
- spec/unit/coercions_spec.rb
|
109
|
-
- spec/unit/conditional_spec.rb
|
110
|
-
- spec/unit/function_not_found_error_spec.rb
|
111
|
-
- spec/unit/function_spec.rb
|
112
|
-
- spec/unit/hash_transformations_spec.rb
|
113
|
-
- spec/unit/proc_transformations_spec.rb
|
114
|
-
- spec/unit/recursion_spec.rb
|
115
|
-
- spec/unit/registry_spec.rb
|
116
|
-
- spec/unit/store_spec.rb
|
117
|
-
- spec/unit/transformer/class_interface_spec.rb
|
118
|
-
- spec/unit/transformer/dsl_spec.rb
|
119
|
-
- spec/unit/transformer/instance_methods_spec.rb
|
86
|
+
test_files: []
|
data/.codeclimate.yml
DELETED