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 +4 -4
- data/README.md +15 -0
- data/lib/yahm/hash_mapper.rb +1 -4
- data/lib/yahm/mapping.rb +4 -1
- data/lib/yahm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2268a85f2c3678373c5876d84572eef2c5c42d1d
|
4
|
+
data.tar.gz: c83ef4d99b06fe6cb44e2adae92c926867279abe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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)
|
data/lib/yahm/hash_mapper.rb
CHANGED
@@ -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)
|
data/lib/yahm/mapping.rb
CHANGED
@@ -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)
|
data/lib/yahm/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|