realize 1.5.0 → 1.6.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: f6decbc7d163ec927dbb7927ac09aee8d5df5b4de3d44e4ea233959bd1456276
4
- data.tar.gz: b4c96da12cbc56d66a50f9396a4e66e3f97dbb035a62d31c29532030c7ee3e3b
3
+ metadata.gz: e0bb0d8d3479459e62de37d0a70f348873ff1495f3053e8f2d010cfd5e8242f6
4
+ data.tar.gz: 81b79d68ea2999163daab133a6991073a75807992eff971980b166c9eddfd4cb
5
5
  SHA512:
6
- metadata.gz: e24dffe48d39646bb6e631000c03cb0480ac539d368008ca49d38528696b4b8b37f61fdf2524a9b7c308ec10707b16d6d3966948a4ca0b0be4603e1aa0834dca
7
- data.tar.gz: f1d2105f0d009d0520edcd846e9f0b6e00bed4816f07498495a9a51ad849fd1d4a527af122e7c8cc17a6aadaaf101d22aa7f3db36037b895cf7a3b8fa33a33ff
6
+ metadata.gz: 005c2fc49cdd4933029ba19d03ffe33308d1e41343ecc58a44ef114ea3ba7df387cb12fba74821eb1c532c75ee21a1bd8549061a454f90bf6e7bb4950135353d
7
+ data.tar.gz: 98a4548c55826a876dd27b4dce415b0666a196450691e448261d0c78d6c7310f0f7b34ea7a6fca64997fd8984003a3773331c5bcbebee9c4bb2e000b06460199
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@ Layout/LineLength:
4
4
  - realize.gemspec
5
5
 
6
6
  Metrics/BlockLength:
7
- ExcludedMethods:
7
+ IgnoredMethods:
8
8
  - let
9
9
  - it
10
10
  - describe
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.6.6
data/CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
- # 1.5.0 (TBD)
1
+ # 1.6.0 (July 7th, 2021)
2
+
3
+ New Transformers:
4
+
5
+ * r/collection/join
6
+
7
+ # 1.5.0 (November 24th, 2020)
2
8
 
3
9
  New Transformers:
4
10
 
data/README.md CHANGED
@@ -64,6 +64,7 @@ Here is a list of each built-in transformer, their options, and what their funct
64
64
 
65
65
  * **r/collection/at_index** [index]: Takes an array (or coerces value to an array) and returns the value at the given index position.
66
66
  * **r/collection/first** []: Takes an array (or coerces value to an array) and returns the value at the first index position.
67
+ * **r/collection/join** [separator, start_index, end_index]: Takes an array (or coerces value to an array) and returns a new string by concatenating all the elements of the array by a separator character. Can also specifiy which elements to start from and end to that will make up the returned string.
67
68
  * **r/collection/last** []: Takes an array (or coerces value to an array) and returns the value at the last index position.
68
69
  * **r/collection/sort** [key, direction]: Takes an array (or coerces value to an array) and sort it either ascending or descending by some defined key's value.
69
70
 
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ #
4
+ # Copyright (c) 2020-present, Blue Marble Payroll, LLC
5
+ #
6
+ # This source code is licensed under the MIT license found in the
7
+ # LICENSE file in the root directory of this source tree.
8
+ #
9
+
10
+ module Realize
11
+ class Collection
12
+ # Transformer to return a new string by concatenating all the elements of an array
13
+ # specified by a separator character. The transformer also can be configured to specifiy
14
+ # which elements to start from and end to that will make up the returned string.
15
+ class Join
16
+ include Arrays
17
+ acts_as_hashable
18
+
19
+ DEFAULT_END_INDEX = -1
20
+ DEFAULT_SEPARATOR = ''
21
+ DEFAULT_START_INDEX = 0
22
+
23
+ attr_reader :separator, :end_index, :start_index
24
+
25
+ def initialize(separator: DEFAULT_SEPARATOR, start_index: DEFAULT_START_INDEX,
26
+ end_index: DEFAULT_END_INDEX)
27
+ @separator = separator || DEFAULT_SEPARATOR
28
+ @start_index = start_index || DEFAULT_START_INDEX
29
+ @end_index = end_index || DEFAULT_END_INDEX
30
+
31
+ freeze
32
+ end
33
+
34
+ def transform(_resolver, value, _time, _record)
35
+ items = array(value)
36
+
37
+ (items[start_index..end_index] || []).join(separator)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -11,6 +11,7 @@ require_relative 'collection/at_index'
11
11
  require_relative 'collection/first'
12
12
  require_relative 'collection/last'
13
13
  require_relative 'collection/sort'
14
+ require_relative 'collection/join'
14
15
 
15
16
  require_relative 'file/basename'
16
17
  require_relative 'file/extname'
@@ -58,6 +59,7 @@ module Realize
58
59
  register 'r/collection/first', Collection::First
59
60
  register 'r/collection/last', Collection::Last
60
61
  register 'r/collection/sort', Collection::Sort
62
+ register 'r/collection/join', Collection::Join
61
63
 
62
64
  register 'r/file/basename', File::Basename
63
65
  register 'r/file/extname', File::Extname
@@ -22,10 +22,8 @@ module Realize
22
22
  def transform(_resolver, value, _time, _record)
23
23
  if nullable && value.nil?
24
24
  nil
25
- elsif truthy?(value)
26
- true
27
25
  else
28
- false
26
+ truthy?(value)
29
27
  end
30
28
  end
31
29
 
@@ -8,5 +8,5 @@
8
8
  #
9
9
 
10
10
  module Realize
11
- VERSION = '1.5.0'
11
+ VERSION = '1.6.0'
12
12
  end
data/realize.gemspec CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |s|
11
11
  Derive and transform a value using a configuration-first pipeline.
12
12
  DESCRIPTION
13
13
 
14
- s.authors = ['Matthew Ruggio', 'Dan Dewar']
15
- s.email = ['mruggio@bluemarblepayroll.com', 'ddewar@bluemarblepayroll.com']
14
+ s.authors = ['Matthew Ruggio', 'Dan Dewar', 'John Bosko']
15
+ s.email = ['mruggio@bluemarblepayroll.com', 'ddewar@bluemarblepayroll.com', 'jbosko@bluemarblepayroll.com']
16
16
  s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
17
  s.bindir = 'exe'
18
18
  s.executables = []
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.add_development_dependency('pry', '~>0')
37
37
  s.add_development_dependency('rake', '~> 13')
38
38
  s.add_development_dependency('rspec')
39
- s.add_development_dependency('rubocop', '~>1.1')
39
+ s.add_development_dependency('rubocop', '~>1.1', '>=1.18.1')
40
40
  s.add_development_dependency('simplecov', '~>0.17.0')
41
41
  s.add_development_dependency('simplecov-console', '~>0.6.0')
42
42
  end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: realize
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ruggio
8
8
  - Dan Dewar
9
- autorequire:
9
+ - John Bosko
10
+ autorequire:
10
11
  bindir: exe
11
12
  cert_chain: []
12
- date: 2020-11-24 00:00:00.000000000 Z
13
+ date: 2021-07-07 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: acts_as_hashable
@@ -122,6 +123,9 @@ dependencies:
122
123
  - - "~>"
123
124
  - !ruby/object:Gem::Version
124
125
  version: '1.1'
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 1.18.1
125
129
  type: :development
126
130
  prerelease: false
127
131
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,6 +133,9 @@ dependencies:
129
133
  - - "~>"
130
134
  - !ruby/object:Gem::Version
131
135
  version: '1.1'
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.18.1
132
139
  - !ruby/object:Gem::Dependency
133
140
  name: simplecov
134
141
  requirement: !ruby/object:Gem::Requirement
@@ -161,6 +168,7 @@ description: " Derive and transform a value using a configuration-first pipel
161
168
  email:
162
169
  - mruggio@bluemarblepayroll.com
163
170
  - ddewar@bluemarblepayroll.com
171
+ - jbosko@bluemarblepayroll.com
164
172
  executables: []
165
173
  extensions: []
166
174
  extra_rdoc_files: []
@@ -169,6 +177,7 @@ files:
169
177
  - ".gitignore"
170
178
  - ".rubocop.yml"
171
179
  - ".ruby-version"
180
+ - ".tool-versions"
172
181
  - ".travis.yml"
173
182
  - CHANGELOG.md
174
183
  - CODE_OF_CONDUCT.md
@@ -183,6 +192,7 @@ files:
183
192
  - lib/realize/arrays.rb
184
193
  - lib/realize/collection/at_index.rb
185
194
  - lib/realize/collection/first.rb
195
+ - lib/realize/collection/join.rb
186
196
  - lib/realize/collection/last.rb
187
197
  - lib/realize/collection/sort.rb
188
198
  - lib/realize/collection/sort/direction.rb
@@ -229,7 +239,7 @@ metadata:
229
239
  documentation_uri: https://www.rubydoc.info/gems/realize
230
240
  homepage_uri: https://github.com/bluemarblepayroll/realize
231
241
  source_code_uri: https://github.com/bluemarblepayroll/realize
232
- post_install_message:
242
+ post_install_message:
233
243
  rdoc_options: []
234
244
  require_paths:
235
245
  - lib
@@ -245,7 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
245
255
  version: '0'
246
256
  requirements: []
247
257
  rubygems_version: 3.0.3
248
- signing_key:
258
+ signing_key:
249
259
  specification_version: 4
250
260
  summary: Configurable Data Transformation Pipeline
251
261
  test_files: []