hash_wia 0.7.4 → 0.7.6

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