yahm 0.0.7 → 0.0.8

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
  SHA1:
3
- metadata.gz: 3669e5773fbee15e1bfc56c48621b6d33f70d140
4
- data.tar.gz: 9b70508e061b4dadad85cde16ed8dd73fa1f00c1
3
+ metadata.gz: c7184233b84f3abc2d69fc8e96c4a4832a8571eb
4
+ data.tar.gz: ce29e872ade8e3d0c73a82b1ec938f4f6c6034f1
5
5
  SHA512:
6
- metadata.gz: 3aaa22017c4d520092eef71cf1c32e8bb5fb40e0b3e09fc99ee844ee5eca6588635df163bfbeac8f5aecea98a32f92ec233a33a406273fe1589ad6a831dd49a1
7
- data.tar.gz: ff2e8271415b7b281d97b3fc2db1fcff0deeccb2bc08371d6725d83dbdfb21bca229931c2d8d72b7ef8e96318d051731a4de381a8216dcd44a63b4fc522447f7
6
+ metadata.gz: 1580dd0447512dd5d9604dcefa59702885ced26b49be40b0bf0ce85e2faaf17e57d0a62073ee29af89607c821c8e81c63930888ddee4959f43b23febd2087e70
7
+ data.tar.gz: 48c173585006d03c01baa1c929492cce12d6c45a7ff9878d9ef6233528e397a0a4107b3711e3377a46ac3fadafb8ecb46d87fc8f91f42af022b31a56ebd3d54b
@@ -6,7 +6,7 @@ module Yahm::HashMapper
6
6
  mapping = mapping.instance_eval(&block) || mapping
7
7
 
8
8
  define_method mapper_method_name do |hash|
9
- translated_hash = mapping.translate_hash(hash)
9
+ translated_hash = mapping.translate_hash(hash, _self: self)
10
10
  unless (setter_name = options[:call_setter]).nil?
11
11
  self.send(setter_name, translated_hash)
12
12
  end
data/lib/yahm/mapping.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  class Yahm::Mapping
2
- def initialize
2
+
3
+ attr_reader :_self
4
+
5
+ def initialize(options = {})
3
6
  @rules = []
4
7
  @translated_hash = nil
5
8
  end
@@ -9,8 +12,8 @@ class Yahm::Mapping
9
12
  self
10
13
  end
11
14
 
12
- def translate_hash(input_hash)
13
- @break = true if @rules.length == 5
15
+ def translate_hash(input_hash, options = {})
16
+ @_self = options[:_self]
14
17
  @translated_hash = {}
15
18
 
16
19
  @rules.each do |rule|
data/lib/yahm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Yahm
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -18,7 +18,12 @@ describe Yahm::HashMapper do
18
18
  class ClassExtendedWithHashMapper
19
19
  extend Yahm::HashMapper
20
20
 
21
+ def sample_method(value)
22
+ true
23
+ end
24
+
21
25
  define_mapper :my_mapper do
26
+ map "/source", to: "target", processed_by: proc { |v| _self.sample_method(v) }
22
27
  end
23
28
  end
24
29
  end
@@ -27,6 +32,12 @@ describe Yahm::HashMapper do
27
32
  expect(class_extended_with_hash_mapper.new).to respond_to(:my_mapper)
28
33
  end
29
34
 
35
+ it "provides the context of the extended object as \"_self\" for \"processed_by\" callables" do
36
+ expect(class_extended_with_hash_mapper.new.my_mapper({source: "foo"})).to eq({
37
+ target: true
38
+ })
39
+ end
40
+
30
41
  context "when called with an option called 'call_setter'" do
31
42
  let(:class_extended_with_hash_mapper) do
32
43
  class ClassExtendedWithHashMapper
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yahm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Sievers