clazz_extensions 0.0.6 → 0.0.7

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: 19579ab82bde80d8d2495b2998e10b7627aaecd2
4
- data.tar.gz: 91c83e43afea105f3dfe36963b46e7d6e213bb35
3
+ metadata.gz: 78cce968027a7b7f70a6e9513535caaf251a0077
4
+ data.tar.gz: 4af28d39966d96cafbe8a87cfb0a33714f9a2c6a
5
5
  SHA512:
6
- metadata.gz: 2aa649cbc60e587af85d089aac3beedc123854f8d41fb1f4adae167ad62132eb1c31f6d99d06ad87920c453015b699d49b2307dd6cf04cc6dfab53058a2f0b5f
7
- data.tar.gz: 5a8d1095a94a56dc64fecb5b27fa60131d5b452e586b50ecc7edb36a77070f0753c5afffcbb6ed57fd98c62729b0a0eef6be336d686c0977d38fbb011aa0ae85
6
+ metadata.gz: 0587e4f40ea2317141830f31a8127aad871741c257c3df251d33366b7378fd6e27c34b59d09a284737a952cba87bf53a39ac900fb19f23cfa48fc0939472ac7f
7
+ data.tar.gz: b6a35604d8a8e656107834d9dfbdeba238c0dd268b29234857294bd22d591c0ebd1eab3c9bedf7fd76871b0fcbaf5154aaf56b9cd49fc3e2c80c6615861dd3d1
@@ -26,6 +26,39 @@ module ClazzExtensions
26
26
  clazz.count( v ) <= 1
27
27
  }
28
28
  end
29
+
30
+ def dig_compact!( clazz, _ )
31
+ clazz.compact!
32
+ clazz.each { |value|
33
+ if value.is_a?(::Array)
34
+ dig_compact!( value, nil )
35
+ end
36
+ }
37
+ clazz
38
+ end
39
+
40
+ #{value1 => count, value2 => count}
41
+ def value_counts( clazz, _ )
42
+ {}.tap{ |hash|
43
+ clazz.each { |value|
44
+ hash[value] ||= 0
45
+ hash[value] += 1
46
+ }
47
+ }
48
+ end
49
+
50
+ def value_count( clazz, args )
51
+ ret_hash = value_counts( clazz, nil )
52
+ {}.tap { |hash|
53
+ args.each { |value|
54
+ if ret_hash.key?( value )
55
+ hash[value] = ret_hash[value]
56
+ else
57
+ hash[value] = 0
58
+ end
59
+ }
60
+ }
61
+ end
29
62
  end
30
63
  end
31
64
 
@@ -1,3 +1,3 @@
1
1
  module ClazzExtensions
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -40,4 +40,25 @@ describe "ClazzExtensions::Array" do
40
40
  expect( @array.unduplication( array , nil ) ).to eq( [2] )
41
41
  expect( array ).to eq( [1,2,3,1,3] )
42
42
  end
43
+
44
+ it "dig_compact!" do
45
+ #[1,2,3,[nil,1,2,nil,3],nil,1].dig_compact!
46
+ array = [1,2,3,[nil,1,2,nil,3],nil,1]
47
+ expect( @array.dig_compact!( array, nil ) ).to eq( [1,2,3,[1,2,3],1] )
48
+ expect( array ).to eq( [1,2,3,[1,2,3],1] )
49
+ end
50
+
51
+ it "value_counts" do
52
+ #[:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"].value_counts
53
+ expect( @array.value_counts( [:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"], nil ) ).to eq( {:a=>2, :b=>1, :c=>2, 1=>2, 2=>1, "hoge"=>2, "foo"=>1} )
54
+ end
55
+
56
+ it "value_count" do
57
+ #[:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"].value_count( "hoge" )
58
+ expect( @array.value_count( [:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"], ["hoge"] ) ).to eq( {"hoge"=>2} )
59
+ #[:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"].value_count( "hoge", 1 )
60
+ expect( @array.value_count( [:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"], ["hoge", 1] ) ).to eq( {"hoge"=>2, 1 => 2} )
61
+ #[:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"].value_count( "hoge", "bar" )
62
+ expect( @array.value_count( [:a,:b,:c,:a,:c,1,2,1,"hoge","foo","hoge"], ["hoge", "bar"] ) ).to eq( {"hoge"=>2, "bar"=>0} )
63
+ end
43
64
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clazz_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - hiraokashogi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-16 00:00:00.000000000 Z
11
+ date: 2014-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler