yahm 0.0.12 → 0.0.13

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: d8e9c9372841f53ea0466a68d75609ca2c44fcb9
4
- data.tar.gz: e6161948ad5bcc0772ef79b03df84de245afcde7
3
+ metadata.gz: 2268a85f2c3678373c5876d84572eef2c5c42d1d
4
+ data.tar.gz: c83ef4d99b06fe6cb44e2adae92c926867279abe
5
5
  SHA512:
6
- metadata.gz: 291151329654b3abb919dd6bccdb47a7210a337d6c41f5369f44243d389ffa6635d69a17e0b988abf835479a7cf56012a40d1999a720f728cdc69eae7587b56b
7
- data.tar.gz: 6953490ce87c26b07e911273ab4cdb40362d626603ccb54eacb1954801d520d5908c7cb1eed025b0fc96dbded3ee7d4b9c9f7315e4f4db1b8a3eff05bf99b10d
6
+ metadata.gz: 6468ee781b3d6a486e432478773037c461d2409156c54c78e0f7dd4ee1297b1a3ceec42d6489cfa3b7aa8a2af93f788e9a319fbaac1e4f9d0217d3117baada10
7
+ data.tar.gz: 96bf352b68b0731ce51fee14490fb7c1a3898812c9d5ff5e48ee07246b9bfe62a824eb7d8c11557a883a032feadf0709a9f983a39ac9cea3935cfa24a9f94995
data/README.md CHANGED
@@ -116,6 +116,21 @@ class Record
116
116
  end
117
117
  ```
118
118
 
119
+ #### Private mappers
120
+
121
+ You can control, wether a mapper is defined as a private method or not by passing the `private:[true|false]` option to `define_mapper`.
122
+
123
+ ```ruby
124
+
125
+ class Record
126
+ extend Yahm::HashMapper
127
+
128
+ define_mapper :my_private_mapper, private: true do
129
+ map "/some/internals", to: "internals"
130
+ end
131
+ end
132
+ ```
133
+
119
134
  ## Related work
120
135
 
121
136
  * hash_mapper (https://github.com/ismasan/hash_mapper)
@@ -1,9 +1,6 @@
1
1
  module Yahm::HashMapper
2
2
  def define_mapper(mapper_method_name, options = {}, &block)
3
- mapping = Yahm::Mapping.new
4
-
5
- # evaluate the given block in mappings context
6
- mapping.instance_eval(&block)
3
+ mapping = Yahm::Mapping.new(&block)
7
4
 
8
5
  define_method mapper_method_name do |hash|
9
6
  translated_hash = mapping.translate_hash(hash, _self: self)
@@ -2,9 +2,10 @@ class Yahm::Mapping
2
2
 
3
3
  attr_reader :_self
4
4
 
5
- def initialize(options = {})
5
+ def initialize(options = {}, &block)
6
6
  @rules = []
7
7
  @result = nil
8
+ self.instance_eval(&block) if block
8
9
  end
9
10
 
10
11
  def map(str, options = {})
@@ -23,6 +24,8 @@ class Yahm::Mapping
23
24
  @result
24
25
  end
25
26
 
27
+ alias_method :apply_to, :translate_hash # some syntactic sugar
28
+
26
29
  private
27
30
 
28
31
  def process_rule(input_hash, rule)
@@ -1,3 +1,3 @@
1
1
  class Yahm
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yahm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Sievers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-27 00:00:00.000000000 Z
11
+ date: 2014-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler