mogrify 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +6 -14
  2. data/lib/mogrify.rb +25 -13
  3. metadata +9 -6
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OTAwN2I1MjgxZjNjMGYxN2U5MmM1OTQxMGE1ZjgzOTMyZmZjOThlOA==
5
- data.tar.gz: !binary |-
6
- ODkyNzQ1ODc2N2U1MzVkMDAxMzAxM2EwZDJmMjQ5YjI1MWZkNjdiYw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZmM4Y2QxMTY3ZmI2MGMzN2IwN2NhNmUwMTljMTMwODY1NDBhOTAwMTU1NzM0
10
- NmZmZDljMDI2YTFkNzFlMzk5MWQ3YzhhYzAwYmI3NTY1N2I2ZTc0OTVlZTg2
11
- MTZmMTdjZGEzNjhjOGFlMDcwODcxZTY3MWI4Y2RmNDAxYmY0MmQ=
12
- data.tar.gz: !binary |-
13
- ZDk5OTdmYTlhNGJkOTk2NmE3MDgxOTY2ZjllNTVjMWE2N2FmZGI3MzFhZDc0
14
- NjBjODFjMjg0OGNjYTE0MWNmNmRmZjdmZTExOWE2NzhmOWIwMzg3YjNjOTE5
15
- MWY1YTYxZGQ0MmE4NjA4OGNmYzVhZWI0MmVlYmQzMjk4YzYxNzc=
2
+ SHA1:
3
+ metadata.gz: 6b3ac2c0d76ff86d03e41c7cbba4e6c4dd4c3b08
4
+ data.tar.gz: 7c46aa9c99dc86125708b2d5d0e7bae183268ea1
5
+ SHA512:
6
+ metadata.gz: f47c4feaab3d5194bd4002eaea0e0a661b32c87fb612774c74c5eca4a9093148f0ae2af6c263c01239cb471a0532096f1eb254a3730eb4f581a4f0c9f1d83d5f
7
+ data.tar.gz: ee04a881c47fb431a4bb2498586d02be2ea26f5693cb8a785eced9805f82ff3933af81a1cffb6b53de7440ca89b38dee37fe83f03a199ee1c3e97c185110133a
@@ -1,19 +1,18 @@
1
- require "minitest/autorun"
2
1
  class Hash
3
2
  def symogriform
4
3
  symogriformed = {}
5
- symogrified = self
6
- symogrified.keys.each do |key|
7
- if symogrified[key].is_a?(Hash)
8
- symogrified[key] = symogrified[key].symogriform
9
- end
4
+ self.each do |key, value|
5
+ symogriformed[symog(key)] = value.is_a?(Hash) ? value.symogriform : value
10
6
  end
11
- symogriformed.merge!(symogrify(symogrified))
12
7
  symogriformed
13
8
  end
14
9
 
15
- def symogrify part
16
- part.keys.inject({}){|hash, key| hash.merge({symog(key) => part[key]})}
10
+ def symogrify
11
+ symogrified = {}
12
+ self.each do |key, value|
13
+ symogrified[symog(key)] = value
14
+ end
15
+ symogrified
17
16
  end
18
17
 
19
18
  def symog key
@@ -25,11 +24,24 @@ module Enumerable
25
24
  def hashmogrify(&block)
26
25
  hash = {}
27
26
  self.each do |e|
28
- result = block.call(e)
29
- if result.is_a?(Array)
30
- hash[result[0]] = result[1]
27
+ key, value = [*block.call(e), e]
28
+ hash[key] = value
29
+ end
30
+ hash
31
+ end
32
+
33
+ def hashmogrificate(&block)
34
+ hash = {}
35
+ known_keys = []
36
+ self.each do |e|
37
+ key, value = [*block.call(e), e]
38
+ if known_keys.include? key
39
+ hash[key] << value
40
+ elsif hash[key]
41
+ hash[key] = [hash[key]] << value
42
+ known_keys << key
31
43
  else
32
- hash[result] = e
44
+ hash[key] = value
33
45
  end
34
46
  end
35
47
  hash
metadata CHANGED
@@ -1,16 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mogrify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - J. Paul Daigle
8
+ - Dan Tao
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
  date: 2011-09-29 00:00:00.000000000 Z
12
13
  dependencies: []
13
- description:
14
+ description: Mogrify is a tiny library of non-destructive transformers for enumerables,
15
+ including symogrify with symbolizes strings and hashmogrify which builds hashes
16
+ from arrays.
14
17
  email: j.paul.daigle@gmail.com
15
18
  executables: []
16
19
  extensions: []
@@ -26,18 +29,18 @@ require_paths:
26
29
  - lib
27
30
  required_ruby_version: !ruby/object:Gem::Requirement
28
31
  requirements:
29
- - - ! '>='
32
+ - - ">="
30
33
  - !ruby/object:Gem::Version
31
34
  version: '0'
32
35
  required_rubygems_version: !ruby/object:Gem::Requirement
33
36
  requirements:
34
- - - ! '>='
37
+ - - ">="
35
38
  - !ruby/object:Gem::Version
36
39
  version: '0'
37
40
  requirements: []
38
41
  rubyforge_project:
39
- rubygems_version: 2.0.5
42
+ rubygems_version: 2.2.2
40
43
  signing_key:
41
44
  specification_version: 4
42
- summary: my_gem is an awesome gem
45
+ summary: tiny library of non-destructive transformers for enumerables
43
46
  test_files: []