yahm 0.0.12 → 0.0.13

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
  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