key_mapable 0.3.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 349b2af3cb3e4431949d5f510df02e70db98e4ac3dab87ed6642a3226f3fe7a4
4
- data.tar.gz: a709edbbcea7c7b5b32dee5678390f5600cb50a01314c650eafc6ab4af050ece
3
+ metadata.gz: 1ce54decc124dd908e66b2cce29d042ed8c6afdacb3ec0893f2d957567cf55ef
4
+ data.tar.gz: defb191c3a74bc78d0354ef22e43b8d49594f52553cb7076761077d677cd04d7
5
5
  SHA512:
6
- metadata.gz: a0a42df03cfafe9c98b8bee5f2eb7c3d2b0ad1d272c9bce7d29adf0237ca3ad8a22f365cba185fb6cfc69c4c76f8d8e35e85d8d9c59eb0404ef40fa2807c091d
7
- data.tar.gz: e47ae0f0804bde498bf2c2cae9c9e408d2e98f32045eab4ef2ab71ee0b2ec1bced25c06944e07eb96637045aa8d442cf8b04cfaac0f4feaa18abb9fded85fcca
6
+ metadata.gz: 5a9e2c8ca3935d18d32f88a3e72412e493cfcd8419ab76a18e260d6460c2cd83fe612205b82452cead92b2de6626c446bc3773af20c02a500f1c0e86e906bbb9
7
+ data.tar.gz: 67628771b00b441c0b6d03059cf9db7a3567f43053b11dc77d0b578d0a2d4fc1418c1db5a995a48dc44fdeb3083c3479d3fc59bbbbe77369471a27e29138faad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- key_mapable (0.2.0)
4
+ key_mapable (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -33,7 +33,7 @@ class MyClass
33
33
 
34
34
  # Map the value of `#maybe_value` to the key 'GuaranteedValue'.
35
35
  # Transform the value by calling `#to_s` first.
36
- key_map(:maybe_value, 'GuaranteedValue') { transform(&:to_s) }
36
+ key_map(:maybe_value, 'GuaranteedValue', -> (val) { val.to_s })
37
37
 
38
38
  # Map the key 'Name' to the value provided by the block.
39
39
  key_value('AConstant') { 'Foo' }
data/key_mapable.gemspec CHANGED
@@ -32,5 +32,4 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "bundler", "~> 1.16"
33
33
  spec.add_development_dependency "rake", "~> 10.0"
34
34
  spec.add_development_dependency "rspec", "~> 3.0"
35
- spec.add_development_dependency "byebug"
36
35
  end
@@ -19,14 +19,15 @@ class KeyMapable::Mapper
19
19
  @structure[name] = child_mapper.resolve
20
20
  end
21
21
 
22
- def key_map(original_key, new_key, &block)
22
+ def key_map(original_key, new_key, transform = ->(val) { val }, &block)
23
23
  original_subject = subject.public_send(original_key)
24
+ transformed_subject = transform.call(original_subject)
24
25
  if block_given?
25
- child_mapper = self.class.new(original_subject)
26
+ child_mapper = self.class.new(transformed_subject)
26
27
  child_mapper.instance_eval &block
27
28
  @structure[new_key] = child_mapper.resolve
28
29
  else
29
- @structure[new_key] = original_subject
30
+ @structure[new_key] = transformed_subject
30
31
  end
31
32
  end
32
33
 
@@ -39,10 +40,6 @@ class KeyMapable::Mapper
39
40
  end
40
41
  end
41
42
 
42
- def transform
43
- @structure = yield(@subject)
44
- end
45
-
46
43
  def resolve
47
44
  @structure
48
45
  end
@@ -1,3 +1,3 @@
1
1
  module KeyMapable
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: key_mapable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emric
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-16 00:00:00.000000000 Z
11
+ date: 2019-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: byebug
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  description:
70
56
  email:
71
57
  - emric.mansson@gmail.com