key_mapable 0.3.0 → 0.4.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: 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