hash_wia 0.7.4 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/.version +1 -1
  3. data/lib/hash_wia/module.rb +24 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63da890a65aa2e2452e416f4c204ece7b81713c52641732c1583411936c00e24
4
- data.tar.gz: 5b753036a7eaa42dcb4a3869aa812798cccca9248c477f122d94515e3990e8f7
3
+ metadata.gz: 3533e491e9ea4ae635d75064e8a75d89532188562ba0788426f3f02d6636cdc2
4
+ data.tar.gz: 1e24d94651e45b89a41ade9f893ebd3f2f8c760ff84ee5eea55c2f0733a62138
5
5
  SHA512:
6
- metadata.gz: 1fb9171287b410471f758b4cc1a34588baf206c07816d8381cd703aa8c17de5c137cb95c80e929b95a1b2a7df6d1c0eb42d6b99e520e5ec5616015dd0aa7e1c6
7
- data.tar.gz: 5a0ef5d395884b24aefb0baca8daa5f9cdd0fab8fad4028488c183a0ed2a1a844f49fe33e9d8d11c22e93ddeb47a7245850d3bc9fff4d51254e5986a7c6454cf
6
+ metadata.gz: dc78b6cfa5c6620a41a8c455aa4c7df057d3c2ae3b70b8279381825a1b9d82da38d2cfa49020b00b13ba43d9b9336737902f66ca33e7b8c58f09936578bee366
7
+ data.tar.gz: f6030a43d761182ea740d35484c5da7574a70a6f8e372638bc0c8cd1ff0e89fef9ea7f83f41d39859efa820d9f14af640621dc2fa433863e617a2923cc34d5f0
data/.version CHANGED
@@ -1 +1 @@
1
- 0.7.4
1
+ 0.7.6
@@ -18,12 +18,18 @@ module HashWiaModule
18
18
  data = super key.to_sym if key.respond_to?(:to_sym) && data.nil?
19
19
 
20
20
  # if we are returning hash as a value, just include with wia methods hash
21
- data.extend HashWiaModule if data.is_a?(Hash)
21
+ if data.is_a?(Hash)
22
+ data.extend HashWiaModule
23
+ end
22
24
 
23
25
  data
24
26
  end
25
27
 
26
28
  def []= key, value
29
+ if @frozen_keys
30
+ raise NoMethodError, "Hash keys are frozen and can't be modified"
31
+ end
32
+
27
33
  delete key
28
34
  super key, value
29
35
  end
@@ -58,6 +64,23 @@ module HashWiaModule
58
64
  end
59
65
  end
60
66
 
67
+ def freeze_keys!
68
+ @frozen_keys = true
69
+ self
70
+ end
71
+
72
+ def each &block
73
+ to_a.each do |key, data|
74
+ if data.is_a?(Hash)
75
+ data.extend HashWiaModule
76
+ end
77
+
78
+ block.call key, data
79
+ end
80
+
81
+ self
82
+ end
83
+
61
84
  def method_missing name, *args, &block
62
85
  strname = name.to_s
63
86
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_wia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dino Reic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-19 00:00:00.000000000 Z
11
+ date: 2022-01-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Gem provides simple access to common Ruby hash types bundled in one simple
14
14
  class
@@ -41,7 +41,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  requirements: []
44
- rubygems_version: 3.0.6
44
+ rubygems_version: 3.2.22
45
45
  signing_key:
46
46
  specification_version: 4
47
47
  summary: Hash with indifferent access + goodies